Skip to content

Commit 789ace3

Browse files
committed
Zigbee2mqtt: fix false 200ms communication timeout
1 parent 2ed4cd4 commit 789ace3

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

sources/hyperhdr/HyperHdrDaemon.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,11 +215,6 @@ void HyperHdrDaemon::instanceStateChangedHandler(InstanceState state, quint8 ins
215215
_flatProtoBuffersThread->start();
216216
}
217217

218-
if (_mqttThread != nullptr && !_mqttThread->isRunning())
219-
{
220-
_mqttThread->start();
221-
}
222-
223218
if (_networkThread != nullptr && !_networkThread->isRunning())
224219
{
225220
_networkThread->start();
@@ -401,6 +396,7 @@ void HyperHdrDaemon::startNetworkServices()
401396
[_mqtt](QThread* mqttThread) {
402397
THREAD_REMOVER(QString("MQTT"), mqttThread, _mqtt);
403398
});
399+
_mqttThread->start();
404400
#endif
405401
}
406402

sources/led-drivers/net/DriverNetZigbee2mqtt.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ bool DriverNetZigbee2mqtt::powerOnOff(bool isOn)
6565

6666
for (const auto& lamp : _zigInstance.lamps)
6767
{
68-
QString topic = QString("zigbee2mqtt/%1/set").arg(lamp.name);
68+
QString topicDevice = QString("zigbee2mqtt/%1").arg(lamp.name);
69+
QString topic = QString("%1/set").arg(topicDevice);
6970
QJsonObject row;
7071

7172
row["state"] = (isOn) ? "ON" : "OFF";
@@ -75,12 +76,18 @@ bool DriverNetZigbee2mqtt::powerOnOff(bool isOn)
7576

7677
if (isOn)
7778
{
79+
emit GlobalSignals::getInstance()->SignalMqttSubscribe(true, topicDevice);
80+
7881
row["state"] = "OFF";
7982
doc.setObject(row);
8083

8184
lastWill.push_back(topic);
8285
lastWill.push_back(doc.toJson(QJsonDocument::Compact));
8386
}
87+
else
88+
{
89+
emit GlobalSignals::getInstance()->SignalMqttSubscribe(false, topicDevice);
90+
}
8491
}
8592

8693
if (_zigInstance.lamps.size() > 0)

0 commit comments

Comments
 (0)