temphum: refactoring in progress

This commit is contained in:
Evgeny Zinoviev 2023-05-12 04:33:32 +03:00
parent 883f318139
commit f2a7cafc9b
4 changed files with 44 additions and 6 deletions

View File

@ -1,10 +1,25 @@
import paho.mqtt.client as mqtt
import re
from .payload.temphum import (
TempHumDataPayload
)
from enum import auto
from .payload.temphum import TempHumDataPayload
from .esp import MqttEspBase
from ..util import HashableEnum
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()
SPB_FLAT120_CABINET = auto()
class MqttTempHum(MqttEspBase):

View File

@ -7,9 +7,10 @@ import logging
import string
import random
from enum import Enum
from enum import Enum, IntEnum
from datetime import datetime
from typing import Tuple, Optional, List
from typing import Tuple, Optional, List, Union
from zlib import adler32
Addr = Tuple[str, int] # network address type (host, port)
@ -188,3 +189,8 @@ def filesize_fmt(num, suffix="B") -> str:
return f"{num:3.1f} {unit}{suffix}"
num /= 1024.0
return f"{num:.1f} Yi{suffix}"
class HashableEnum(Enum):
def hash(self) -> int:
return adler32(self.name.encode())

17
src/temphum_nodes_util.py Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env python3
from home.mqtt.temphum import MqttTempHumNodes
if __name__ == '__main__':
max_name_len = 0
for node in MqttTempHumNodes:
if len(node.name) > max_name_len:
max_name_len = len(node.name)
values = []
for node in MqttTempHumNodes:
hash = node.hash()
if hash in values:
raise ValueError(f'collision detected: {hash}')
values.append(values)
print(' '*(max_name_len-len(node.name)), end='')
print(f'{node.name}: {hash}')