Skip to content

0.8.3

Choose a tag to compare

@Jarauvi Jarauvi released this 04 Mar 20:04

Changes Made by @pvandenh

New Features

  • 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

Breaking Changes

Fixes by @Jarauvi

  • Some chargers stopped working after 1.28 firmware update, added support for new status message 36
  • Model request header is now dynamic and can support multiple header types (55aa10 and 55aa04)