summaryrefslogtreecommitdiff
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.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp b/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
index 9d96f9f..cb2cea7 100644
--- a/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
+++ b/platformio/common/libs/mqtt/homekit/mqtt/mqtt.cpp
@@ -25,7 +25,7 @@ using namespace espMqttClientTypes;
Mqtt::Mqtt() {
auto cfg = config::read();
- homeId = String(cfg.flags.node_configured ? cfg.node_id : wifi::NODE_ID);
+ nodeId = String(cfg.flags.node_configured ? cfg.node_id : wifi::NODE_ID);
randomSeed(micros());
@@ -79,7 +79,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 + homeId.length() + 10;
+ const char *ptr = topic + nodeId.length() + 10;
String relevantTopic(ptr);
auto it = moduleSubscriptions.find(relevantTopic);
@@ -130,22 +130,24 @@ void Mqtt::disconnect() {
void Mqtt::loop() {
client.loop();
for (auto& module: modules) {
- module->tick(*this);
+ if (module->getTickInterval() != 0)
+ module->tick(*this);
}
}
uint16_t Mqtt::publish(const String& topic, uint8_t* payload, size_t length) {
- String fullTopic = "hk/" + homeId + "/temphum/" + topic;
+ String fullTopic = "hk/" + nodeId + "/" + topic;
return client.publish(fullTopic.c_str(), 1, false, payload, length);
}
uint16_t Mqtt::subscribe(const String& topic, uint8_t qos) {
- String fullTopic = "hk/" + homeId + "/temphum/" + topic;
+ String fullTopic = "hk/" + nodeId + "/" + topic;
PRINTF("mqtt: subscribing to %s...\n", fullTopic.c_str());
uint16_t packetId = client.subscribe(fullTopic.c_str(), qos);
if (!packetId)
PRINTF("error: failed to subscribe to %s\n", fullTopic.c_str());
+
return packetId;
}
@@ -157,8 +159,9 @@ void Mqtt::addModule(MqttModule* module) {
}
}
-void Mqtt::subscribeModule(String& topic, MqttModule* module) {
+void Mqtt::subscribeModule(String& topic, MqttModule* module, uint8_t qos) {
moduleSubscriptions[topic] = module;
+ subscribe(topic, qos);
}
}