summaryrefslogtreecommitdiff
path: root/src/home/mqtt/_module.py
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2023-06-10 23:02:34 +0300
committerEvgeny Zinoviev <me@ch1p.io>2023-06-10 23:02:34 +0300
commitb0bf43e6a272d42a55158e657bd937cb82fc3d8d (patch)
treef1bc13253bc028abcaed9c88882f5aee384a269c /src/home/mqtt/_module.py
parentf3b9d50496257d87757802dfb472b5ffae11962c (diff)
move files, rename home package to homekit
Diffstat (limited to 'src/home/mqtt/_module.py')
-rw-r--r--src/home/mqtt/_module.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/src/home/mqtt/_module.py b/src/home/mqtt/_module.py
deleted file mode 100644
index 80f27bb..0000000
--- a/src/home/mqtt/_module.py
+++ /dev/null
@@ -1,70 +0,0 @@
-from __future__ import annotations
-
-import abc
-import logging
-import threading
-
-from time import sleep
-from ..util import next_tick_gen
-
-from typing import TYPE_CHECKING, Optional
-if TYPE_CHECKING:
- from ._node import MqttNode
- from ._payload import MqttPayload
-
-
-class MqttModule(abc.ABC):
- _tick_interval: int
- _initialized: bool
- _connected: bool
- _ticker: Optional[threading.Thread]
- _mqtt_node_ref: Optional[MqttNode]
-
- def __init__(self, tick_interval=0):
- self._tick_interval = tick_interval
- self._initialized = False
- self._ticker = None
- self._logger = logging.getLogger(self.__class__.__name__)
- self._connected = False
- self._mqtt_node_ref = None
-
- def on_connect(self, mqtt: MqttNode):
- self._connected = True
- self._mqtt_node_ref = mqtt
- if self._tick_interval:
- self._start_ticker()
-
- def on_disconnect(self, mqtt: MqttNode):
- self._connected = False
- self._mqtt_node_ref = None
-
- def is_initialized(self):
- return self._initialized
-
- def set_initialized(self):
- self._initialized = True
-
- def unset_initialized(self):
- self._initialized = False
-
- def tick(self):
- pass
-
- def _tick(self):
- g = next_tick_gen(self._tick_interval)
- while self._connected:
- sleep(next(g))
- if not self._connected:
- break
- self.tick()
-
- def _start_ticker(self):
- if not self._ticker or not self._ticker.is_alive():
- name_part = f'{self._mqtt_node_ref.id}/' if self._mqtt_node_ref else ''
- self._ticker = None
- self._ticker = threading.Thread(target=self._tick,
- name=f'mqtt:{self.__class__.__name__}/{name_part}ticker')
- self._ticker.start()
-
- def handle_payload(self, mqtt: MqttNode, topic: str, payload: bytes) -> Optional[MqttPayload]:
- pass