from homie.device_base import Device_Base from homie.node.node_base import Node_Base from dsmr_parser import telegram_specifications from dsmr_parser.clients import SerialReader, SERIAL_SETTINGS_V4 from settings import Settings import logging logger = logging.getLogger(__name__) SETTINGS = Settings() TRANSLATED_MQTT_SETTINGS = { 'MQTT_BROKER': SETTINGS.mqtt_host, 'MQTT_PORT': SETTINGS.mqtt_port, 'MQTT_USERNAME' : SETTINGS.mqtt_username, 'MQTT_PASSWORD' : SETTINGS.mqtt_password, 'MQTT_CLIENT_ID' : SETTINGS.hostname, 'MQTT_SHARE_CLIENT': False, } TRANSLATED_HOMIE_SETTINGS = { 'topic' : SETTINGS.homie_topic, 'fw_name' : SETTINGS.homie_fw_name, 'fw_version' : SETTINGS.homie_fw_version, 'update_interval' : SETTINGS.homie_update_interval, } class Device_DSMR(Device_Base): def __init__(self, device_id=None, name=None, homie_settings=TRANSLATED_HOMIE_SETTINSG, mqtt_settings=TRANSLATED_MQTT_SETTINGS): super().__init__(device_id, name, homie_settings, mqtt_settings) node = Node_Base(self, "gasmeter", "Gasmeter", "status") self.add_node(node) self.start() def register_status_properties(self, node): super(Device_Temperature_Humidity_Battery, self).register_status_properties( node ) self.battery = Property_Battery(node) node.add_property(self.battery) def update_battery(self, battery): logger.info("Updated Battery {}".format(battery)) self.battery.value = battery