parse inverter serial

This commit is contained in:
suaveolent 2024-02-15 08:58:10 +01:00
parent 33f9bd73ec
commit c007f31a87
2 changed files with 11 additions and 5 deletions

View File

@ -9,7 +9,8 @@ from hoymiles_wifi.inverter import Inverter
from hoymiles_wifi.utils import (
generate_version_string,
generate_sw_version_string,
generate_dtu_version_string
generate_dtu_version_string,
generate_inverter_serial_number,
)
from hoymiles_wifi.const import (
@ -184,6 +185,7 @@ def print_invalid_command(command):
print(f"Invalid command: {command}")
async def main():
parser = argparse.ArgumentParser(description="Hoymiles HMS Monitoring")
parser.add_argument(
"--host", type=str, required=True, help="IP address or hostname of the inverter"

View File

@ -5,14 +5,14 @@ from hoymiles_wifi.protobuf import (
SetConfig_pb2,
)
def format_number(number):
def format_number(number) -> str:
return "{:02d}".format(number)
def generate_version_string(version_number: int):
def generate_version_string(version_number: int) -> str:
version_string = format_number(version_number // 2048) + "." + format_number((version_number // 64) % 32) + "." + format_number(version_number % 64)
return version_string
def generate_sw_version_string(version_number: int):
def generate_sw_version_string(version_number: int) -> str:
version_number2 = version_number // 10000
version_number3 = (version_number - (version_number2 * 10000)) // 100
@ -22,7 +22,7 @@ def generate_sw_version_string(version_number: int):
return version_string
def generate_dtu_version_string(version_number: int, type: str = None):
def generate_dtu_version_string(version_number: int, type: str = None) -> str:
version_string = ""
version_number2 = version_number % 256
@ -37,6 +37,10 @@ def generate_dtu_version_string(version_number: int, type: str = None):
return version_string
def generate_inverter_serial_number(serial_number: int) -> str:
return hex(serial_number)[2:]
def initialize_set_config(get_config_req: GetConfig_pb2.GetConfigReqDTO):
set_config_res = SetConfig_pb2.SetConfigResDTO()
set_config_res.lock_password = get_config_req.lock_password