v0.9.5 - Various Fixes
Release Notes
v0.9.5
Issues: #316, #320, #324, #332
-
Fix:
inverter_statusentity shows energy total value instead of status code (Issue #316):
The data extraction code usedmin_addr(the lowest register address in the profile) as the
status register address, relying on the implicit assumption that the status register is always
the profile's first register. This assumption holds for current profiles but is fragile.
The status is now looked up by name (inverter_statusorstatus) via_find_register_by_name,
eliminating the assumption and making status reading robust to any future register ordering. -
Fix: WIT
vpp_export_limit_wwrite rejected by inverter (Issue #320):
The WIT inverter returns Modbus exception 1 (Illegal Function) when register 203 is written
with FC06 (Write Single Register). Register 203 requires FC16 (Write Multiple Registers).
The write now useswrite_registersinstead ofwrite_register. -
Fix: SPH TL3 battery charge/discharge energy sensors always 0 on V2.01 profile (Issue #324):
The battery register range detection function (_detect_battery_register_range) used a hardcoded
list of sensor names to score which register range (VPP 31000+ vs fallback 1000+) contains
active data. The list includedbattery_discharge_today_lowandbattery_charge_today_low,
but the SPH TL3 profile names these registersdischarge_energy_today_lowand
charge_energy_today_low(nobattery_prefix). The fallback range scored 2 instead of 4,
the VPP range won (score 3), and daily energy was read from the 31000+ range where those
registers don't exist — returning 0.0. The alternate names are now included in the scoring
list. The data-reading code already handled both names; only the range detection was wrong. -
Fix: WIT
battery_voltage_bms10× too high on standard BMS firmware (Issue #332):
The v0.9.4 scale change (0.1 → 1) for register 8095 corrected readings for DIY JK BMS units
(which report in whole volts) but broke OEM BMS firmware (YE1.0 etc.) that follows the
standard Growatt 0.1 V/LSB convention. The scale is reverted to 0.1 and the integration now
auto-detects whole-volt BMS firmware at runtime: if the BMS-reported voltage is less than 20%
of the inverter's own battery voltage reading (register 8034), it is automatically multiplied
by 10. Both firmware variants are now handled correctly with no user configuration required.