diff --git a/include/config.h b/include/config.h index 51bb8f1..298f49e 100644 --- a/include/config.h +++ b/include/config.h @@ -21,6 +21,7 @@ public: OutTopic, InTopic, ConfigTopic, + AvailabilityTopic, }; static Config& Instance(); diff --git a/src/config.cpp b/src/config.cpp index 0715605..9876ac6 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -67,6 +67,8 @@ String Config::getMqttTopic(MqttTopic topic) case (MqttTopic::ConfigTopic): return String("light/" + String(data.hostname) + "/relay/0/config"); break; + case (MqttTopic::AvailabilityTopic): + return String("light/" + String(data.hostname) + "/status"); } return {}; } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 8031ba7..641c608 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -112,9 +112,14 @@ void onPressed() void mqttPublishState() { if (mqttClient.connected()) + { mqttClient.publish( config.getMqttTopic(Config::MqttTopic::OutTopic).c_str(), myLed.get().c_str()); + mqttClient.publish( + config.getMqttTopic(Config::MqttTopic::AvailabilityTopic).c_str(), + "online"); + } } void mqttReconnect()