v0.8.9 - WIT entities fixed. Register Scanner improvements
Release Notes
v0.8.9
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:has_base_rangewas checking for any address in 0–999, which includes WIT's 875-range
registers. This causedmax_base_addrto 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).- 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).
-
Feature: Universal Scanner configurable block size:
Thegrowatt_modbus.export_register_dumpservice now accepts a Block Size field (125,
25, or 1 register per request; default 125). Inverters using older RS485 protocols or
single-register-only firmware (such as the TL3-S family) reject large Modbus block reads
and return Illegal Function errors for entire ranges. Setting block size to 25 or 1 allows
these inverters to be scanned successfully, at the cost of scan time. -
Feature: Universal Scanner always reports both DTC registers:
The scan result notification and CSV detection section now always show the raw value of both
the VPP DTC register (holding 30000) and the legacy V1.39 DTC register (holding 43),
regardless of which one was used for model identification. Useful when investigating
inverters with unknown or conflicting DTC codes.