aboutsummaryrefslogtreecommitdiff
path: root/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp')
-rw-r--r--platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp29
1 files changed, 12 insertions, 17 deletions
diff --git a/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp b/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
index cb2cea7..aa769a5 100644
--- a/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
+++ b/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
@@ -34,7 +34,7 @@ Mqtt::Mqtt() {
for (auto* module: modules) {
if (!module->initialized) {
- module->init(*this);
+ module->onConnect(*this);
module->setInitialized();
}
}
@@ -50,18 +50,13 @@ Mqtt::Mqtt() {
#endif
for (auto* module: modules) {
- if (module->receiveOnDisconnect) {
- module->handleOnDisconnect(reason);
- }
+ module->onDisconnect(*this, reason);
+ module->unsetInitialized();
}
-// if (ota.readyToRestart) {
-// restartTimer.once(1, restart);
-// } else {
- reconnectTimer.once(2, [&]() {
- reconnect();
- });
-// }
+ reconnectTimer.once(2, [&]() {
+ reconnect();
+ });
});
client.onSubscribe([&](uint16_t packetId, const SubscribeReturncode* returncodes, size_t len) {
@@ -79,7 +74,7 @@ Mqtt::Mqtt() {
PRINTF("mqtt: message received, topic=%s, qos=%d, dup=%d, retain=%d, len=%ul, index=%ul, total=%ul\n",
topic, properties.qos, (int)properties.dup, (int)properties.retain, len, index, total);
- const char *ptr = topic + nodeId.length() + 10;
+ const char *ptr = topic + nodeId.length() + 4;
String relevantTopic(ptr);
auto it = moduleSubscriptions.find(relevantTopic);
@@ -87,7 +82,7 @@ Mqtt::Mqtt() {
auto module = it->second;
module->handlePayload(*this, relevantTopic, properties.packetId, payload, len, index, total);
} else {
- PRINTF("error: module subscription for topic %s not found\n", topic);
+ PRINTF("error: module subscription for topic %s not found\n", relevantTopic.c_str());
}
});
@@ -130,8 +125,8 @@ void Mqtt::disconnect() {
void Mqtt::loop() {
client.loop();
for (auto& module: modules) {
- if (module->getTickInterval() != 0)
- module->tick(*this);
+ if (module->getTickInterval() != 0)
+ module->tick(*this);
}
}
@@ -154,14 +149,14 @@ uint16_t Mqtt::subscribe(const String& topic, uint8_t qos) {
void Mqtt::addModule(MqttModule* module) {
modules.emplace_back(module);
if (connected) {
- module->init(*this);
+ module->onConnect(*this);
module->setInitialized();
}
}
void Mqtt::subscribeModule(String& topic, MqttModule* module, uint8_t qos) {
moduleSubscriptions[topic] = module;
- subscribe(topic, qos);
+ subscribe(topic, qos);
}
}