Skip to content

v0.8.9b2 - WIT/WIS fix

Pre-release
Pre-release

Choose a tag to compare

@0xAHA 0xAHA released this 04 May 09:17

Release Notes

Buy Me A Coffee


v0.8.9b2

Issues: #295


  • Fix: WIT all entities unavailable after upgrading to v0.8.8 (Issue #295):
    The profile-driven register scan sizing introduced in v0.8.8 contained a bug affecting WIT
    inverters. Two related problems were found and fixed:
    1. has_base_range was checking for any address in 0–999, which includes WIT's 875-range
      registers. This caused max_base_addr to resolve to ~998 — a 999-register read that
      immediately exceeded the Modbus limit of 125 per request. Fixed by excluding 875–999
      from the base range check (that range is already read separately).
    2. After the first fix, the base range read was still 189 registers (WIT has input registers
      defined up to address 188). This also exceeds the 125-register limit. Fixed by reading
      the base range in 125-register chunks when it spans more than 125 addresses — the same
      pattern already used for the 3000-range. As a side effect, WIT registers 125–188 are now
      read correctly for the first time (previously the 0–124 cap silently dropped them).

v0.8.8

Issues: #294


  • Feature: Configurable inter-request Modbus delay (Issue #294):
    A new Modbus Request Delay field (50–1000 ms, default 250 ms) is available in Options
    (Settings → Devices & Services → Growatt Modbus → Configure). This controls the minimum
    pause between consecutive Modbus read requests within a single poll cycle. The 250 ms
    interval was already hardcoded internally; this exposes it as a user-configurable setting.
    Users seeing transaction_id mismatch errors in the log — caused by the inverter responding
    late to requests while the next one has already been sent — should increase this to 500–1000 ms.
    Takes effect immediately without an integration restart.

  • Fix: Profile-driven input register block sizing:
    The base (0–N) and storage (1000–N) input register reads now read only up to the highest
    register address defined in the active profile, rather than always reading 125 registers.
    A profile that only uses registers 0–88 now requests 89 registers instead of 125, reducing
    payload size and poll time.

  • Fix: VPP holding register retry throttling:
    VPP-range holding registers (30100, 30200–30201, 30407–30410) that return no response on
    the first read of a session are now permanently skipped for the remainder of that session.
    This mirrors the existing behaviour for VPP input register ranges and prevents repeated
    unanswered requests from accumulating transaction-ID mismatches on firmware that does not
    implement these registers. On the next HA restart the registers are retried once in case
    firmware was updated.

  • Fix: priority_mode sensor displays mode name instead of raw integer:
    The Priority Mode sensor now shows "Load First", "Battery First", or "Grid First" instead
    of the raw register value (0, 1, 2).

  • Feature: Export Limit Fallback Power Rate writable number entity (holding register 3000):
    A new Export Limit Fallback Power Rate number control (0–100%, step 0.1) is available on
    MIN TL-X, MIN TL-XH, MIC 600–3300TL-X, and TL-XH 3000–10000 profiles (and all their V2.01
    variants). It reads and writes holding register 3000 (ExportLimitFailedPowerRate) — the
    fallback output power cap the inverter applies when export limitation control fails. Appears
    under the Grid device as a configuration entity.