fixed connection time-out

master
Boernsman 2020-02-14 22:48:46 +05:00 committed by bernhard.trinnes
parent 1c3b1b736b
commit d01a7260bb
3 changed files with 10 additions and 9 deletions

View File

@ -107,7 +107,7 @@ void DevicePluginDoorbird::confirmPairing(DevicePairingInfo *info, const QString
if (info->deviceClassId() == doorBirdDeviceClassId) { if (info->deviceClassId() == doorBirdDeviceClassId) {
QHostAddress address = QHostAddress(info->params().paramValue(doorBirdDeviceAddressParamTypeId).toString()); 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::deviceConnected, this, &DevicePluginDoorbird::onDoorBirdConnected);
connect(doorbird, &Doorbird::eventReveiced, this, &DevicePluginDoorbird::onDoorBirdEvent); connect(doorbird, &Doorbird::eventReveiced, this, &DevicePluginDoorbird::onDoorBirdEvent);
connect(doorbird, &Doorbird::requestSent, this, &DevicePluginDoorbird::onDoorBirdRequestSent); connect(doorbird, &Doorbird::requestSent, this, &DevicePluginDoorbird::onDoorBirdRequestSent);
@ -151,7 +151,7 @@ void DevicePluginDoorbird::setupDevice(DeviceSetupInfo *info)
pluginStorage()->endGroup(); pluginStorage()->endGroup();
qCDebug(dcDoorBird()) << "Device setup" << device->name() << username << password; 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::deviceConnected, this, &DevicePluginDoorbird::onDoorBirdConnected);
connect(doorbird, &Doorbird::eventReveiced, this, &DevicePluginDoorbird::onDoorBirdEvent); connect(doorbird, &Doorbird::eventReveiced, this, &DevicePluginDoorbird::onDoorBirdEvent);
connect(doorbird, &Doorbird::requestSent, this, &DevicePluginDoorbird::onDoorBirdRequestSent); connect(doorbird, &Doorbird::requestSent, this, &DevicePluginDoorbird::onDoorBirdRequestSent);
@ -253,7 +253,9 @@ void DevicePluginDoorbird::onDoorBirdEvent(Doorbird::EventType eventType, bool s
break; break;
case Doorbird::EventType::Motion: case Doorbird::EventType::Motion:
device->setStateValue(doorBirdIsPresentStateTypeId, status); device->setStateValue(doorBirdIsPresentStateTypeId, status);
device->setStateValue(doorBirdLastSeenTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); if (status) {
device->setStateValue(doorBirdLastSeenTimeStateTypeId, QDateTime::currentDateTime().toTime_t());
}
break; break;
case Doorbird::EventType::Doorbell: case Doorbird::EventType::Doorbell:
if (status) { if (status) {

View File

@ -41,12 +41,11 @@
#include <QUrl> #include <QUrl>
#include <QUrlQuery> #include <QUrlQuery>
Doorbird::Doorbird(NetworkAccessManager *networkAccessManager, const QHostAddress &address, QObject *parent) : Doorbird::Doorbird(const QHostAddress &address, QObject *parent) :
QObject(parent), QObject(parent),
m_address(address), m_address(address)
m_networkAccessManager(networkAccessManager)
{ {
m_networkAccessManager = new QNetworkAccessManager(this);
} }
QHostAddress Doorbird::address() QHostAddress Doorbird::address()

View File

@ -43,7 +43,7 @@ class Doorbird : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit Doorbird(NetworkAccessManager *networkAccessManager, const QHostAddress &address, QObject *parent = nullptr); explicit Doorbird(const QHostAddress &address, QObject *parent = nullptr);
enum EventType { enum EventType {
Doorbell, Doorbell,
@ -89,7 +89,7 @@ public:
void connectToEventMonitor(); void connectToEventMonitor();
private: private:
QHostAddress m_address; QHostAddress m_address;
NetworkAccessManager *m_networkAccessManager; QNetworkAccessManager *m_networkAccessManager;
QByteArray m_readBuffer; QByteArray m_readBuffer;