Add button to trigger a refresh in Home Assistant
This commit is contained in:
20
src/main.cpp
20
src/main.cpp
@@ -405,6 +405,25 @@ void publishBatteryDiscoveryTopic(const Shade& shade) {
|
|||||||
client.publish("homeassistant/sensor/" + objectID + "/config", jsonBuffer);
|
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() {
|
void publishDiscoveryTopics() {
|
||||||
for (size_t i = 0; i < shades.size(); i++) {
|
for (size_t i = 0; i < shades.size(); i++) {
|
||||||
Shade shade = shades[i];
|
Shade shade = shades[i];
|
||||||
@@ -412,5 +431,6 @@ void publishDiscoveryTopics() {
|
|||||||
|
|
||||||
publishCoverDiscoveryTopic(shade);
|
publishCoverDiscoveryTopic(shade);
|
||||||
publishBatteryDiscoveryTopic(shade);
|
publishBatteryDiscoveryTopic(shade);
|
||||||
|
publishRefreshButtonDiscoveryTopic(shade);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user