warning improvements for nodered dashboard

This commit is contained in:
Dirk Alders 2023-02-10 15:47:02 +01:00
parent 7b3c7198be
commit 5212cba366
3 changed files with 7 additions and 6 deletions

View File

@ -39,7 +39,7 @@ try:
except ImportError: except ImportError:
ROOT_LOGGER_NAME = 'root' ROOT_LOGGER_NAME = 'root'
BATTERY_WARN_LEVEL = 5 BATTERY_WARN_LEVEL = 10
class warning(dict): class warning(dict):
@ -253,7 +253,7 @@ class shelly(base):
# WARNING CALL # WARNING CALL
# #
def __warning__(self, client, key, data): def __warning__(self, client, key, data):
w = warning(self.topic, warning.TYPE_OVERTEMPERATURE, "Temperature to high (%.1f°C)", self.get(self.KEY_TEMPERATURE, math.nan)) 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.logger.warning(w)
self.set(self.KEY_WARNING, w) self.set(self.KEY_WARNING, w)
@ -407,7 +407,7 @@ class silvercrest_motion_sensor(base):
# WARNING CALL # WARNING CALL
# #
def __warning__(self, client, key, data): def __warning__(self, client, key, data):
w = warning(self.topic, warning.TYPE_BATTERY_LOW, "Battery low (%.1f%%)", self.get(self.KEY_BATTERY, math.nan)) w = warning(self.topic, warning.TYPE_BATTERY_LOW, "Battery low (%.1f%%)", self.get(self.KEY_BATTERY) or math.nan)
self.logger.warning(w) self.logger.warning(w)
self.set(self.KEY_WARNING, w) self.set(self.KEY_WARNING, w)

View File

@ -262,7 +262,7 @@ class videv_audio_player(base):
class videv_warnings(base): class videv_warnings(base):
MAX_WARNINGS = 10 MAX_WARNINGS = 10
KEY_WARNING = 'text' KEY_WARNING = 'html_short'
def __init__(self, mqtt_client, topic, default_values=None): def __init__(self, mqtt_client, topic, default_values=None):
super().__init__(mqtt_client, topic, default_values) super().__init__(mqtt_client, topic, default_values)
@ -271,7 +271,8 @@ class videv_warnings(base):
def warningcollector(self, client, key, data): def warningcollector(self, client, key, data):
self.__warnings__.append(data) self.__warnings__.append(data)
self.__warnings__ = self.__warnings__[-self.MAX_WARNINGS:] self.__warnings__ = self.__warnings__[-self.MAX_WARNINGS:]
self.__tx__(self.KEY_WARNING, '\n'.join([str(w) for w in self.__warnings__])) txt = "<br><br>".join([time.asctime(w[w.KEY_TM]) + "<br>" + w[w.KEY_TEXT] + "<br>" + w[w.KEY_ID] for w in self.__warnings__])
self.__tx__(self.KEY_WARNING, txt)
class all_off(base): class all_off(base):

View File

@ -43,7 +43,7 @@ if __name__ == "__main__":
if config.DEBUG: if config.DEBUG:
report.appLoggingConfigure(None, None, ((config.APP_NAME, logging.DEBUG), ), fmt=report.SHORT_FMT, host='localhost', port=19996) report.appLoggingConfigure(None, None, ((config.APP_NAME, logging.DEBUG), ), fmt=report.SHORT_FMT, host='localhost', port=19996)
else: else:
report.stdoutLoggingConfigure(((config.APP_NAME, logging.INFO), ), report.SHORT_FMT) report.stdoutLoggingConfigure(((config.APP_NAME, logging.WARNING), ), report.SHORT_FMT)
# #
mc = mqtt.mqtt_client(host=config.MQTT_SERVER, port=config.MQTT_PORT, username=config.MQTT_USER, mc = mqtt.mqtt_client(host=config.MQTT_SERVER, port=config.MQTT_PORT, username=config.MQTT_USER,
password=config.MQTT_PASSWORD, name=config.APP_NAME) password=config.MQTT_PASSWORD, name=config.APP_NAME)