mirror of
https://github.com/suaveolent/hoymiles-wifi.git
synced 2024-09-20 03:10:11 +00:00
begin support for meter
This commit is contained in:
parent
f595e64303
commit
61470d3161
@ -120,6 +120,16 @@ type_mapping = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class MeterType(Enum):
|
||||||
|
"""Meter type."""
|
||||||
|
|
||||||
|
DDSU666 = "DDSU666"
|
||||||
|
DTSU666 = "DTSU666"
|
||||||
|
|
||||||
|
|
||||||
|
meter_mapping = {0x1123: MeterType.DDSU666}
|
||||||
|
|
||||||
|
|
||||||
def format_number(number: int) -> str:
|
def format_number(number: int) -> str:
|
||||||
"""Format number to two digits."""
|
"""Format number to two digits."""
|
||||||
|
|
||||||
@ -302,3 +312,30 @@ def get_dtu_model_name(serial_number: str) -> str:
|
|||||||
return "Unknown"
|
return "Unknown"
|
||||||
else:
|
else:
|
||||||
return dtu_type.value
|
return dtu_type.value
|
||||||
|
|
||||||
|
|
||||||
|
def get_meter_model_type(serial_bytes: bytes) -> MeterType:
|
||||||
|
"""Get Meter model type."""
|
||||||
|
|
||||||
|
dtu_type_bytes = struct.unpack(">H", serial_bytes[:2])[0]
|
||||||
|
|
||||||
|
meter_type = meter_mapping.get(dtu_type_bytes)
|
||||||
|
|
||||||
|
if meter_type is None:
|
||||||
|
raise ValueError(f"Unknown Meter: {serial_bytes[:2]}!")
|
||||||
|
|
||||||
|
return meter_type
|
||||||
|
|
||||||
|
|
||||||
|
def get_meter_model_name(serial_number: str) -> str:
|
||||||
|
"""Get Meter model name."""
|
||||||
|
|
||||||
|
serial_bytes = bytes.fromhex(serial_number)
|
||||||
|
|
||||||
|
try:
|
||||||
|
meter_type = get_meter_model_type(serial_bytes)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(e)
|
||||||
|
return "Unknown"
|
||||||
|
else:
|
||||||
|
return meter_type.value
|
||||||
|
2
setup.py
2
setup.py
@ -6,7 +6,7 @@ setup(
|
|||||||
name="hoymiles-wifi",
|
name="hoymiles-wifi",
|
||||||
packages=["hoymiles_wifi", "hoymiles_wifi.protobuf"],
|
packages=["hoymiles_wifi", "hoymiles_wifi.protobuf"],
|
||||||
install_requires=["protobuf", "crcmod"],
|
install_requires=["protobuf", "crcmod"],
|
||||||
version="0.2.2",
|
version="0.2.3",
|
||||||
description="A python library for interfacing with the Hoymiles DTUs and the HMS-XXXXW-2T series of micro-inverters using protobuf messages.",
|
description="A python library for interfacing with the Hoymiles DTUs and the HMS-XXXXW-2T series of micro-inverters using protobuf messages.",
|
||||||
author="suaveolent",
|
author="suaveolent",
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
|
Loading…
Reference in New Issue
Block a user