Fix netatmo plugin timer interval and initialization

This commit is contained in:
Simon Stürz 2019-03-04 16:25:43 +01:00 committed by Michael Zanetti
parent 660a9d5b66
commit 3f13275722
2 changed files with 13 additions and 3 deletions

View File

@ -60,8 +60,7 @@ DevicePluginNetatmo::~DevicePluginNetatmo()
void DevicePluginNetatmo::init()
{
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(30);
connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginNetatmo::onPluginTimer);
}
DeviceManager::DeviceSetupStatus DevicePluginNetatmo::setupDevice(Device *device)
@ -69,6 +68,11 @@ DeviceManager::DeviceSetupStatus DevicePluginNetatmo::setupDevice(Device *device
if (device->deviceClassId() == netatmoConnectionDeviceClassId) {
qCDebug(dcNetatmo) << "Setup netatmo connection" << device->name() << device->params();
if (!m_pluginTimer) {
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(300);
connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginNetatmo::onPluginTimer);
}
OAuth2 *authentication = new OAuth2("561c015d49c75f0d1cce6e13", "GuvKkdtu7JQlPD47qTTepRR9hQ0CUPAj4Tae3Ohcq", this);
authentication->setUrl(QUrl("https://api.netatmo.net/oauth2/token"));
authentication->setUsername(device->paramValue(netatmoConnectionDeviceUsernameParamTypeId).toString());
@ -113,6 +117,12 @@ void DevicePluginNetatmo::deviceRemoved(Device *device)
OAuth2 * authentication = m_authentications.key(device);
m_authentications.remove(authentication);
authentication->deleteLater();
if (m_pluginTimer) {
m_pluginTimer->deleteLater();
m_pluginTimer = nullptr;
}
} else if (device->deviceClassId() == indoorDeviceClassId) {
NetatmoBaseStation *indoor = m_indoorDevices.key(device);
m_indoorDevices.remove(indoor);

View File

@ -50,7 +50,7 @@ public slots:
DeviceManager::DeviceError executeAction(Device *device, const Action &action) override;
private:
PluginTimer *m_pluginTimer;
PluginTimer *m_pluginTimer = nullptr;
QList<Device *> m_asyncSetups;
QHash<OAuth2 *, Device *> m_authentications;