You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added DLB Mode select entity: Dropdown to switch between DLB Box, Full Speed, Hybrid, and Pure PV modes
Added Extreme Mode switch entity: Enables/disables Extreme Mode (reduces or stops charging when home load is high)
Added Night Mode switch entity: Enables/disables automatic full-speed charging during a configured nightly window
Added Hybrid Current Limit number entity: Sets the current limit (1–32A) used in Hybrid mode; immediately resends config if already in Hybrid mode
Added Night Mode Start Hour number entity: Sets the hour Night Mode begins (0–23, whole hours only)
Added Night Mode End Hour number entity: Sets the hour Night Mode ends (0–23, whole hours only)
Added set_dlb_config service: Full programmatic control over all DLB config fields; all parameters optional — only supplied fields are changed
Updated icons.json: Added icon definitions for set_dlb_config and set_max_current services
Protocol Discovery
Reverse-engineered 0x6b message type: A single unified DLB config command carrying all mode state in one 18-byte UDP message byte11: Extreme Mode flag (0x01 = on, 0x00 = off) byte12: DLB mode selector — 0xff = DLB Box, 0x63 = Full Speed, 0x00 = Pure PV, 0x01–0x20 = Hybrid with that value as the current limit in amps byte13: Night Mode flag (0x01 = on, 0x00 = off) byte14: Night Mode start hour (decimal value in hex, e.g. 0x16 = 22 = 10pm) byte15: Night Mode end hour (decimal value in hex, e.g. 0x06 = 6am)
Implementation Notes
All DLB fields are sent together in every message — the charger replaces its full config on each write. The coordinator maintains a _dlb_config cache so that changing one field (e.g. toggling Night Mode) never accidentally resets others (e.g. the current DLB mode)
The select entity uses optimistic state — the UI snaps to the new value immediately on selection and clears back to the cache-derived value on the next coordinator poll, preventing the display from appearing stale after a successful command
The hybrid_current and night hour number entities live in number.py (not select.py) so they are registered under the correct Platform.NUMBER platform and function as editable sliders/inputs
Night Mode start/end hours are whole hours only — the charger protocol does not accept minutes