summaryrefslogtreecommitdiff
path: root/src/home/mqtt/message/sensors.py
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2021-11-27 16:17:05 +0300
committerEvgeny Zinoviev <me@ch1p.io>2022-04-24 01:33:04 +0300
commitc412bf2ee0a3fbf9032fc32a26837d4fbc7585c5 (patch)
tree5cca6bcab79331ad82cab4219c7692b9dd4eea21 /src/home/mqtt/message/sensors.py
initial public
Diffstat (limited to 'src/home/mqtt/message/sensors.py')
-rw-r--r--src/home/mqtt/message/sensors.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/home/mqtt/message/sensors.py b/src/home/mqtt/message/sensors.py
new file mode 100644
index 0000000..ee522f0
--- /dev/null
+++ b/src/home/mqtt/message/sensors.py
@@ -0,0 +1,19 @@
+import struct
+
+from typing import Tuple
+
+
+class Temperature:
+ format = 'IhH'
+
+ def pack(self, time: int, temp: float, rh: float) -> bytes:
+ return struct.pack(
+ self.format,
+ time,
+ int(temp*100),
+ int(rh*100)
+ )
+
+ def unpack(self, buf: bytes) -> Tuple[int, float, float]:
+ data = struct.unpack(self.format, buf)
+ return data[0], data[1]/100, data[2]/100