From 7adbff6890d28eaf578ec0998f241d3d62d9dff7 Mon Sep 17 00:00:00 2001 From: Matt Way Date: Tue, 13 Feb 2024 11:51:31 +1100 Subject: [PATCH] Add button to trigger a refresh in Home Assistant --- src/main.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index cb33ffd..51a9f79 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -405,6 +405,25 @@ void publishBatteryDiscoveryTopic(const Shade& shade) { client.publish("homeassistant/sensor/" + objectID + "/config", jsonBuffer); } +void publishRefreshButtonDiscoveryTopic(const Shade& shade) { + String objectID = String(shade.ID, HEX); + String entityID = "refresh-button-" + objectID; + + JsonDocument doc; + + doc["name"] = "Refresh"; + doc["unique_id"] = entityID; + doc["availability_topic"] = "hotdog/availability"; + doc["command_topic"] = "hotdog/" + shade.name + "/command"; + doc["payload_press"] = "REFRESH"; + + addDeviceObject(doc, shade); + + serializeJson(doc, jsonBuffer); + + client.publish("homeassistant/button/" + objectID + "/config", jsonBuffer); +} + void publishDiscoveryTopics() { for (size_t i = 0; i < shades.size(); i++) { Shade shade = shades[i]; @@ -412,5 +431,6 @@ void publishDiscoveryTopics() { publishCoverDiscoveryTopic(shade); publishBatteryDiscoveryTopic(shade); + publishRefreshButtonDiscoveryTopic(shade); } } \ No newline at end of file