v0.9.4 - MIN TL-XH Feature + Multiple fixes
Release Notes
v0.9.4
Issues: #311, #323, #326, #327
-
Feature: MIN TL-XH priority mode control (Issue #311):
Register 3018 (tl_xh_priority_mode) hardware-confirmed on MIN 4200TL-XH: write 0 → Load First, 2 → Battery First, 3 → Grid First (default). Appears as a select entity under the Battery device onMIN_TL_XH_3000_10000_V201profiles. Note: value 1 is not a valid priority mode on this hardware (V1.39 maps it as a system topology setting). -
Fix: WIT
battery_voltage_bmsreads 1/10th of actual (Issue #323):
Register 8095 (battery_voltage_bms) on WIT inverters with JK BMS returns whole volts (e.g., raw 54 at 54.0 V). The previousscale: 0.1was producing readings of 5.4 V. Scale corrected to1. -
Fix: WIT
solar_total_powerspikes to 429 MW (Issue #323):
The WITpv_total_power32-bit register pair (regs 1–2) was missingsigned: True. When the
inverter sends a small negative value (e.g. at night or during certain grid conditions), it was
read as an unsigned 32-bit integer —0xFFFFFFFF × 0.1 = 429,496,729.5 W. Now correctly
resolves to approximately −0.1 W. -
Fix: WIT
vpp_export_limit_wentity always shows Unknown (Issue #323):
Holding register 203 (export_limit_w) was defined in the WIT profile but never polled or
stored in the data object. The number entity read from a field that was never populated.
Register 203 is now read each poll cycle and stored indata.export_limit_w. -
Fix: Grid import/export and load sensors missing on SPH 3/6kW and 7/10kW (Issue #326):
Power-flow registers 1015/1016 (power_to_user), 1021/1022 (power_to_load),
1029/1030 (power_to_grid), and 1037/1038 (self_consumption_power) were present in
SPH_8000_10000_HUand the V2.01 profiles but missing from the two base profiles
SPH_3000_6000andSPH_7000_10000. Without them, grid sensors fell back to a derived
value that reported ~2.6 kW export when the inverter was actually importing. Both base
profiles now include the full power-flow register set. -
Fix: Spurious WARNING log before every control write (Issue #327):
The integration intentionally closes the Modbus socket after each read cycle. When a
write is requested,is_socket_open()correctly returnsFalseand the code reconnects
before writing — this is by design, not a fault. The "Socket not open, attempting
reconnect" message has been downgraded fromWARNINGtoDEBUG.