Main client class for interacting with the Hypontech Cloud API.
__init__(username: str, password: str, session: aiohttp.ClientSession | None = None, timeout: int = 10, retries: int = 3, debug: bool = False)
Initialize the client.
username: Your Hypontech Cloud usernamepassword: Your Hypontech Cloud passwordsession: Optional aiohttp ClientSession. If not provided, one will be created automatically.timeout: Request timeout in seconds (default: 10)retries: Number of retry attempts for API requests (default: 3)debug: Enable debug mode to print raw HTTP responses (default: False)
Authenticate with the API and retrieve access token.
Raises:
AuthenticationError: Invalid credentials (HTTP 401)RequestError: Request failed (network error or server error HTTP 500+)RateLimitError: Too many requests (HTTP 429)
Get plant overview data including power generation and device status.
Parameters:
retries: Number of retry attempts on failure. If None, uses the client's default retry setting
Returns: OverviewData object
Raises:
AuthenticationError: Authentication requiredRequestError: Request failedRateLimitError: Too many requests
Get list of plants associated with the account.
Parameters:
retries: Number of retry attempts on failure. If None, uses the client's default retry setting
Returns: List of PlantData objects
Raises:
AuthenticationError: Authentication requiredRequestError: Request failedRateLimitError: Too many requests
Get all inverters for a specific plant. This method automatically fetches all pages of inverters.
Parameters:
plant_id: The plant ID to get inverters forretries: Number of retry attempts on failure. If None, uses the client's default retry setting
Returns: List of InverterData objects
Raises:
AuthenticationError: Authentication requiredRequestError: Request failedRateLimitError: Too many requests
Get real-time monitoring data for a specific plant.
Parameters:
plant_id: The plant ID to get monitoring data forretries: Number of retry attempts on failure. If None, uses the client's default retry setting
Returns: PlantMonitorData object
Raises:
AuthenticationError: Authentication requiredRequestError: Request failedRateLimitError: Too many requests
Get administrator account information.
Parameters:
retries: Number of retry attempts on failure. If None, uses the client's default retry setting
Returns: AdminInfo object
Raises:
AuthenticationError: Authentication requiredRequestError: Request failedRateLimitError: Too many requests
Close the aiohttp session (only if created by the library).
Data class containing plant overview information.
capacity(float): Plant capacitycapacity_company(str): Capacity unit (e.g., "KW")power(float): Current power generation in wattscompany(str): Power unit (e.g., "W")percent(int): Percentage valuee_today(float): Today's energy production in kWhe_total(float): Total lifetime energy production in kWhfault_dev_num(int): Number of faulty devicesnormal_dev_num(int): Number of normal devicesoffline_dev_num(int): Number of offline deviceswait_dev_num(int): Number of devices waitingtotal_co2(float): Total CO2 savings in tonstotal_tree(float): Equivalent trees plantedearning(list[EarningData]): Earnings per currency
Data class containing individual plant information.
city(str): Plant location citycompany(str): Power unit (always "W" forPlantData, this is added to keep it in sync withOverviewData)country(str): Plant location countrye_today(float): Today's energy productione_total(float): Total energy productioneid(int): Equipment IDkwhimp(int): kWh importmicro(int): Micro inverter countplant_id(str): Unique plant identifierplant_name(str): Plant nameplant_type(str): Plant typepower(float): Current powerstatus(str): Plant statustime(str): Last update timephoto(str): Plant photo URLowner_name(str): Owner usernameowner_id(str): Owner account IDtop(int): Top flagproperty(int): Property value
Data class containing inverter information.
plant_name(str): Plant namesn(str): Serial numbergateway_sn(str): Gateway serial numberstatus(str): Inverter statusmodel(str): Inverter modelsoftware_version(str): Software versionlcd_version(str): LCD versionafci_version(str): AFCI versionafci_version0(str): AFCI version channel 0afci_version1(str): AFCI version channel 1afci_version2(str): AFCI version channel 2time(str): Last update timespn(str): SPN identifierpower(float): Current power output in wattseid(str): Equipment IDdevice_type(str): Device typefault(int): Fault statusplant_id(str): Plant IDmodbus(int): Modbus statuse_total(float): Total energy production in kWhe_today(float): Today's energy production in kWhproperty(int): Property valuenick_name(str): Nicknamecom(int): Communication statussystem_connect_mode(int): System connection modethird_active_power(int): Third party active powerthird_meter_energy(int): Third party meter energytoday_generation_third(int): Today's generation from third partywarning(int): Warning statusgateway(GatewayData | None): Gateway device infoport(list[PortData]): Port configurations
Data class containing real-time monitoring data for a specific plant.
monetary(str): Currency code (e.g., "EUR")today_earning(float): Today's earningsmonth_earning(float): This month's earningstotal_earning(float): Total lifetime earningse_today(float): Today's energy production in kWhe_month(float): This month's energy production in kWhe_year(float): This year's energy production in kWhe_total(float): Total lifetime energy production in kWhtotal_tree(float): Equivalent trees plantedtotal_co2(float): Total CO2 savings in kgtotal_diesel(float): Equivalent diesel saved in litrespercent(int): Performance percentagemeter_power(float): Grid power in wattspower_load(float): Load power in wattsw_cha(float): Charging power in wattspower_pv(float): PV power in wattssoc(float): Battery state of charge percentagemicro(int): Micro inverter flagwarning(str): Warning status
Data class containing earnings information per currency.
currency(str): Currency code (e.g., "EUR")today(float): Today's earningstotal(float): Total earnings
Data class containing gateway device information.
sn(str): Serial numbermodel(str): Gateway modelstatus(str): Gateway statustime(str): Last update timepush_time(int): Push interval in secondspid(str): PID
Data class containing inverter port information.
sn(str): Serial numberid(str): Port IDx(int): X coordinatey(int): Y coordinateport(int): Port number
Data class containing administrator account information.
parent_name(str): Parent account nameparent_id(str): Parent account IDrole(list[str] | None): User roleshas_lower_level(bool): Whether account has lower level accessid(str): User IDeid(int): Equipment IDusername(str): Usernamelogin_name(str): Login nameemail(str): User email addressfirst_name(str): First namelast_name(str): Last namecompany(str): Company namecountry(str): Countrycity(str): Cityaddress(str): Address line 1address2(str): Address line 2postal_code(str): Postal codemobile(str): Mobile phone numbermobile_prefix_code(str): Mobile country prefix codecity_mobile_code(str): City mobile codecountry_mobile_code(str): Country mobile codelanguage(str): Language preferencecurrency(str): Currency preferencetimezone(str): Timezonephoto(str): Profile photo URLlast_login_time(str): Last login timestamplast_login_ip(str): Last login IP addresscreated_at(str): Account creation timestampdeleted_at(str): Account deletion timestampmanufacturer(int): Manufacturer flagswitch_warning(int): Switch warning flagis_internal(int): Internal account flagstatus(int): Account statusfirst_login(bool): Whether this is the first logintoken(str): Session token
HyponCloudError: Base exception for all library errorsAuthenticationError: Authentication failed (invalid credentials)RequestError: API request failedRateLimitError: API rate limit exceeded