コード例 #1
0
ファイル: device_base.py プロジェクト: humblehome/HomieV3
    def __init__(self,
                 device_id=None,
                 name=None,
                 homie_settings={},
                 mqtt_settings={}):
        if device_id is None:
            device_id = self.generate_device_id()
        assert validate_id(device_id), device_id
        self.device_id = device_id

        assert name
        self.name = name

        self.homie_settings = self._homie_validate_settings(homie_settings)

        self.mqtt_settings = self._mqtt_validate_settings(mqtt_settings)

        self._state = "init"

        self.mqtt_client = None
        self.mqtt_connected = False
        self.mqtt_subscription_handlers = {}

        self.nodes = {}

        self.topic = "/".join((self.homie_settings['topic'], self.device_id))
コード例 #2
0
ファイル: device_base.py プロジェクト: outlaw-dma/Homie4
    def __init__(
        self,
        device_id=None,
        name=None,
        homie_settings={},
        mqtt_settings={},
        extensions=["stats", "firmware", "meta"],
    ):
        global instance_count
        instance_count = instance_count + 1
        self.instance_number = instance_count

        self._mqtt_connected = False  # mqtt connection status, true = connected

        if device_id is None:
            device_id = self.generate_device_id()

        assert validate_id(device_id), "Invalid device id {}".format(device_id)
        self.device_id = device_id

        assert name
        self.name = name

        for extension in extensions:
            assert extension in EXTENSIONS
        self.extensions = extensions

        self._state = "init"

        self.homie_settings = self._homie_validate_settings(homie_settings)
        self.topic = "/".join((self.homie_settings["topic"], self.device_id))

        # may need a way to set these
        self.retained = True
        self.qos = 1

        self.nodes = {}

        self.start_time = None

        self.nodes_published = False

        self.mqtt_client = connect_mqtt_client(self, mqtt_settings)

        self.mqtt_subscription_handlers = {}

        global devices
        devices.append(self)
コード例 #3
0
    def __init__(self, device, id, name, type_, retain=True, qos=1):
        assert validate_id(id), "Node ID {} is not valid".format(id)
        assert device

        self.id = id
        self.name = name
        self.type = type_
        self.device = device

        self.retain = retain
        self.qos = qos

        self.properties = {}

        self.topic = self.device.topic

        self.published = False
コード例 #4
0
    def __init__(self,
                 device,
                 id,
                 name,
                 type_,
                 retain=True,
                 qos=1):  # node arrays are not supported
        assert validate_id(id)
        assert device
        self.id = id
        self.name = name
        self.type = type_
        self.device = device

        self.retain = retain
        self.qos = qos

        self.properties = {}

        self.topic = self.device.topic
コード例 #5
0
    def __init__(self,
                 device_id=None,
                 name=None,
                 homie_settings={},
                 mqtt_settings={}):
        global instance_count
        instance_count = instance_count + 1
        self.instance_number = instance_count

        if device_id is None:
            device_id = self.generate_device_id()

        assert validate_id(device_id), 'Invalid device id {}'.format(device_id)
        self.device_id = device_id

        assert name
        self.name = name

        self._state = "init"

        self.homie_settings = self._homie_validate_settings(homie_settings)
        self.topic = "/".join((self.homie_settings['topic'], self.device_id))

        #may need a way to set these
        self.retained = True
        self.qos = 1

        self.nodes = {}

        self.start_time = None

        self.nodes_published = False

        self.mqtt_connected = False

        self.mqtt_client = connect_mqtt_client(self, mqtt_settings)

        self.using_shared_mqtt_client = mqtt_settings['MQTT_SHARE_CLIENT']