Skip to content

Releases

v0.2.0

Choose a tag to compare

@bdecl bdecl released this 27 Oct 22:57
f6ffd01

Requires Home Assistant 2026.10 or newer.

Changes

  • Shared Modbus connection. Units are taken from Home Assistant's modbus integration (async_get_unit, async_get_temporary_unit for the scan) instead of an own pymodbus client: every integration addressing the same host and port shares one connection and queues its requests. No own Python requirements; the manifest depends on modbus.
  • Sleeping inverters at night. After dusk the ECU keeps serving the last values of its inverters (a few watts, grid voltage, state MPPT). An inverter whose measurement registers have not changed for 15 minutes is shown as asleep: power and currents 0, voltage, frequency and temperature unknown, state Sleeping, energy kept. Inverters online / producing count only fresh data. New Last data update sensor per inverter.
  • Optional ECU ID in the setup and reconfigure forms. The ECU is not visible over Modbus: its ID names the ECU device after its model (215 ECU-C, 2160 ECU-R, 2162 ECU-R Pro) and shows model and serial number.
  • Inverters named after their serial number, e.g. QT2-3 (17556), instead of the Modbus address. Existing entries keep their entity ids.
  • Setup stops at once with "cannot connect" when nothing answers.
  • No deprecated Home Assistant usages: OptionsFlowWithReload instead of an update listener (2026.12), via_device_id instead of via_device (2027.8).
  • Brand images (icon, logo, dark logo) in brand/.
  • CI on Python 3.14 against Home Assistant 2026.10.0; README, example dashboards updated.

Tested

  • Test suite on Home Assistant 2026.10.0 and 2026.10.4 (simulated ECU).
  • On a real ECU-C with nine QT2-3 (pre-releases v0.2.0b1 to b6): shared connection, polling, limit write, frozen data at night shown as asleep after 15 minutes, no deprecation warnings, ECU ID added through Reconfigure without changing entity ids.

Upgrading from 0.1.x: update Home Assistant to 2026.10 or newer first. Existing config entries keep working.

v0.2.0b6

v0.2.0b6 Pre-release
Pre-release

Choose a tag to compare

@bdecl bdecl released this 27 Oct 22:32

Beta for testing. Not offered as the latest version in HACS.

Requires Home Assistant 2026.10 or newer.

New in this beta:

  • Optional ECU ID in the setup and reconfigure forms (12 digits, ECU label or EMA). The ECU is not visible over Modbus: its ID names the ECU device after its model, e.g. ECU-C (1234) (215 ECU-C, 2160 ECU-R, 2162 ECU-R Pro), and shows model and serial number. Added to an existing entry through Reconfigure, it renames the device, not the entities.
  • Inverters named after their serial number: QT2-3 (17556) (model and last 5 digits) instead of APsystems inverter 1. Unique with several ECUs and independent of the Modbus addresses set in EMA. Existing entries keep their entity ids; new ones follow the device names. Example dashboards use qt2_3_aaaaa_ placeholders.

Already in v0.2.0b4:

  • Sleeping inverters at night (data unchanged for 15 minutes shown as asleep), "Last data update" sensor.
  • No deprecated Home Assistant usages left.
  • Modbus connection shared through Home Assistant's modbus integration, no own Python requirements.
  • Brand images.

v0.2.0b4

v0.2.0b4 Pre-release
Pre-release

Choose a tag to compare

@bdecl bdecl released this 27 Oct 21:19

Beta for testing. Not offered as the latest version in HACS.

Requires Home Assistant 2026.10 or newer.

New in this beta:

  • No more deprecated Home Assistant usages: options reload through OptionsFlowWithReload instead of an update listener (would stop working in 2026.12), and inverter devices are linked to the ECU device with via_device_id (via_device is removed in 2027.8).

Already in v0.2.0b3:

  • Sleeping inverters at night: an inverter whose measurements have not changed for 15 minutes is shown as asleep (0 W, voltage and frequency unknown, state Sleeping, energy kept). Inverters online / producing count only fresh data. "Last data update" sensor per inverter.
  • Modbus connection taken from Home Assistant's own modbus integration (shared, queued), no own Python requirements.
  • Brand images (icon and logo).

Existing config entries keep working, nothing to reconfigure.

v0.2.0b3

v0.2.0b3 Pre-release
Pre-release

Choose a tag to compare

@bdecl bdecl released this 27 Oct 20:47

Beta for testing. Not offered as the latest version in HACS.

Requires Home Assistant 2026.10 or newer.

New in this beta:

  • Sleeping inverters at night. After dusk the ECU keeps serving the last values of its inverters, with no register saying they are old. An inverter whose measurements have not changed for 15 minutes is now shown as asleep: power and currents 0, voltage, frequency and temperature unknown, operating state Sleeping; energy counters keep their value. Inverters online / producing count only inverters with fresh data. Each inverter gets a "Last data update" diagnostic sensor.

Already in v0.2.0b2:

  • Modbus connection taken from Home Assistant's own modbus integration (shared, queued), no own Python requirements.
  • If the ECU cannot be reached during setup, the scan stops at once with "cannot connect".
  • Brand images: icon and logo shown in Home Assistant (light and dark).

A modbus: hub declared in YAML still opens a separate connection: do not point one at the ECU while the integration is in use. Existing config entries keep working, nothing to reconfigure.

v0.2.0b2

v0.2.0b2 Pre-release
Pre-release

Choose a tag to compare

@bdecl bdecl released this 27 Oct 20:06

Beta for testing. Not offered as the latest version in HACS.

Requires Home Assistant 2026.10 or newer.

  • The integration now takes its Modbus connection from Home Assistant's own modbus integration instead of opening its own pymodbus client. Every integration that addresses the same host and port shares one connection, and their requests queue instead of competing.
  • No own Python requirements any more; the manifest depends on modbus.
  • If the ECU cannot be reached during setup, the scan stops at once with "cannot connect" instead of waiting on every address.
  • A modbus: hub declared in YAML still opens a separate connection: do not point one at the ECU while the integration is in use.
  • Brand images: icon and logo shown in Home Assistant (light and dark).

Existing config entries keep working, nothing to reconfigure.

v0.2.0b1

v0.2.0b1 Pre-release
Pre-release

Choose a tag to compare

@bdecl bdecl released this 27 Oct 17:52

Beta for testing. Not offered as the latest version in HACS.

Requires Home Assistant 2026.10 or newer.

  • The integration now takes its Modbus connection from Home Assistant's own modbus integration instead of opening its own pymodbus client. Every integration that addresses the same host and port shares one connection, and their requests queue instead of competing.
  • No own Python requirements any more; the manifest depends on modbus.
  • If the ECU cannot be reached during setup, the scan stops at once with "cannot connect" instead of waiting on every address.
  • A modbus: hub declared in YAML still opens a separate connection: do not point one at the ECU while the integration is in use.

Existing config entries keep working, nothing to reconfigure.

v0.1.0

Choose a tag to compare

@bdecl bdecl released this 17 Oct 13:30

First release of the Home Assistant integration apsystems_ecu_sunspec.

  • Talks to the ECU's own SunSpec server on port 502, nothing installed on the ECU
  • Automatic detection of the inverters (gaps in addresses allowed), AC topology per inverter, out-of-chain DC block and working controls
  • Array power limit, production and limit-enable on the ECU device (global to the array)
  • Per inverter: AC values, operating state, events, DC voltage, current and power per channel
  • Zero export blueprint
  • Three-phase and single-phase dashboards