From e37369f90b259963a059b5701cb00b709364c176 Mon Sep 17 00:00:00 2001 From: James Muscat Date: Thu, 8 Aug 2024 22:14:46 +0100 Subject: [PATCH] All `Event`s act as binary sensors. --- HADiscovery.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/HADiscovery.py b/HADiscovery.py index c25864c..bb363e6 100644 --- a/HADiscovery.py +++ b/HADiscovery.py @@ -46,21 +46,26 @@ def publish_ha_discovery(device, client, mqtt_topic): feature_type == "Event" or \ feature_type == "Option": - component_type = "sensor" # TODO use appropriate types + component_type = "binary_sensor" if feature_type == "Event" else "sensor" # TODO use more appropriate types discovery_topic = f"{HA_DISCOVERY_PREFIX}/{component_type}/hcpy/{device_ident}_{name}/config" # print(discovery_topic, state_topic) - discovery_payload = json.dumps({ + discovery_payload = { "name": decamelcase(name), "device": device_info, "state_topic": f"{mqtt_topic}/state", - "availability_topic": f"{mqtt_topic}/LWT", + # "availability_topic": f"{mqtt_topic}/LWT", "value_template": "{{value_json." + name + "}}", "object_id": f"{device_ident}_{name}", "unique_id": f"{device_ident}_{name}", - }) + } + + if component_type == "binary_sensor": + discovery_payload["payload_on"] = "On" + discovery_payload["payload_off"] = "Off" + print(discovery_topic) # print(discovery_payload) - client.publish(discovery_topic, discovery_payload, retain=True) + client.publish(discovery_topic, json.dumps(discovery_payload), retain=True)