temphum: refactoring in progress
This commit is contained in:
parent
883f318139
commit
f2a7cafc9b
@ -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):
|
||||
|
@ -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
17
src/temphum_nodes_util.py
Executable 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}')
|
Loading…
x
Reference in New Issue
Block a user