Release 2.3.4¶
Zuletzt geändert am 21.03.2026
Version 2.3.⅓ wurde übersprungen.
Verbesserungen¶
Flankenerkennung: Sensor für Kompressorstart gewechselt (4b1dddd)¶
Der Sensor zur Erkennung eines Kompressorstarts wurde geändert:
| Vorher (2.3) | Jetzt (2.3.4) | |
|---|---|---|
| Quelle | HP_STATE (Register 1002) |
compressor_unit_rating (Register 1010) |
| Erkennungsbedingung | Übergang in State 2 (RESTART-BLOCK) |
Anstieg von 0 → >0 (Rising Edge) |
| Semantik | Zählt abgeschlossene Zyklen (nach Sperrzeit) | Zählt aktive Kompressorstarts (bei Einschaltmoment) |
compressor_unit_rating gibt die aktuelle Kompressorleistung in Prozent (0–100 %) zurück. Eine steigende Flanke von 0 auf einen Wert größer 0 zeigt an, dass der Kompressor gerade gestartet hat. Das ist präziser und unabhängiger von internen HP-State-Übergängen.
Fast Polling für Flankenerkennung (4b1dddd)¶
Die Flankenerkennung wurde aus dem regulären 30-Sekunden-Update herausgelöst und in einen eigenen schnellen Polling-Loop mit 2-Sekunden-Intervall ausgelagert.
Architektur¶
┌──────────────────────────────────────────────────────────┐
│ _async_fast_update() [alle 2 Sekunden] │
│ └─ liest nur Register 1003 + 1010 pro Wärmepumpe │
│ └─ _run_cycling_edge_detection() │
│ └─ increment_cycling_counter() │
├──────────────────────────────────────────────────────────┤
│ _async_update_data() [alle 30 Sekunden, konfigurierbar]│
│ └─ vollständiger Modbus-Read aller Register │
│ └─ Energieintegration (kWh) — keine Flankenerkennung │
└──────────────────────────────────────────────────────────┘
Warum Fast Polling?¶
Kurze Betriebsmodüs-Übergänge (z. B. kurze Abtauphasen oder schnell wechselnde Starts) konnten im 30-Sekunden-Raster übersehen werden. Mit 2-Sekunden-Polling wird jede Flanke zuverlässig erfasst und die stündlichen Sensoren sind genauer.
Was wird im Fast Poll gelesen?¶
Pro Wärmepumpe werden nur zwei Register gelesen:
| Register | Adresse | Inhalt | Verwendung |
|---|---|---|---|
HP_OPERATING_STATE |
1003 | Betriebsmodus (Heizen/WW/Kühlen/Abtauen) | Modus-Flankenerkennung |
compressor_unit_rating |
1010 | Kompressorleistung in % | Kompressorstart-Erkennung |
Neue Konstante¶
Das Intervall ist fest konfiguriert und nicht über die UI einstellbar.
Kollisionsschutz mit Vollupdate¶
Ein _full_update_running-Flag verhindert, dass der Fast Poll einen laufenden 30-Sekunden-Vollupdate stört:
self._full_update_running = False # True während _async_update_data die Modbus-Verbindung hält
self._unsub_fast_poll = None # Handle zum Abmelden des Fast-Poll-Timers
Fixes¶
Übersetzung vda_rating: „Max" ergänzt¶
Der Sensor vda_rating zeigt den maximalen VdA-Leistungswert der Wärmepumpe. Die Bezeichnung wurde in beiden Sprachen entsprechend korrigiert:
| Sprache | Vorher | Nachher |
|---|---|---|
| Englisch | VdA Rating |
VdA Rating Max |
| Deutsch | VdA Leistung |
VdA Leistung Max |
Interne Refactorings¶
_run_cycling_edge_detection() als eigene Methode¶
Die Flankenerkennung wurde in die dedizierte Methode _run_cycling_edge_detection() ausgelagert. Sie wird ausschließlich von _async_fast_update() aufgerufen und aktualisiert _last_operating_state sowie _last_compressor_rating.
_last_state umbenannt in _last_compressor_rating¶
Das interne State-Tracking-Dictionary für den Kompressorstart wurde von _last_state in _last_compressor_rating umbenannt, um den neuen Sensor (compressor_unit_rating) semantisch korrekt zu spiegeln.