diff --git a/doorbird/deviceplugindoorbird.cpp b/doorbird/deviceplugindoorbird.cpp index 5bccd648..3668bc5c 100644 --- a/doorbird/deviceplugindoorbird.cpp +++ b/doorbird/deviceplugindoorbird.cpp @@ -107,7 +107,7 @@ void DevicePluginDoorbird::confirmPairing(DevicePairingInfo *info, const QString if (info->deviceClassId() == doorBirdDeviceClassId) { QHostAddress address = QHostAddress(info->params().paramValue(doorBirdDeviceAddressParamTypeId).toString()); - Doorbird *doorbird = new Doorbird(hardwareManager()->networkManager(), address, this); + Doorbird *doorbird = new Doorbird(address, this); connect(doorbird, &Doorbird::deviceConnected, this, &DevicePluginDoorbird::onDoorBirdConnected); connect(doorbird, &Doorbird::eventReveiced, this, &DevicePluginDoorbird::onDoorBirdEvent); connect(doorbird, &Doorbird::requestSent, this, &DevicePluginDoorbird::onDoorBirdRequestSent); @@ -151,7 +151,7 @@ void DevicePluginDoorbird::setupDevice(DeviceSetupInfo *info) pluginStorage()->endGroup(); qCDebug(dcDoorBird()) << "Device setup" << device->name() << username << password; - Doorbird *doorbird = new Doorbird(hardwareManager()->networkManager(), address, this); + Doorbird *doorbird = new Doorbird(address, this); connect(doorbird, &Doorbird::deviceConnected, this, &DevicePluginDoorbird::onDoorBirdConnected); connect(doorbird, &Doorbird::eventReveiced, this, &DevicePluginDoorbird::onDoorBirdEvent); connect(doorbird, &Doorbird::requestSent, this, &DevicePluginDoorbird::onDoorBirdRequestSent); @@ -253,7 +253,9 @@ void DevicePluginDoorbird::onDoorBirdEvent(Doorbird::EventType eventType, bool s break; case Doorbird::EventType::Motion: device->setStateValue(doorBirdIsPresentStateTypeId, status); - device->setStateValue(doorBirdLastSeenTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); + if (status) { + device->setStateValue(doorBirdLastSeenTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); + } break; case Doorbird::EventType::Doorbell: if (status) { diff --git a/doorbird/doorbird.cpp b/doorbird/doorbird.cpp index a6074acb..a8bda046 100644 --- a/doorbird/doorbird.cpp +++ b/doorbird/doorbird.cpp @@ -41,12 +41,11 @@ #include #include -Doorbird::Doorbird(NetworkAccessManager *networkAccessManager, const QHostAddress &address, QObject *parent) : +Doorbird::Doorbird(const QHostAddress &address, QObject *parent) : QObject(parent), - m_address(address), - m_networkAccessManager(networkAccessManager) + m_address(address) { - + m_networkAccessManager = new QNetworkAccessManager(this); } QHostAddress Doorbird::address() diff --git a/doorbird/doorbird.h b/doorbird/doorbird.h index 7f26da9b..a09bb788 100644 --- a/doorbird/doorbird.h +++ b/doorbird/doorbird.h @@ -43,7 +43,7 @@ class Doorbird : public QObject { Q_OBJECT public: - explicit Doorbird(NetworkAccessManager *networkAccessManager, const QHostAddress &address, QObject *parent = nullptr); + explicit Doorbird(const QHostAddress &address, QObject *parent = nullptr); enum EventType { Doorbell, @@ -89,7 +89,7 @@ public: void connectToEventMonitor(); private: QHostAddress m_address; - NetworkAccessManager *m_networkAccessManager; + QNetworkAccessManager *m_networkAccessManager; QByteArray m_readBuffer;