Skip to content

DucoBox Integration v1.0.2

Choose a tag to compare

@danielpetrovic danielpetrovic released this 10 Mar 10:39

What's Changed

Reliability overhaul addressing unknown/unavailable sensor states on startup, transient node gaps from weak RF nodes, and energy sensor registration issues introduced by the differential polling architecture.

Changes

  • Fixed: Node discovery scanned 60 IDs sequentially (up to 120s); replaced with parallel asyncio.gather bounded by semaphore=5 for fast scanning without overwhelming the device
  • Fixed: Energy and node requests could fire in the same coordinator tick; replaced time-based thresholds with a strict boolean toggle that alternates each tick
  • Fixed: Energy sensors were never registered as coordinator listeners when energy_info was None on the first (nodes-only) tick — always register them regardless
  • Fixed: Energy sensors went unavailable when /boxinfoget fails — cached energy is now preserved on failure
  • Fixed: Node sensors showed transient unknown when coordinator data was None — _last_value cache now returns last known value instead
  • Fixed: Box sensors showed unknown on reboot — RestoreSensor with restore-before-super() ordering ensures last persisted value loads before first write_ha_state()
  • Fixed: Nodes temporarily unreachable during re-discovery no longer disappear — live results are merged with cache
  • Changed: Coordinator interval bumped from 15s to 30s (device updates every ~60s, 30s is sufficient)

Upgrade Notes

  • Reload the integration after updating (Settings → Integrations → DucoBox → ⋮ → Reload)
  • No configuration changes required