diff --git a/src/main.cpp b/src/main.cpp index 5fdde31..cb33ffd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -386,11 +386,31 @@ void publishCoverDiscoveryTopic(const Shade& shade) { client.publish("homeassistant/cover/" + objectID + "/config", jsonBuffer); } +void publishBatteryDiscoveryTopic(const Shade& shade) { + String objectID = String(shade.ID, HEX); + String entityID = "battery-" + objectID; + + JsonDocument doc; + + doc["name"] = "Battery"; + doc["unique_id"] = entityID; + doc["availability_topic"] = "hotdog/availability"; + doc["device_class"] = "battery"; + doc["state_topic"] = "hotdog/" + shade.name + "/battery"; + + addDeviceObject(doc, shade); + + serializeJson(doc, jsonBuffer); + + client.publish("homeassistant/sensor/" + objectID + "/config", jsonBuffer); +} + void publishDiscoveryTopics() { for (size_t i = 0; i < shades.size(); i++) { Shade shade = shades[i]; String objectID = String(shade.ID, HEX); publishCoverDiscoveryTopic(shade); + publishBatteryDiscoveryTopic(shade); } } \ No newline at end of file