Skip to content

v1.9.2-beta.1

Choose a tag to compare

@github-actions github-actions released this 02 May 13:55

Changes since v1.7.2 (all on experimental/task-tracking-ci):

v1.9.2

  • Dev tools (scan_registers.py, test_connection.py) moved to tools/ so HACS does not surface them alongside the integration. scan_registers.py now builds its register label map from SENSOR_REGISTERS at runtime - no more drift. test_connection.py now accepts --host, --port, --slave arguments.

v1.9.1

  • Removed unused DEFAULT_SCAN_INTERVAL and MODBUS_HUB constants from const.py.
  • time.py async_set_value now rolls back the hour register if the minute write fails, preventing the inverter schedule from being left in a half-updated state.

v1.9.0

  • Reconnect storm protection: modbus_client tracks consecutive failures and enforces a 10-second backoff after 3 in a row. connect() is guarded by a lock so concurrent callers coalesce.
  • Coordinator aborts a cycle early after more than 5 read errors, letting HA backoff handle the retry.
  • Number, select, and switch entities expose an available property tied to coordinator.last_update_success - controls go unavailable during outages instead of showing stale data.

v1.8.1

  • coordinator.data entries expire after 5x their scan_interval without a successful read - permanently failing registers report unknown instead of a stale value.
  • Removed async_request_refresh() from write helpers - no extra round-trips after dispatch writes.
  • async_sync_datetime now writes all three time registers in a single write_registers call (atomic, no partial-clock window).

v1.8.0

  • Batch contiguous Modbus register reads: adjacent registers (gap <= 4) merged into one read_holding_registers call per cycle, reducing transactions from ~50 to ~10 per poll.
  • SOC watcher samples every 2 s (down from 10 s) while a force-discharge/export switch is active.
  • Number and select sliders now source their displayed value from live coordinator data rather than cached HA state - reflects changes made via the AlphaESS app immediately after restart.
  • Switches no longer look up number/select values by hardcoded entity ID slugs. Values are read from coordinator.numbers / coordinator.selects, which are device-rename-safe and work with multiple inverters.

v1.7.4

  • 15 dispatch-parameter ModbusNumberDef entries now have address=None, removing a footgun where a future write_register call could silently clobber live dispatch state.

v1.7.3

  • Async tasks tracked with hass.async_create_task - reload mid-dispatch no longer leaks coroutines.
  • Raises ConfigEntryNotReady on connect failure so HA retries automatically rather than marking the entry as permanently failed.
  • Added hassfest and HACS validation CI workflows.