Skip to content

v0.9.5 - Various Fixes

Choose a tag to compare

@0xAHA 0xAHA released this 25 Jun 08:55

Release Notes

Buy Me A Coffee


v0.9.5

Issues: #316, #320, #324, #332

  • Fix: inverter_status entity shows energy total value instead of status code (Issue #316):
    The data extraction code used min_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_status or status) via _find_register_by_name,
    eliminating the assumption and making status reading robust to any future register ordering.

  • Fix: WIT vpp_export_limit_w write 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 uses write_registers instead of write_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 included battery_discharge_today_low and battery_charge_today_low,
    but the SPH TL3 profile names these registers discharge_energy_today_low and
    charge_energy_today_low (no battery_ 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_bms 10× 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.