diff --git a/devices/base.py b/devices/base.py index 40343e7..e11bff5 100644 --- a/devices/base.py +++ b/devices/base.py @@ -6,8 +6,6 @@ from base import videv_base import json import time -BATTERY_WARN_LEVEL = 10 - def is_json(data): try: @@ -29,11 +27,9 @@ class base(mqtt_base): RX_IGNORE_TOPICS = [] RX_IGNORE_KEYS = [] RX_FILTER_DATA_KEYS = [] - # - KEY_WARNING = '__WARNING__' def __init__(self, mqtt_client, topic): - super().__init__(mqtt_client, topic, default_values=dict.fromkeys(self.RX_KEYS + [self.KEY_WARNING])) + super().__init__(mqtt_client, topic, default_values=dict.fromkeys(self.RX_KEYS)) # data storage # initialisations mqtt_client.add_callback(topic=self.topic, callback=self.receive_callback) @@ -44,7 +40,7 @@ class base(mqtt_base): def set(self, key, data, block_callback=[]): if key in self.RX_IGNORE_KEYS: pass # ignore these keys - elif key in self.RX_KEYS or key == self.KEY_WARNING: + elif key in self.RX_KEYS: return super().set(key, data, block_callback) else: self.logger.warning("Unexpected key %s", key) @@ -105,24 +101,3 @@ class base(mqtt_base): self.mqtt_client.send('/'.join([self.topic, key, self.TX_TOPIC] if len(self.TX_TOPIC) > 0 else [self.topic, key]), data) else: self.logger.error("Unknown tx toptic. Set TX_TOPIC of class to a known value") - - -class warning(dict): - TYPE_BATTERY_LOW = 1 - TYPE_OVERTEMPERATURE = 2 - # - KEY_ID = 'id' - KEY_TYPE = 'type' - KEY_TEXT = 'text' - KEY_TM = 'tm' - - def __init__(self, identification, type, text, args): - super().__init__({ - self.KEY_ID: identification, - self.KEY_TYPE: type, - self.KEY_TEXT: text % args, - self.KEY_TM: time.localtime(), - }) - - def __str__(self): - return time.asctime(self.get(self.KEY_TM)) + ": " + self[self.KEY_TEXT] + " - " + self[self.KEY_ID] diff --git a/devices/brennenstuhl.py b/devices/brennenstuhl.py index 6675418..e6fa64d 100644 --- a/devices/brennenstuhl.py +++ b/devices/brennenstuhl.py @@ -2,8 +2,6 @@ # -*- coding: utf-8 -*- # from devices.base import base -from devices.base import BATTERY_WARN_LEVEL -from devices.base import warning import json @@ -53,27 +51,11 @@ class brennenstuhl_heatingvalve(base): 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_BATTERY, None, self.__warning__, True) - self.__battery_warning__ = False def __state_logging__(self, inst, key, data): if key in [self.KEY_HEATING_SETPOINT, self.KEY_CHILD_LOCK, self.KEY_WINDOW_DETECTION, self.KEY_VALVE_DETECTION]: self.logger.info("State change of '%s' to '%s'", key, repr(data)) - # - # WARNING CALL - # - def __warning__(self, client, key, data): - if data <= BATTERY_WARN_LEVEL: - if not self.__battery_warning__: - self.__battery_warning__ = True - w = warning(self.topic, warning.TYPE_BATTERY_LOW, "Battery low (%.1f%%)", data) - self.logger.warning(w) - self.set(self.KEY_WARNING, w) - else: - self.__battery_warning__ = False - # # RX # diff --git a/devices/shelly.py b/devices/shelly.py index dc466da..3b937e1 100644 --- a/devices/shelly.py +++ b/devices/shelly.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- # from devices.base import base -from devices.base import warning import logging import task @@ -69,8 +68,6 @@ class shelly(base): self.delayed_flash_task = task.delayed(0.3, self.flash_task) self.delayed_off_task = task.delayed(0.3, self.off_task) # - self.add_callback(self.KEY_OVERTEMPERATURE, True, self.__warning__, True) - # self.all_off_requested = False def __state_logging__(self, inst, key, data): @@ -93,14 +90,6 @@ class shelly(base): def flash_active(self): return self.output_key_delayed is not None - # - # WARNING CALL - # - def __warning__(self, client, key, data): - w = warning(self.topic, warning.TYPE_OVERTEMPERATURE, "Temperature to high (%.1f°C)", self.get(self.KEY_TEMPERATURE) or math.nan) - self.logger.warning(w) - self.set(self.KEY_WARNING, w) - # # RX # diff --git a/devices/silvercrest.py b/devices/silvercrest.py index d0c75ef..5f926a3 100644 --- a/devices/silvercrest.py +++ b/devices/silvercrest.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- # from devices.base import base -from devices.base import warning import logging @@ -89,21 +88,11 @@ class silvercrest_motion_sensor(base): def __init__(self, mqtt_client, topic): super().__init__(mqtt_client, topic) - # - self.add_callback(self.KEY_BATTERY_LOW, True, self.__warning__, True) def __state_logging__(self, inst, key, data): if key in [self.KEY_OCCUPANCY, self.KEY_UNMOUNTED]: self.logger.info("State change of '%s' to '%s'", key, repr(data)) - # - # WARNING CALL - # - def __warning__(self, client, key, data): - w = warning(self.topic, warning.TYPE_BATTERY_LOW, "Battery low (%.1f%%)", self.get(self.KEY_BATTERY) or math.nan) - self.logger.warning(w) - self.set(self.KEY_WARNING, w) - # # RX # diff --git a/devices/tradfri.py b/devices/tradfri.py index af4a9f7..bbef409 100644 --- a/devices/tradfri.py +++ b/devices/tradfri.py @@ -2,8 +2,6 @@ # -*- coding: utf-8 -*- # from devices.base import base -from devices.base import BATTERY_WARN_LEVEL -from devices.base import warning import logging @@ -180,26 +178,11 @@ class tradfri_button(base): def __init__(self, mqtt_client, topic): super().__init__(mqtt_client, topic) - # - self.add_callback(self.KEY_BATTERY, None, self.__warning__, True) - self.__battery_warning__ = False def __state_logging__(self, inst, key, data): if key in [self.KEY_ACTION]: self.logger.info("Input '%s' with '%s'", key, repr(data)) - # - # WARNING CALL - # - def __warning__(self, client, key, data): - if data <= BATTERY_WARN_LEVEL: - if not self.__battery_warning__: - w = warning(self.topic, warning.TYPE_BATTERY_LOW, "Battery low (%.1f%%)", data) - self.logger.warning(w) - self.set(self.KEY_WARNING, w) - else: - self.__battery_warning__ = False - # # RX #