Releases: HAEdwin/homeassistant-apsystems_ecu_reader
v2.14.0 Bugfix and Activity log improvement
- Newly added or replaced inverters were wrongly skipped
- In the activity log, inverter status messages have changed from:
“Inverter 703000123456 Online changed to on/off”
to
“Inverter 703000123456 Online changed to true/false.”
Minor bug on slower systems
Sorry for the rapid succession of updates, I try to avoid it, but I found this one very important.
I didn't sufficiently consider slower systems (like the Raspberry Pi) in the latest update.
The "Last UI update" attribute had to be removed because of this.
This will not affect further operation, except for resolving the slow status updates (#104) that sometimes occur.
These slower systems should no longer encounter this error. Thanks to @175653 for the bug report.
v2.13.1 Minor bugfix
There was a minor bug in the Turn off switch for zero export. Thanks to @zorly57 for testing and submitting the feature request.
v2.13.0 HACS default and Export Power Limit (ECU-C)
You may have noticed that the integration is now HACS by default 🎉
This makes installation even easier because you no longer need to paste a URL into HACS; you can simply search for APsystems ECU Reader, and this integration will appear for download. My goal here is to make it somewhat clearer how many downloads there are, and it should also provide better notifications for new releases. Hopefully we'll see this in the next release.
This release includes a new feature for ECU-C owners. Previously, the zero-export function was actually 0 Watts to the grid. In this version, this is adjustable between 0 and 3 kW in 100 W increments. Please note, I haven't been able to test it in practice because: A. I don't have an ECU-C and B. The sun shines so little here in the Netherlands that feeding it back into the grid isn't an option at the moment. So, as always, feedback is very welcome.
Unfortunately, this feature is not available for the ECU-R (pro) and/or ECU-B. These ECUs don't have a sensor CT clamp to detect whether power is being fed back into the grid.
v2.12.1 Bugfixes and cleanup
UI Changes
- Removed redundant state attributes.
Attributes such as ECU ID or Inverter ID were displayed twice in the UI. Double state attributes removed. - Added extra state attribute "IP Address" to Firmware sensor
Coding standards
- Created some constants from fixed default values
Bugfixes
- Fixed a bug where the QT2 series was being misinterpreted discovered by @jvnrambo Thank You!
- Fixed an indentation bug in inverter data processing that caused incorrect detection of replaced inverters in multi-inverter systems
Added firmware sensor
The firmware sensor has been added because it was discovered that an earlier firmware version was causing issues with this integration (and the EMAmanager app). Hopefully, any issues can then be attributed more quickly to a firmware update might this happen in the future.
New dedicated sensor that tracks the ECU firmware version
- Displays current firmware version with diagnostic entity category
- Supports state restoration between Home Assistant restarts
- Auto-updates when firmware changes are detected during polling
v2.11.0 Async-Only & Sequential Hub Handling
This release improves reliability and troubleshooting by reorganizing debug messages, ensures ECU hubs are updated sequentially to prevent conflicts, and modernizes the integration to use only asyncio for all network operations.
- Reorganized debug messages for improved readability, friendlier and easier troubleshooting.
- Enhanced hub update logic to ensure sequential (not parallel) handling of ECU hubs.
- Refactored integration to use only ASYNCIO for all network operations; removed legacy socket code and mixed approaches.
v2.10.1 bugfixes
No new features this time, but a handful of bug fixes that will hopefully improve how the integration works.
- More specific error messages
All error messages now clearly indicate which operation (ECU, inverter, signal, meter, or socket) was being performed when the error occurred. - Socket resource management was improved
The socket resource cleanup is now handled correctly by closing only the local socket that failed to connect. All socket errors now properly trigger socket cleanup to prevent resource leaks. - Removed overly strict data length validation that was causing false socket connection errors
Prevents misleading "failed to claim socket" errors when ECU sends legitimate short responses and improves compatibility with ECU firmware variations and different inverter configurations. The integration now properly handles cases where inverter details are temporarily unavailable.
v2.10.0 Added Query switch and Reload option
-
Added "Reload" Option Per Hub
You can now reload individual non-responsive hubs (ECU's) without the need for restarting Home Assistant. This enhancement makes it easier to apply configuration changes or restart specific hubs. The underlying platform files were updated to support per-hub reloading. -
Reintroduced "Query Switch" Per Hub
By popular demand, the per-hub "Query ECU Switch" has been brought back. This switch allows users to manually enable or disable the queries made to a specific hub (ECU). It provides more control over the preferred option to stop querying after sunset.
v2.9.0 Various improvements and fix for deprecation warning
Changelog 2.9.0
Fixed
- Home Assistant 2026.8 Compatibility: Added
config_entryparameter toDataUpdateCoordinatorinitialization to resolve ContextVar deprecation warning and ensure compatibility with future Home Assistant versions - Unload Function: Simplified
async_unload_config_entryfunction by removing non-existentset_querying_statemethod call that was causing errors during integration unload - Device Removal: Enhanced
async_remove_config_entry_devicefunction with proper null checking and user notification when devices are removed - AttributeError Fix: Fixed
AttributeError: 'NoneType' object has no attribute 'hex'crash inecu_api.pywhen inverter raw data is None but code attempts to log it using.hex()method - Default state Fix: Fixed
number entity statedefaulting to 0 for maximum inverter power (now 20-500) andswitch entity stateinverter on/off state after initial hub addition