summaryrefslogtreecommitdiff
path: root/src/home/mqtt/module/temphum.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/temphum.py
parentf3b9d50496257d87757802dfb472b5ffae11962c (diff)
move files, rename home package to homekit
Diffstat (limited to 'src/home/mqtt/module/temphum.py')
-rw-r--r--src/home/mqtt/module/temphum.py82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/home/mqtt/module/temphum.py b/src/home/mqtt/module/temphum.py
deleted file mode 100644
index fd02cca..0000000
--- a/src/home/mqtt/module/temphum.py
+++ /dev/null
@@ -1,82 +0,0 @@
-from .._node import MqttNode
-from .._module import MqttModule
-from .._payload import MqttPayload
-from typing import Optional
-from ...temphum import BaseSensor
-
-two_digits_precision = lambda x: round(x, 2)
-
-MODULE_NAME = 'MqttTempHumModule'
-DATA_TOPIC = 'temphum/data'
-
-
-class MqttTemphumDataPayload(MqttPayload):
- FORMAT = '=ddb'
- UNPACKER = {
- 'temp': two_digits_precision,
- 'rh': two_digits_precision
- }
-
- temp: float
- rh: float
- error: int
-
-
-# class MqttTempHumNodes(HashableEnum):
-# KBN_SH_HALL = auto()
-# KBN_SH_BATHROOM = auto()
-# KBN_SH_LIVINGROOM = auto()
-# KBN_SH_BEDROOM = auto()
-#
-# KBN_BH_2FL = auto()
-# KBN_BH_2FL_STREET = auto()
-# KBN_BH_1FL_LIVINGROOM = auto()
-# KBN_BH_1FL_BEDROOM = auto()
-# KBN_BH_1FL_BATHROOM = auto()
-#
-# KBN_NH_1FL_INV = auto()
-# KBN_NH_1FL_CENTER = auto()
-# KBN_NH_1LF_KT = auto()
-# KBN_NH_1FL_DS = auto()
-# KBN_NH_1FS_EZ = auto()
-#
-# SPB_FLAT120_CABINET = auto()
-
-
-class MqttTempHumModule(MqttModule):
- def __init__(self,
- sensor: Optional[BaseSensor] = None,
- write_to_database=False,
- *args, **kwargs):
- if sensor is not None:
- kwargs['tick_interval'] = 10
- super().__init__(*args, **kwargs)
- self._sensor = sensor
-
- def on_connect(self, mqtt: MqttNode):
- super().on_connect(mqtt)
- mqtt.subscribe_module(DATA_TOPIC, self)
-
- def tick(self):
- if not self._sensor:
- return
-
- error = 0
- temp = 0
- rh = 0
- try:
- temp = self._sensor.temperature()
- rh = self._sensor.humidity()
- except:
- error = 1
- pld = MqttTemphumDataPayload(temp=temp, rh=rh, error=error)
- self._mqtt_node_ref.publish(DATA_TOPIC, pld.pack())
-
- def handle_payload(self,
- mqtt: MqttNode,
- topic: str,
- payload: bytes) -> Optional[MqttPayload]:
- if topic == DATA_TOPIC:
- message = MqttTemphumDataPayload.unpack(payload)
- self._logger.debug(message)
- return message