What's changed
Australian users
AlphaESS has been migrating Australian systems to a new regional server. The
cloud summary endpoint (getSumDataForCustomer) now returns null for many of
the data points.
Those sensors now go unavailable while the data is missing and come back on
their own once it returns, instead of reporting a wrong value. Affected: Total
Load, Total Income, Total Generation, Trees Planted, CO2 Reduction, Today's
Generation, Today's Income, Self Consumption, Self Sufficiency. The daily energy
sensors (Charge, Discharge, Solar Production, and so on) are not affected.
Tracking issue: #250
Alt Polling Mode
A new optional Alt Polling Mode has been added for users who want faster
updates from their AlphaESS system.
Alt Polling Mode separates polling into two update intervals:
- A normal polling interval that retrieves all inverter data.
- A fast polling interval that refreshes only real-time power, energy, and EV
charger status data.
This allows frequently changing values to update more often without repeatedly
requesting less frequently changing configuration and summary data.
For systems with multiple inverters, fast polling is automatically staggered
between inverters to reduce API load while still providing regular updates.
New options:
- Enable or disable Alt Polling Mode.
- Configure the fast polling interval (5–300 seconds).
New diagnostic sensors:
- Poll Mode
- Last Poll Type
- Last Full Poll
- Poll Tick Count
Reliability improvements
Several changes improve reliability and recovery when AlphaESS cloud services
are unavailable or experiencing issues.
- Entities now become unavailable when fresh data cannot be obtained instead of
indefinitely showing stale values. - Authentication failures now trigger Home Assistant's reauthentication flow,
allowing App Secrets to be updated from the UI. - Setup automatically retries when the AlphaESS cloud is unavailable during Home
Assistant startup. - Multi-inverter systems now handle polling failures independently.
- Failed inverters are temporarily backed off and periodically retried instead
of affecting the entire account. - Local-IP polling is now protected against concurrency issues that could cause
requests to be sent to the wrong inverter. - Energy queries now use Home Assistant's configured timezone instead of the
host operating system timezone.
Bug fixes
- Unbinding an inverter no longer errors. It previously called a method that
does not exist in Home Assistant core, so the flow crashed and left the
sub-entry behind even though the inverter had been removed from your account.
It now removes the sub-entry and reloads. - The integration no longer leaks an HTTP session on every setup and reload; it
uses Home Assistant's shared client session. - Setup now reports "cannot connect" on DNS and timeout failures instead of an
unknown-error traceback. - EV charger: allow starting a charge when the charger is in finishing mode.
- Battery charge and discharge services now continue working correctly after
integration reloads and with multiple configured systems. - Coordinator updates now always provide fresh data objects, preventing state
comparison issues within Home Assistant.
Deprecations removed
- The options flow uses
OptionsFlowWithReloadand the manual update listener
is gone. The old combination logs a deprecation warning and stops working in
HA 2026.12. - The coordinator passes its config entry explicitly, ahead of the 2026.8
removal of the implicit context lookup. - Runtime data has been migrated to
entry.runtime_datafollowing modern Home
Assistant integration patterns.
Sensor metadata corrections
- Inverter nominal Power and PV nominal Power changed from kWh to kW, with the
device class changed from energy to power. They are power ratings, not
energy. - Inverter nominal Power, PV nominal Power, and Installed Capacity no longer
record long-term statistics. They are fixed hardware ratings and never
accumulate. - Installed Capacity and Current Capacity use the energy storage device class.
- Self Consumption and Self Sufficiency dropped the incorrect power factor
device class. - EMS Status no longer declares an enum device class without options.
Diagnostics
- Added Home Assistant diagnostics support.
- Sensitive information such as credentials, serial numbers, Wi-Fi details,
register keys, and IP addresses is automatically redacted from downloaded
diagnostic reports.
Other
- Charge and discharge buttons no longer use the
identifydevice class. PARALLEL_UPDATESis set on every platform: sensors poll freely, while
buttons, numbers, switches, and time entities serialize writes to respect the
API's rate limits.- Devices expose the system serial via
serial_numberand are no longer marked
as service entry types. - Manifest: added
integration_type: hubandloggers, and removed the unused
restdependency that delayed startup. - Number entities use
NumberMode.BOXinstead of a raw string. - Parser and helper layers were simplified, reducing unnecessary coroutine
creation and improving efficiency. - Logging and internal code structure were cleaned up for easier maintenance.
- Test suite expanded to 295 tests with 100% coverage and CI enforcement.