30 行
874 B
Python

import logging
class base(dict):
"""A base device for all devicetypes
Args:
mqtt_client (mqtt.mqtt_client): A MQTT Client instance
topic (str): the base topic for this device
"""
PROPERTIES = []
def __init__(self, mqtt_client, topic, **kwargs):
super().__init__()
self.mqtt_client = mqtt_client
self.topic = topic
for key in kwargs:
setattr(self, key, kwargs[key])
#
self.logger = logging.getLogger('devices')
for entry in self.topic.split('/'):
self.logger = self.logger.getChild(entry)
def __set__(self, key, data):
if key in self.PROPERTIES:
self.logger.debug("Setting new property %s to %s", key, repr(data))
self[key] = data
else:
self.logger.warning("Ignoring unsupported property %s", key)