mirror of
https://github.com/suaveolent/hoymiles-wifi.git
synced 2024-09-20 03:10:11 +00:00
93 lines
4.6 KiB
Python
93 lines
4.6 KiB
Python
""""Utils for interacting with Hoymiles WiFi API."""
|
|
|
|
from hoymiles_wifi.protobuf import (
|
|
GetConfig_pb2,
|
|
SetConfig_pb2,
|
|
)
|
|
|
|
def format_number(number):
|
|
return "{:02d}".format(number)
|
|
|
|
def generate_version_string(version_number: int):
|
|
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):
|
|
|
|
version_number2 = version_number // 10000
|
|
version_number3 = (version_number - (version_number2 * 10000)) // 100
|
|
version_number4 = (version_number - (version_number2 * 10000)) - (version_number3 * 100)
|
|
|
|
version_string = format_number(version_number2) + "." + format_number(version_number3) + "." + format_number(version_number4)
|
|
return version_string
|
|
|
|
|
|
def generate_dtu_version_string(version_number: int, type: str = None):
|
|
|
|
version_string = ""
|
|
version_number2 = version_number % 256
|
|
version_number3 = (version_number // 256) % 16
|
|
|
|
if "SRF" == str:
|
|
version_string += f"{format_number(version_number // 1048576)}.{format_number((version_number % 65536) // 4096)}.{format_number(version_number3)}.{format_number(version_number2)}"
|
|
elif "HRF" == str:
|
|
version_string += f"{format_number(version_number // 65536)}.{format_number((version_number % 65536) // 4096)}.{format_number(version_number3)}.{format_number(version_number2)}"
|
|
else:
|
|
version_string += f"{format_number(version_number // 4096)}.{format_number(version_number3)}.{format_number(version_number2)}"
|
|
|
|
return version_string
|
|
|
|
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
|
|
set_config_res.lock_time = get_config_req.lock_time
|
|
set_config_res.limit_power_mypower = get_config_req.limit_power_mypower
|
|
set_config_res.zero_export_433_addr = get_config_req.zero_export_433_addr
|
|
set_config_res.zero_export_enable = get_config_req.zero_export_enable
|
|
set_config_res.netmode_select = get_config_req.netmode_select
|
|
set_config_res.channel_select = get_config_req.channel_select
|
|
set_config_res.server_send_time = get_config_req.server_send_time
|
|
set_config_res.serverport = get_config_req.serverport
|
|
set_config_res.apn_set = get_config_req.apn_set
|
|
set_config_res.meter_kind = get_config_req.meter_kind
|
|
set_config_res.meter_interface = get_config_req.meter_interface
|
|
set_config_res.wifi_ssid = get_config_req.wifi_ssid
|
|
set_config_res.wifi_password = get_config_req.wifi_password
|
|
set_config_res.server_domain_name = get_config_req.server_domain_name
|
|
set_config_res.inv_type = get_config_req.inv_type
|
|
set_config_res.dtu_sn = get_config_req.dtu_sn
|
|
set_config_res.access_model = get_config_req.access_model
|
|
set_config_res.mac_0 = get_config_req.mac_0
|
|
set_config_res.mac_1 = get_config_req.mac_1
|
|
set_config_res.mac_2 = get_config_req.mac_2
|
|
set_config_res.mac_3 = get_config_req.mac_3
|
|
set_config_res.mac_4 = get_config_req.mac_4
|
|
set_config_res.mac_5 = get_config_req.mac_5
|
|
set_config_res.dhcp_switch = get_config_req.dhcp_switch
|
|
set_config_res.ip_addr_0 = get_config_req.ip_addr_0
|
|
set_config_res.ip_addr_1 = get_config_req.ip_addr_1
|
|
set_config_res.ip_addr_2 = get_config_req.ip_addr_2
|
|
set_config_res.ip_addr_3 = get_config_req.ip_addr_3
|
|
set_config_res.subnet_mask_0 = get_config_req.subnet_mask_0
|
|
set_config_res.subnet_mask_1 = get_config_req.subnet_mask_1
|
|
set_config_res.subnet_mask_2 = get_config_req.subnet_mask_2
|
|
set_config_res.subnet_mask_3 = get_config_req.subnet_mask_3
|
|
set_config_res.default_gateway_0 = get_config_req.default_gateway_0
|
|
set_config_res.default_gateway_1 = get_config_req.default_gateway_1
|
|
set_config_res.default_gateway_2 = get_config_req.default_gateway_2
|
|
set_config_res.default_gateway_3 = get_config_req.default_gateway_3
|
|
set_config_res.apn_name = get_config_req.apn_name
|
|
set_config_res.apn_password = get_config_req.apn_password
|
|
set_config_res.sub1g_sweep_switch = get_config_req.sub1g_sweep_switch
|
|
set_config_res.sub1g_work_channel = get_config_req.sub1g_work_channel
|
|
set_config_res.cable_dns_0 = get_config_req.cable_dns_0
|
|
set_config_res.cable_dns_1 = get_config_req.cable_dns_1
|
|
set_config_res.cable_dns_2 = get_config_req.cable_dns_2
|
|
set_config_res.cable_dns_3 = get_config_req.cable_dns_3
|
|
set_config_res.dtu_ap_ssid = get_config_req.dtu_ap_ssid
|
|
set_config_res.dtu_ap_pass = get_config_req.dtu_ap_pass
|
|
|
|
return set_config_res
|
|
|
|
|