Skip to content

v4.5.5 - Non-Blocking Setup (Beurer Pattern)

Choose a tag to compare

@moag1000 moag1000 released this 28 Mar 22:28

Non-Blocking Setup

HA-Neustart wird nicht mehr durch unerreichbare KKT-Geräte blockiert. Die Geräteverbindung läuft jetzt als Background-Task parallel zum HA-Startup.

Vorher

async_setup_entry()
  → device.async_connect()          # bis 36s blockiert
  → coordinator.first_refresh()     # bis 60s blockiert
  → Entities laden
Worst Case: ~96s pro unerreichbarem Gerät

Nachher

async_setup_entry()
  → Coordinator erstellen
  → Background-Task schedulen       # 0s - sofort weiter
  → Entities laden                  # sofort verfügbar

Background-Task (parallel zum HA-Startup):
  → device.async_connect()
  → coordinator.async_refresh()

Technische Änderungen

  • __init__.py: Blockierender Connect + First-Refresh ersetzt durch entry.async_create_background_task()
  • coordinator.py: _initial_connect_done Flag — gibt leere Daten zurück bis Background-Connect fertig
  • hybrid_coordinator.py: Gleicher Pattern — kein UpdateFailed mehr bei fehlgeschlagener Kommunikation
  • Auth-Fehler werden im Background-Task über entry.async_start_reauth() + Repair Issues gehandhabt
  • Entities bleiben während der Verbindungsphase "available" (kein Unavailable-Flash)

Pattern

Basiert auf dem bewährten Beurer-Integration-Pattern: Setup blockiert nicht, Verbindung im Hintergrund, adaptive Polling-Intervalle.