From ab69f7512084a9e7976b264450045bd08dadda62 Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Wed, 25 Sep 2024 16:36:50 +0000 Subject: [PATCH] Update mqtt-hass-sync.py --- mqtt-hass-sync.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/mqtt-hass-sync.py b/mqtt-hass-sync.py index f666a2f..272d2bd 100644 --- a/mqtt-hass-sync.py +++ b/mqtt-hass-sync.py @@ -3,28 +3,25 @@ import appdaemon.plugins.mqtt.mqttapi as mqtt import appdaemon.adbase as base -class hass_mqtt_state_sync(base.ADBase): +class hass_mqtt_state_sync(hass.Hass,mqtt.Mqtt): def initialize(self): - self.hass = self.get_plugin_api("HASS") - self.mqtt = self.get_plugin_api("MQTT") - self.ad = self.get_ad_api() - self.entity_id = self.args["entity_id"] - self.entity = self.hass.get_entity(self.entity_id) + self.entity = self.get_entity(self.entity_id) self.mqtt_topic_state = self.args["mqtt_topic_state"] self.mqtt_topic_set_state = self.args["mqtt_topic_set_state"] self.mqtt_topic_request = self.args["mqtt_topic_request"] - self.mqtt.mqtt_subscribe(self.mqtt_topic_set_state) - self.mqtt.mqtt_subscribe(self.mqtt_topic_request) - self.mqtt.listen_event(self.handle_set_state_payload, "MQTT_MESSAGE", topic=self.mqtt_topic_set_state) - self.mqtt.listen_event(self.handle_request_payload, "MQTT_MESSAGE", topic=self.mqtt_topic_request) + self.mqtt_subscribe(self.mqtt_topic_set_state, namespace="mqtt") + self.mqtt_subscribe(self.mqtt_topic_request, namespace="mqtt") + self.listen_event(self.handle_set_state_payload, "MQTT_MESSAGE", topic=self.mqtt_topic_set_state, namespace="mqtt") + self.listen_event(self.handle_request_payload, "MQTT_MESSAGE", topic=self.mqtt_topic_request, namespace="mqtt") self.entity.listen_state(self.handle_hass_state_change) + self.publish_state_to_mqtt() def publish_state_to_mqtt(self): - state = self.hass.get_state(self.entity_id) - self.mqtt.mqtt_publish(self.mqtt_topic_state, str(state)) + state = self.get_state(self.entity_id) + self.mqtt_publish(self.mqtt_topic_state, str(state), namespace="mqtt") def handle_set_state_payload(self, event_name, data, cb_args): self.entity.set_state(state = data["payload"]) @@ -33,5 +30,5 @@ class hass_mqtt_state_sync(base.ADBase): self.publish_state_to_mqtt() def handle_hass_state_change(self, entity, attribute, old, new, cb_args): - self.ad.log("State change detected: {} -> {}".format(old, new)) + self.log("State change detected: {} -> {}".format(old, new)) self.publish_state_to_mqtt() \ No newline at end of file