/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2019 Bernhard Trinnes . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef DEVICEPLUGINHOMECONNECT_H #define DEVICEPLUGINHOMECONNECt_H #include "devices/deviceplugin.h" #include "plugintimer.h" #include "homeconnect.h" #include #include class DevicePluginHomeConnect : public DevicePlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginHomeConnect.json") Q_INTERFACES(DevicePlugin) public: explicit DevicePluginHomeConnect(); ~DevicePluginHomeConnect() override; Device::DeviceSetupStatus setupDevice(Device *device) override; DevicePairingInfo pairDevice(DevicePairingInfo &devicePairingInfo) override; DevicePairingInfo confirmPairing(DevicePairingInfo &devicePairingInfo, const QString &username, const QString &secret) override; void postSetupDevice(Device *device) override; void startMonitoringAutoDevices() override; void deviceRemoved(Device *device) override; Device::DeviceError executeAction(Device *device, const Action &action) override; private: PluginTimer *m_pluginTimer5sec = nullptr; PluginTimer *m_pluginTimer60sec = nullptr; QHash m_setupHomeConnectConnections; QHash m_homeConnectConnections; QHash m_pendingActions; private slots: void onConnectionChanged(bool connected); void onAuthenticationStatusChanged(bool authenticated); void onActionExecuted(QUuid actionId, bool success); }; #endif // DEVICEPLUGINHOMECONNECT_H