HeatValve: Automatic configuration implemented
This commit is contained in:
parent
985e18e27f
commit
8573dcf43f
@ -27,6 +27,8 @@ class base(mqtt_base):
|
||||
RX_IGNORE_TOPICS = []
|
||||
RX_IGNORE_KEYS = []
|
||||
RX_FILTER_DATA_KEYS = []
|
||||
#
|
||||
CFG_DATA = {}
|
||||
|
||||
def __init__(self, mqtt_client, topic):
|
||||
super().__init__(mqtt_client, topic, default_values=dict.fromkeys(self.RX_KEYS))
|
||||
@ -37,7 +39,15 @@ class base(mqtt_base):
|
||||
#
|
||||
self.add_callback(None, None, self.__state_logging__, on_change_only=True)
|
||||
|
||||
def __cfg_callback__(self, key, value):
|
||||
if self.CFG_DATA.get(key) != value:
|
||||
self.logger.warning("Differing configuration identified: %s=%s --> %s=%s",
|
||||
repr(key), repr(value), repr(key), repr(self.CFG_DATA.get(key)))
|
||||
self.send_command(key, self.CFG_DATA.get(key))
|
||||
|
||||
def set(self, key, data, block_callback=[]):
|
||||
if key in self.CFG_DATA:
|
||||
self.__cfg_callback__(key, data)
|
||||
if key in self.RX_IGNORE_KEYS:
|
||||
pass # ignore these keys
|
||||
elif key in self.RX_KEYS:
|
||||
|
@ -52,11 +52,16 @@ class brennenstuhl_heatingvalve(base):
|
||||
#
|
||||
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]
|
||||
#
|
||||
CFG_DATA = {
|
||||
KEY_WINDOW_DETECTION: "ON",
|
||||
KEY_VALVE_DETECTION: "ON",
|
||||
KEY_SYSTEM_MODE: "heat",
|
||||
KEY_PRESET: "manual"
|
||||
}
|
||||
|
||||
def __init__(self, mqtt_client, topic):
|
||||
super().__init__(mqtt_client, topic)
|
||||
self.mqtt_client.send(self.topic + '/' + self.TX_TOPIC, json.dumps({self.KEY_WINDOW_DETECTION: "ON",
|
||||
self.KEY_CHILD_LOCK: "UNLOCK", self.KEY_VALVE_DETECTION: "ON", self.KEY_SYSTEM_MODE: "heat", self.KEY_PRESET: "manual"}))
|
||||
self.add_callback(self.KEY_HEATING_SETPOINT, None, self.__valave_temp_rx__)
|
||||
self.__tx_temperature__ = None
|
||||
self.__rx_temperature__ = None
|
||||
|
Loading…
x
Reference in New Issue
Block a user