Skip to content

0.8.5

Choose a tag to compare

@Jarauvi Jarauvi released this 10 Mar 06:54

Changes Made by @pvandenh

New Entities — Anti Overload Control

  • switch.anti_overload — Enables/disables Anti Overload Mode; turning off sends 0x00, turning on restores the last stored threshold value
  • number.anti_overload_value — Sets the threshold value (1–99, default 63) used when Anti Overload is enabled; immediately resends config to the charger if Anti Overload is currently on, otherwise stores ready for next enable

Both entities are only created when the user has confirmed their charger has the physical DLB module installed.

Bug Fix

  • Fixed Anti Overload value being reset to 63 on every DLB config change — The anti_overload byte was hardcoded as 3f directly in the SET_DLB_CONFIG hex template string. Any DLB mode change from HA (switching modes, toggling Extreme/Night Mode, etc.) would unconditionally overwrite whatever value the user had set in the Z-Box app. The byte is now tracked in the _dlb_config cache, round-tripped via the charger's ACK response, and persisted to config_entry.options alongside all other DLB config fields

Protocol Discovery

  • Reverse-engineered byte16 of the 0x6b message — Anti Overload is encoded as a single byte: 0x00 = disabled, 199 = enabled with that value as the threshold. No separate flag byte — the zero value itself signals disabled. Confirmed across four packet captures:
Action | anti_overload byte -- | -- Toggle OFF | 0x00 = 0 Toggle ON, value 63 | 0x3f = 63 Toggle OFF | 0x00 = 0 Toggle ON, value 30 | 0x1e = 30
  • Updated SET_DLB_CONFIG and SEND_DLB_CONFIG message structuresanti_overload slice added at [32:34] in both the client send and server ACK definitions in const.py

Service Changes

  • beny_wifi.set_dlb_config extended with two new optional fields:
    • anti_overload (boolean) — enable or disable Anti Overload
    • anti_overload_value (integer, 1–99) — set the threshold independently of the toggle; can be used to pre-stage a value before enabling