From b9adc74a82e08a09b45a255d93d2c8f92fadff8e Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Wed, 25 Jan 2023 15:13:08 +0100 Subject: [PATCH] send setting always for heating valve device --- devices/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devices/__init__.py b/devices/__init__.py index b46ebe0..5479063 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -26,13 +26,11 @@ devices (DEVICES) """ -# TODO: Usage of mqtt_base for all devices -# -# TODO: brennenstuhl_heatingvalve: always send "{"preset": "manual", "system_mode": "heat"}" with any information # TODO: usage of base.mqtt as parent for class base __DEPENDENCIES__ = [] +import copy import json import logging @@ -110,6 +108,8 @@ class base(dict): RX_IGNORE_TOPICS = [] RX_IGNORE_KEYS = [] RX_FILTER_DATA_KEYS = [] + # + TX_BASE_DATA = None def __init__(self, mqtt_client, topic): # data storage @@ -194,7 +194,9 @@ class base(dict): else: self.logger.debug("Sending data for %s - %s", key, str(data)) if self.TX_TYPE == self.TX_DICT: - self.mqtt_client.send('/'.join([self.topic, self.TX_TOPIC]), json.dumps({key: data})) + tx_data = copy.copy(self.TX_BASE_DATA or {}) + tx_data[key] = data + self.mqtt_client.send('/'.join([self.topic, self.TX_TOPIC]), json.dumps(tx_data)) else: if type(data) not in [str, bytes]: data = json.dumps(data) @@ -856,6 +858,7 @@ class brennenstuhl_heatingvalve(base): KEY_WINDOW_DETECTION = "window_detection" # TX_TYPE = base.TX_DICT + TX_BASE_DATA = {KEY_PRESET: "manual", KEY_SYSTEM_MODE: "heat"} # RX_KEYS = [KEY_LINKQUALITY, KEY_BATTERY, KEY_HEATING_SETPOINT, KEY_TEMPERATURE] RX_IGNORE_KEYS = [KEY_AWAY_MODE, KEY_CHILD_LOCK, KEY_PRESET, KEY_SYSTEM_MODE, KEY_VALVE_DETECTION, KEY_WINDOW_DETECTION]