removed m_garadgetconnect

master
Bruce Eckstein 2021-11-03 15:52:51 -04:00
parent 2538d6bebd
commit 9070a2b878
2 changed files with 11 additions and 17 deletions

View File

@ -69,34 +69,31 @@ void IntegrationPluginGaradget::setupThing(ThingSetupInfo *info)
qCDebug(dcGaradget) << "entered is Connected" << client; qCDebug(dcGaradget) << "entered is Connected" << client;
subscribe(thing); subscribe(thing);
} }
m_lastActivityTimeStamps[thing] = QDateTime::currentDateTime();
} }
void IntegrationPluginGaradget::postSetupThing(Thing *thing) void IntegrationPluginGaradget::postSetupThing(Thing *thing)
{ {
if (!m_pluginTimer) { if (!m_pluginTimer && !myThings().isEmpty()) {
QString name = thing->paramValue(garadgetThingDeviceNameParamTypeId).toString(); QString name = thing->paramValue(garadgetThingDeviceNameParamTypeId).toString();
if (name.endsWith("/#")) { if (name.endsWith("/#")) {
name.chop(2); name.chop(2);
} }
name = name + "/command"; name = name + "/command";
qCDebug(dcGaradget) << "inside m_pluginTimer with" << name ; qCDebug(dcGaradget) << "inside m_pluginTimer with" << name ;
uint updatetime = 30; uint updatetime = 10;
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(updatetime); m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(updatetime);
connect(m_pluginTimer, &PluginTimer::timeout, this, [=](){ connect(m_pluginTimer, &PluginTimer::timeout, this, [=](){
if (m_garadgetconnect == 1) { foreach (Thing *thing, myThings()) {
foreach (Thing *thing, myThings()) { if ((m_lastActivityTimeStamps[thing].msecsTo(QDateTime::currentDateTime()) > 1000 * updatetime) && (thing->stateValue(garadgetConnectedStateTypeId).toBool() == true)) {
qCDebug(dcGaradget) << "disconnect garadget";
thing->setStateValue(garadgetConnectedStateTypeId, false);
}
if (thing->stateValue(garadgetConnectedStateTypeId).toBool() == true) {
m_mqttClients.value(thing)->publish(name, "get-status"); m_mqttClients.value(thing)->publish(name, "get-status");
} }
} }
uint timesinceupdate = QDateTime::currentDateTime().toTime_t() - m_lastActivityTimeStamps[thing].toTime_t();
if ((timesinceupdate > updatetime) && (m_garadgetconnect == 1)) {
qCDebug(dcGaradget) << "disconnect garadget" << m_lastActivityTimeStamps[thing] << timesinceupdate ;
thing->setStateValue(garadgetConnectedStateTypeId, false);
m_garadgetconnect = 0;
}
}); });
} }
} }
@ -207,20 +204,19 @@ void IntegrationPluginGaradget::subscribe(Thing *thing)
void IntegrationPluginGaradget::publishReceived(const QString &topic, const QByteArray &payload, bool retained) void IntegrationPluginGaradget::publishReceived(const QString &topic, const QByteArray &payload, bool retained)
{ {
qCDebug(dcGaradget) << "Received message from topic" << topic << "with msg" << payload << "retain flag" << retained; // qCDebug(dcGaradget) << "Received message from topic" << topic << "with msg" << payload << "retain flag" << retained;
MqttClient* client = static_cast<MqttClient*>(sender()); MqttClient* client = static_cast<MqttClient*>(sender());
Thing *thing = m_mqttClients.key(client); Thing *thing = m_mqttClients.key(client);
if (!thing) { if (!thing) {
qCWarning(dcGaradget) << "Received a publish message from a client where de don't have a matching thing"; qCWarning(dcGaradget) << "Received a publish message from a client where de don't have a matching thing" << retained;
return; return;
} }
if (topic.endsWith("/status")) { if (topic.endsWith("/status")) {
if (thing->stateValue(garadgetConnectedStateTypeId) == false) { if (thing->stateValue(garadgetConnectedStateTypeId) == false) {
qCDebug(dcGaradget) << "Setting Garadget to connected" ; qCDebug(dcGaradget) << "Setting Garadget to connected" ;
thing->setStateValue(garadgetConnectedStateTypeId, true); thing->setStateValue(garadgetConnectedStateTypeId, true);
m_garadgetconnect = 1;
} }
m_lastActivityTimeStamps[thing] = QDateTime::currentDateTime(); m_lastActivityTimeStamps[thing] = QDateTime::currentDateTime();
QJsonParseError error; QJsonParseError error;
@ -230,7 +226,7 @@ void IntegrationPluginGaradget::publishReceived(const QString &topic, const QByt
return; return;
} }
QJsonObject jo = jsonDoc.object(); QJsonObject jo = jsonDoc.object();
thing->setStateValue(garadgetSignalStrengthStateTypeId, (100 + jo.value(QString("signal")).toInt()) * 2 ); thing->setStateValue(garadgetSignalStrengthStateTypeId, (99 + jo.value(QString("signal")).toInt()) * 2 );
thing->setStateValue(garadgetSensorlevelStateTypeId, jo.value(QString("sensor")).toInt()); thing->setStateValue(garadgetSensorlevelStateTypeId, jo.value(QString("sensor")).toInt());
thing->setStateValue(garadgetBrightlevelStateTypeId, jo.value(QString("bright")).toInt()); thing->setStateValue(garadgetBrightlevelStateTypeId, jo.value(QString("bright")).toInt());
if (jo.value(QString("status")).toString().contains(QString("stopped"))) { if (jo.value(QString("status")).toString().contains(QString("stopped"))) {
@ -256,7 +252,6 @@ void IntegrationPluginGaradget::publishReceived(const QString &topic, const QByt
if (topic.endsWith("/set-config")){ if (topic.endsWith("/set-config")){
if ( (payload.contains("mqip")) or (payload.contains("mqpt")) ) { if ( (payload.contains("mqip")) or (payload.contains("mqpt")) ) {
thing->setStateValue(garadgetConnectedStateTypeId, false); thing->setStateValue(garadgetConnectedStateTypeId, false);
m_garadgetconnect = 0;
qCDebug(dcGaradget) << "Detected change of Broker msg - set connected to false"; qCDebug(dcGaradget) << "Detected change of Broker msg - set connected to false";
} }
} }

View File

@ -64,7 +64,6 @@ private:
PluginTimer *m_pluginTimer = nullptr; PluginTimer *m_pluginTimer = nullptr;
QHash<Thing*, QDateTime> m_lastActivityTimeStamps; QHash<Thing*, QDateTime> m_lastActivityTimeStamps;
int m_garadgetconnect = 0;
private slots: private slots:
void subscribe(Thing *thing); void subscribe(Thing *thing);