mirror of
https://github.com/suaveolent/hoymiles-wifi.git
synced 2024-09-20 03:10:11 +00:00
add async_ prefix
This commit is contained in:
parent
66b24f1a3d
commit
df998bba53
26
README.md
26
README.md
@ -54,19 +54,19 @@ else:
|
||||
```
|
||||
|
||||
#### Available functions
|
||||
- `get_real_data_new()`: Retrieve real-time data
|
||||
- `get_real_data_hms()`: Retrieve real-time data
|
||||
- `get_real_data()`: Retrieve real-time data
|
||||
- `get_config()`: Retrieve configuration information
|
||||
- `network_info()`: Retrieve network information
|
||||
- `app_information_data()`: Retrieve application information data
|
||||
- `app_get_hist_power()`: Retrieve historical power data
|
||||
- `set_power_limit(power_limit)`: Set the power limit of the inverter (0-100%)
|
||||
- `set_wifi(wifi_ssid, wifi_password)`: Configure the wifi network
|
||||
- `firmware_update()`: Update to latest firmware
|
||||
- `restart`: Restart the inverter
|
||||
- `turn_on`: Turn the inverter on
|
||||
- `turn_off`: Turn the inverter off
|
||||
- `async_get_real_data_new()`: Retrieve real-time data
|
||||
- `async_get_real_data_hms()`: Retrieve real-time data
|
||||
- `async_get_real_data()`: Retrieve real-time data
|
||||
- `async_get_config()`: Retrieve configuration information
|
||||
- `async_network_info()`: Retrieve network information
|
||||
- `async_app_information_data()`: Retrieve application information data
|
||||
- `async_app_get_hist_power()`: Retrieve historical power data
|
||||
- `async_set_power_limit(power_limit)`: Set the power limit of the inverter (0-100%)
|
||||
- `async_set_wifi(wifi_ssid, wifi_password)`: Configure the wifi network
|
||||
- `async_firmware_update()`: Update to latest firmware
|
||||
- `async_restart`: Restart the inverter
|
||||
- `async_turn_on`: Turn the inverter on
|
||||
- `async_turn_off`: Turn the inverter off
|
||||
|
||||
## Note
|
||||
|
||||
|
@ -29,28 +29,28 @@ class VersionInfo:
|
||||
)
|
||||
|
||||
# Inverter commands
|
||||
async def get_real_data_new(inverter):
|
||||
return await inverter.get_real_data_new()
|
||||
async def async_get_real_data_new(inverter):
|
||||
return await inverter.async_get_real_data_new()
|
||||
|
||||
async def get_real_data_hms(inverter):
|
||||
return await inverter.get_real_data_hms()
|
||||
async def async_get_real_data_hms(inverter):
|
||||
return await inverter.async_get_real_data_hms()
|
||||
|
||||
async def get_real_data(inverter):
|
||||
return await inverter.get_real_data()
|
||||
async def async_get_real_data(inverter):
|
||||
return await inverter.async_get_real_data()
|
||||
|
||||
async def get_config(inverter):
|
||||
return await inverter.get_config()
|
||||
async def async_get_config(inverter):
|
||||
return await inverter.async_get_config()
|
||||
|
||||
async def network_info(inverter):
|
||||
async def async_network_info(inverter):
|
||||
return await inverter.network_info()
|
||||
|
||||
async def app_information_data(inverter):
|
||||
return await inverter.app_information_data()
|
||||
async def async_app_information_data(inverter):
|
||||
return await inverter.async_app_information_data()
|
||||
|
||||
async def app_get_hist_power(inverter):
|
||||
return await inverter.app_get_hist_power()
|
||||
async def async_app_get_hist_power(inverter):
|
||||
return await inverter.async_app_get_hist_power()
|
||||
|
||||
async def set_power_limit(inverter):
|
||||
async def async_set_power_limit(inverter):
|
||||
|
||||
RED = '\033[91m'
|
||||
END = '\033[0m'
|
||||
@ -79,10 +79,10 @@ async def set_power_limit(inverter):
|
||||
if(cont != 'y'):
|
||||
return
|
||||
|
||||
return await inverter.set_power_limit(power_limit)
|
||||
return await inverter.async_set_power_limit(power_limit)
|
||||
|
||||
|
||||
async def set_wifi(inverter):
|
||||
async def async_set_wifi(inverter):
|
||||
wifi_ssid = input("Enter the new wifi SSID: ").strip()
|
||||
wifi_password = input("Enter the new wifi password: ").strip()
|
||||
print(f'Setting wifi to "{wifi_ssid}"')
|
||||
@ -90,9 +90,9 @@ async def set_wifi(inverter):
|
||||
cont = input("Are you sure? (y/n): ")
|
||||
if(cont != 'y'):
|
||||
return
|
||||
return await inverter.set_wifi(wifi_ssid, wifi_password)
|
||||
return await inverter.async_set_wifi(wifi_ssid, wifi_password)
|
||||
|
||||
async def firmware_update(inverter):
|
||||
async def async_firmware_update(inverter):
|
||||
RED = '\033[91m'
|
||||
END = '\033[0m'
|
||||
|
||||
@ -131,35 +131,35 @@ async def firmware_update(inverter):
|
||||
if(cont != 'y'):
|
||||
return
|
||||
|
||||
return await inverter.update_dtu_firmware()
|
||||
return await inverter.async_update_dtu_firmware()
|
||||
|
||||
async def restart(inverter):
|
||||
async def async_restart(inverter):
|
||||
|
||||
cont = input("Do you want to restart the device? (y/n): ")
|
||||
if(cont != 'y'):
|
||||
return
|
||||
|
||||
return await inverter.restart()
|
||||
return await inverter.async_restart()
|
||||
|
||||
async def turn_off(inverter):
|
||||
async def async_turn_off(inverter):
|
||||
cont = input("Do you want to turn *OFF* the device? (y/n): ")
|
||||
if(cont != 'y'):
|
||||
return
|
||||
|
||||
return await inverter.turn_off()
|
||||
return await inverter.async_turn_off()
|
||||
|
||||
async def turn_on(inverter):
|
||||
async def async_turn_on(inverter):
|
||||
cont = input("Do you want to turn *ON* the device? (y/n): ")
|
||||
if(cont != 'y'):
|
||||
return
|
||||
|
||||
return await inverter.turn_on()
|
||||
return await inverter.async_turn_on()
|
||||
|
||||
async def get_information_data(inverter):
|
||||
return await inverter.get_information_data()
|
||||
async def async_get_information_data(inverter):
|
||||
return await inverter.async_get_information_data()
|
||||
|
||||
async def get_version_info(inverter):
|
||||
response = await app_information_data(inverter)
|
||||
async def async_get_version_info(inverter):
|
||||
response = await async_app_information_data(inverter)
|
||||
|
||||
if not response:
|
||||
return None
|
||||
@ -208,21 +208,21 @@ async def main():
|
||||
|
||||
# Execute the specified command using a switch case
|
||||
switch = {
|
||||
'get-real-data-new': get_real_data_new,
|
||||
'get-real-data-hms': get_real_data_hms,
|
||||
'get-real-data': get_real_data,
|
||||
'get-config': get_config,
|
||||
'network-info': network_info,
|
||||
'app-information-data': app_information_data,
|
||||
'app-get-hist-power': app_get_hist_power,
|
||||
'set-power-limit': set_power_limit,
|
||||
'set-wifi': set_wifi,
|
||||
'firmware-update': firmware_update,
|
||||
'restart': restart,
|
||||
'turn-on': turn_on,
|
||||
'turn-off': turn_off,
|
||||
'get-information-data': get_information_data,
|
||||
'get-version-info': get_version_info,
|
||||
'get-real-data-new': async_get_real_data_new,
|
||||
'get-real-data-hms': async_get_real_data_hms,
|
||||
'get-real-data': async_get_real_data,
|
||||
'get-config': async_get_config,
|
||||
'network-info': async_network_info,
|
||||
'app-information-data': async_app_information_data,
|
||||
'app-get-hist-power': async_app_get_hist_power,
|
||||
'set-power-limit': async_set_power_limit,
|
||||
'set-wifi': async_set_wifi,
|
||||
'firmware-update': async_firmware_update,
|
||||
'restart': async_restart,
|
||||
'turn-on': async_turn_on,
|
||||
'turn-off': async_turn_off,
|
||||
'get-information-data': async_get_information_data,
|
||||
'get-version-info': async_get_version_info,
|
||||
}
|
||||
|
||||
command_func = switch.get(args.command, print_invalid_command)
|
||||
|
@ -68,17 +68,17 @@ class Inverter:
|
||||
self.state = new_state
|
||||
logger.debug(f"Inverter is {new_state}")
|
||||
|
||||
async def get_real_data_hms(self) -> RealDataHMS_pb2.HMSStateResponse | None:
|
||||
async def async_get_real_data_hms(self) -> RealDataHMS_pb2.HMSStateResponse | None:
|
||||
request = RealDataHMS_pb2.HMSRealDataResDTO()
|
||||
command = CMD_REAL_DATA_RES_DTO
|
||||
return await self.send_request(command, request, RealDataHMS_pb2.HMSStateResponse)
|
||||
|
||||
async def get_real_data(self) -> RealData_pb2.RealDataResDTO | None:
|
||||
async def async_get_real_data(self) -> RealData_pb2.RealDataResDTO | None:
|
||||
request = RealData_pb2.RealDataResDTO()
|
||||
command = CMD_REAL_DATA_RES_DTO
|
||||
return await self.send_request(command, request, RealData_pb2.RealDataReqDTO)
|
||||
|
||||
async def get_real_data_new(self) -> RealDataNew_pb2.RealDataNewResDTO | None:
|
||||
async def async_get_real_data_new(self) -> RealDataNew_pb2.RealDataNewResDTO | None:
|
||||
request = RealDataNew_pb2.RealDataNewResDTO()
|
||||
request.time_ymd_hms = datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
request.offset = 28800
|
||||
@ -86,21 +86,21 @@ class Inverter:
|
||||
command = CMD_REAL_RES_DTO
|
||||
return await self.send_request(command, request, RealDataNew_pb2.RealDataNewReqDTO)
|
||||
|
||||
async def get_config(self) -> GetConfig_pb2.GetConfigResDTO | None:
|
||||
async def aync_get_config(self) -> GetConfig_pb2.GetConfigResDTO | None:
|
||||
request = GetConfig_pb2.GetConfigResDTO()
|
||||
request.offset = 28800
|
||||
request.time = int(time.time()) - 60
|
||||
command = CMD_GET_CONFIG
|
||||
return await self.send_request(command, request, GetConfig_pb2.GetConfigReqDTO)
|
||||
|
||||
async def network_info(self) -> NetworkInfo_pb2.NetworkInfoResDTO | None:
|
||||
async def async_network_info(self) -> NetworkInfo_pb2.NetworkInfoResDTO | None:
|
||||
request = NetworkInfo_pb2.NetworkInfoResDTO()
|
||||
request.offset = 28800
|
||||
request.time = int(time.time())
|
||||
command = CMD_NETWORK_INFO_RES
|
||||
return await self.send_request(command, request, NetworkInfo_pb2.NetworkInfoReqDTO)
|
||||
|
||||
async def app_information_data(self) -> APPInfomationData_pb2.APPInfoDataResDTO:
|
||||
async def async_app_information_data(self) -> APPInfomationData_pb2.APPInfoDataResDTO:
|
||||
request = APPInfomationData_pb2.APPInfoDataResDTO()
|
||||
request.time_ymd_hms = datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
request.offset = 28800
|
||||
@ -108,14 +108,14 @@ class Inverter:
|
||||
command = CMD_APP_INFO_DATA_RES_DTO
|
||||
return await self.send_request(command, request, APPInfomationData_pb2.APPInfoDataReqDTO)
|
||||
|
||||
async def app_get_hist_power(self) -> AppGetHistPower_pb2.AppGetHistPowerResDTO | None:
|
||||
async def async_app_get_hist_power(self) -> AppGetHistPower_pb2.AppGetHistPowerResDTO | None:
|
||||
request = AppGetHistPower_pb2.AppGetHistPowerResDTO()
|
||||
request.offset = 28800
|
||||
request.requested_time = int(time.time())
|
||||
command = CMD_APP_GET_HIST_POWER_RES
|
||||
return await self.send_request(command, request, AppGetHistPower_pb2.AppGetHistPowerReqDTO)
|
||||
|
||||
async def set_power_limit(self, power_limit: int) -> CommandPB_pb2.CommandResDTO | None:
|
||||
async def async_set_power_limit(self, power_limit: int) -> CommandPB_pb2.CommandResDTO | None:
|
||||
|
||||
if(power_limit < 0 or power_limit > 100):
|
||||
logger.error("Error. Invalid power limit!")
|
||||
@ -134,7 +134,7 @@ class Inverter:
|
||||
|
||||
return await self.send_request(command, request, CommandPB_pb2.CommandReqDTO)
|
||||
|
||||
async def set_wifi(self, ssid: str, password: str) -> SetConfig_pb2.SetConfigResDTO | None:
|
||||
async def async_set_wifi(self, ssid: str, password: str) -> SetConfig_pb2.SetConfigResDTO | None:
|
||||
|
||||
get_config_req = await self.get_config()
|
||||
|
||||
@ -155,7 +155,7 @@ class Inverter:
|
||||
return await self.send_request(command, request, SetConfig_pb2.SetConfigReqDTO)
|
||||
|
||||
|
||||
async def update_dtu_firmware(self, firmware_url: str = DTU_FIRMWARE_URL_00_01_11) -> CommandPB_pb2.CommandResDTO | None:
|
||||
async def async_update_dtu_firmware(self, firmware_url: str = DTU_FIRMWARE_URL_00_01_11) -> CommandPB_pb2.CommandResDTO | None:
|
||||
|
||||
request = CommandPB_pb2.CommandResDTO()
|
||||
request.action = CMD_ACTION_FIRMWARE_UPGRADE
|
||||
@ -167,7 +167,7 @@ class Inverter:
|
||||
return await self.send_request(command, request, CommandPB_pb2.CommandReqDTO)
|
||||
|
||||
|
||||
async def restart(self) -> CommandPB_pb2.CommandResDTO | None:
|
||||
async def async_restart(self) -> CommandPB_pb2.CommandResDTO | None:
|
||||
|
||||
request = CommandPB_pb2.CommandResDTO()
|
||||
request.action = CMD_ACTION_RESTART
|
||||
@ -178,7 +178,7 @@ class Inverter:
|
||||
return await self.send_request(command, request, CommandPB_pb2.CommandReqDTO)
|
||||
|
||||
|
||||
async def turn_on(self) -> CommandPB_pb2.CommandResDTO | None:
|
||||
async def async_turn_on(self) -> CommandPB_pb2.CommandResDTO | None:
|
||||
|
||||
request = CommandPB_pb2.CommandResDTO()
|
||||
request.action = CMD_ACTION_TURN_ON
|
||||
@ -189,7 +189,7 @@ class Inverter:
|
||||
command = CMD_CLOUD_COMMAND_RES_DTO
|
||||
return await self.send_request(command, request, CommandPB_pb2.CommandReqDTO)
|
||||
|
||||
async def turn_off(self) -> CommandPB_pb2.CommandResDTO | None:
|
||||
async def async_turn_off(self) -> CommandPB_pb2.CommandResDTO | None:
|
||||
|
||||
request = CommandPB_pb2.CommandResDTO()
|
||||
request.action = CMD_ACTION_TURN_OFF
|
||||
@ -200,7 +200,7 @@ class Inverter:
|
||||
command = CMD_CLOUD_COMMAND_RES_DTO
|
||||
return await self.send_request(command, request, CommandPB_pb2.CommandReqDTO)
|
||||
|
||||
async def get_information_data(self) -> InfomationData_pb2.InfoDataResDTO | None:
|
||||
async def async_get_information_data(self) -> InfomationData_pb2.InfoDataResDTO | None:
|
||||
|
||||
request = InfomationData_pb2.InfoDataResDTO()
|
||||
request.time_ymd_hms = datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
|
||||
@ -211,7 +211,7 @@ class Inverter:
|
||||
|
||||
|
||||
|
||||
async def send_request(self, command: bytes, request: Any, response_type: Any, inverter_port: int = INVERTER_PORT):
|
||||
async def async_send_request(self, command: bytes, request: Any, response_type: Any, inverter_port: int = INVERTER_PORT):
|
||||
self.sequence = (self.sequence + 1) & 0xFFFF
|
||||
|
||||
request_as_bytes = request.SerializeToString()
|
||||
|
Loading…
Reference in New Issue
Block a user