Changelog
Die maßgebliche, vollständige Historie wird in
docs/CHANGELOG.md
und in den GitHub-Releases gepflegt.
Diese Seite fasst lediglich die aktuellen Meilensteine zusammen.
v0.17.0 — 2026-09-13
Der stabile Schnitt der 0.17.0-Linie, der ihren gesamten Beta-Zyklus zusammenfasst. Die
Schlagzeile: Navigator-1.0/1.7-Wärmepumpen werden unterstützt — automatisch
erkannt, mit einer eigenen, aus der offiziellen 1.x-Tabelle stammenden Registermap
bedient, samt schreibbarer PV-Supplement-Register bei aktualisierter Firmware. Der
Rest ist das September-Code-Audit: acht behobene Fehler (eine Abfrage, die ihren
Konfigurationseintrag überlebte, ein fehlgeschlagener Setup, der aktive Entitäten
zurückließ, Fahrenheit-Raumsensoren, die als Celsius geschrieben wurden,
Sentinel-Werte auf Thermostat-Karten und mehr), Härtung des Web-Supplements und des
Warmwasser-Boosts sowie die Automation, die die Abhängigkeits-Pins von selbst aktuell
hält. Laufzeit: idm-heatpump-api 2.1.1,
modbus-connection 4.11.1. Das vollständige, maßgebliche Changelog steht in
docs/CHANGELOG.md;
ab diesem Release wird es Version zu Version geführt (Beta-Abschnitte werden beim
Schnitt in den Stable-Abschnitt eingefaltet).
v0.17.0-beta.1 — 2026-09-09
Erster Kandidat der 0.17.0-Linie, mit dem Ergebnis des Code-Audits aus
docs/dev/code-audit-2026-09.md. Acht Fehler sind behoben — darunter eine Abfrage,
die ihren Konfigurationseintrag überlebte, ein fehlgeschlagener Setup, der aktive
Entitäten zurückließ, eine zweite Wärmepumpe hinter einem Modbus-Gateway, die nicht
mehr hinzugefügt werden konnte, weitergeleitete Raumtemperaturen, die nicht nach
Grad Celsius umgerechnet wurden, und Sentinel-Werte, die einen Temperaturzustand
erreichten — zusammen mit sechs Robustheits- und drei Performance-Punkten. Beide
Laufzeit-Pins ziehen nach vorn (modbus-connection 4.11.1, idm-heatpump-api
2.0.1). Keine Registermap und kein Entitäts-Bezeichner hat sich geändert.
Es ist eine Beta: Das Audit hat Modellerkennung, Setup und Abbau, schreibfähige
Entitäten und Aktionen berührt, und eine Änderung der Laufzeitabhängigkeit startet
die Soak-Uhr neu. Der Verifizierungsfortschritt wird in
docs/release-evidence/0.17.0-beta.1.md verfolgt.
v0.16.1 — 2026-08-28
Patch auf 0.16.0, anhand eines echten Home-Assistant-Logs. Zeigte das optionale
Web-Supplement auf eine IP-Adresse, schloss die Integration eine
Home-Assistant-aiohttp-Session, statt sie zu detachen — Home Assistant überschreibt
close() auf jeder Session, die seine Hilfsfunktionen herausgeben, weil der
darunterliegende Connector mit jeder anderen Integration geteilt wird. Die Session
wird jetzt per detach() freigegeben und mit auto_cleanup=False erzeugt, sodass
ein Web-Client, der nach einer fehlgeschlagenen Abfrage neu aufgebaut wird, die
vorherige Session nicht bis zum Home-Assistant-Stopp gepinnt lässt.
Ein Hostname war nie betroffen; er leiht sich die geteilte Session, die die Integration nie freigab. Abfrage, Entitätszustand, Schreibvorgänge, die KNX-Bridge und der Modbus-Pfad sind unverändert, ebenso die Laufzeit-Pins.
v0.16.0 — 2026-08-28
Erste stabile Version der 0.16.0-Linie. Sie schließt 0.16.0-beta.1 bis
0.16.0-rc.6 ab, ohne Codeänderung seit RC6.
Die Schlagzeile ist die experimentelle KNX-Bridge. Die Integration bedient die
654 IDM-KNX-Kommunikationsobjekte selbst — mit denselben Objektnummern,
Datenpunkttypen und Lese-/Schreibrichtungen wie IDMs ETS-Beispielprojekt —, sodass
das Weinzierl-Gateway-Modul KNX IP BAOS 774 nicht mehr benötigt wird. Sie ist
Opt-in, standardmäßig aus, und treibt die Home-Assistant-knx-Integration, bei der
Tunneling, Routing und KNX Secure bleiben. Eine Basis-Gruppenadresse konfiguriert
alle Objekte; idm_heatpump.export_knx_group_addresses und
scripts/generate_knx_group_addresses.py erzeugen den ETS-Import. Die
Interoperabilität mit dem physischen Bus ist noch nicht verifiziert, deshalb ist
die Funktion als experimentell markiert.
Breaking: pymodbus ist weg. Die Integration benötigt
idm-heatpump-api[web]==2.0.0 und spricht Modbus TCP ausschließlich über
modbus-connection==4.10.0 / tmodbus[async-serial]==0.6.1. 0.15.1 ist die
letzte Linie mit pymodbus. Auf der Leitung ändert sich nichts — Registeradressen,
Entitäts-IDs, Unique-IDs und der Schreibpfad sind identisch, sodass Entitäten,
Historie, Automationen und Dashboards das Update überstehen.
Ebenfalls in der Linie: jeder Entitätsname wird über einen
Home-Assistant-Übersetzungsschlüssel aufgelöst, sodass eine englische Installation
endlich englische Namen zeigt; Heizkreise, optionale Module und Räume wurden auf
Home Assistant 2026.9 zu Child-Geräten, ohne eine Geräte-ID zu verlieren; strict
mypy läuft ohne jede Deaktivierung; und die Test-Suite ist auf 95 % Abdeckung
gegated, config_flow.py auf 100 %.
Siehe KNX-Bridge.
v0.16.0-rc.6 — 2026-08-27
Die KNX-Bridge erholt sich jetzt, wenn IDM startet, bevor Home Assistants KNX-Runtime vollständig geladen ist. Die Registrierung der Gruppenadressen-Ereignisse wird alle fünf Sekunden erneut versucht, und ein Teilerfolg bleibt erhalten, sodass nur fehlende DPT-Batches erneut probiert werden. Ein manuelles Neuladen der IDM-Integration ist nicht erforderlich.
RC5s Latest-Value-Befehlswarteschlange und alle Schreibschutze sind unverändert. Die EEPROM-sensible Klassifizierung und der konfigurierbare 60-Sekunden-Standard bleiben wie zuvor; die Wiederherstellung der Registrierung sendet kein Bus-Telegramm und schreibt selbst kein Regler-Register.
v0.16.0-rc.5 — 2026-08-27
Eingehende Befehle für die experimentelle KNX-Bridge nutzen jetzt eine Latest-Value-Wins-Warteschlange. Schnelle Zwischen-Sollwerte werden über eine Sekunde zusammengefasst, und ein gültiger Befehl, der auf den allgemeinen Cooldown oder den EEPROM-Schutz trifft, bleibt so lange in der Warteschlange, bis die Sperre abläuft, statt verloren zu gehen. Die EEPROM-sensible Registerklassifizierung und der konfigurierbare 60-Sekunden-Standard sind unverändert.
Der Optionstext unterscheidet die Live-Evidenz jetzt präzise: Setup und Neuladen wurden mit einer aktiven Home-Assistant-KNX-Schnittstelle im sicheren Nur-Empfangs-Modus verifiziert, während die physische Gruppenadressen-Telegramm-Interoperabilität und die Buslast offen bleiben, weil keine IDM-Gruppenadressen in ETS importiert wurden.
Siehe KNX-Bridge.
v0.16.0-rc.4 — 2026-08-27
Entitätsnamen sind übersetzt. Bislang hatten nur eine Handvoll Steuer-Entitäten Übersetzungen; jede andere Entität — die Modbus-Register, die berechneten Sensoren und Betriebsanalyse-Sensoren, die Fachmann-Codes und die Werte des lokalen Web-Supplements — trug in jeder Sprache einen fest eincodierten deutschen Namen. Alle werden jetzt über einen Home-Assistant-Übersetzungsschlüssel aufgelöst, sodass eine englische Installation englische Namen zeigt und eine deutsche die Namen, die sie immer hatte. Entitäts-IDs und Unique-IDs sind unverändert.
Der Rest des Kandidaten ist Quality-Scale-Arbeit ohne sichtbare Wirkung für die Nutzer: Der Config Flow erreichte 100 % Testabdeckung und die Suite 95 %, beides wird in CI erzwungen; die optionalen Web-Clients nutzen Home Assistants eigene aiohttp-Session; und das strenge Typsystem verlor seine sieben deaktivierten Fehlercodes.
Siehe Entitäten.
v0.16.0-rc.3 — 2026-08-27
Optionale, experimentelle KNX-Bridge: Die Integration kann die
IDM-KNX-Kommunikationsobjekte — mit denselben Objektnummern, Datenpunkttypen und
Lese-/Schreibrichtungen wie IDMs ETS-Beispielprojekt — über die
Home-Assistant-knx-Integration bedienen, sodass das Weinzierl-Gateway-Modul
KNX IP BAOS 774 nicht mehr benötigt wird. KNX Secure, Tunneling und Routing
kommen aus der knx-Integration. Eine Basis-Gruppenadresse konfiguriert alle 654
Objekte, und idm_heatpump.export_knx_group_addresses liefert die Tabelle für ETS.
Experimentell: durch Unit-Tests abgedeckt, aber noch nie gegen einen realen KNX-Bus erprobt.
Siehe KNX-Bridge.
v0.15.0 — 2026-08-22
Stabiles Release, das den 0.15.0-beta.1..beta.3-Zyklus abschließt. Keine
Breaking Changes: Unique-IDs, Entitäts-IDs, Registeradressen und Schreibpfade sind
unverändert, und ein bestehender Konfigurationseintrag fragt exakt wie zuvor ab.
Geändert
- Transport vom Alpha-Pin weg:
modbus-connection==4.8.1undtmodbus[async-serial]==0.5.1(zuvor4.0.0a3/0.5.0), mit einer typisierten Fehlerhierarchie undModbusDesyncErrorfür Gateways, die mehrere Clients bedienen.
Hinzugefügt
- Web-Raumtemperatursensoren für alle Heizkreise A–G:
B61–B67(room_temperature_HK_A..G), live verifiziert auf Navigator 10 ALM 6-15. - Verbindungs-Pacing-Optionen unter „Erweiterte Modbus-Einstellungen“: Pause
zwischen Anfragen (0–0,5 s) und Pause nach dem Verbinden (0–5 s), beide
standardmäßig
0. - Automatisierte Frischeprüfung der Abhängigkeits-Pins und ein englischer Dokumentations-Vertrag, beides in CI erzwungen.
Behoben
- Invertierte NC-Digitaleingänge im Web-Supplement:
ew_evu_lock_contact,dewpoint_humidity_alarmundfailure_eheatingmelden jetzt im Normalbetrieboffund bei Alarm, Sperrung oder Störungon. - Verwaiste veraltete Sensor-Entitäten: übrig gebliebene
sensor.*_web-Einträge aus derbinary_sensor-Migration werden beim Start aus der Entitäts-Registry entfernt.
Hinweis zum Release-Gate: Dieser stabile Tag wurde ohne den siebentägigen Soak und ohne einen signierten Stable-Kandidaten-Smoke-Test geschnitten — eine bewusste Maintainer-Entscheidung, festgehalten in
docs/release-evidence/0.15.0.mdund auf Stabilität und Release-Bereitschaft.
v0.15.0-beta.3 — 2026-08-22
Beta-Kandidat 3: fügt Raumtemperatursensoren für alle Heizkreise (A–G) im optionalen
Navigator-Web-Supplement hinzu und hebt idm-heatpump-api auf 1.0.2.
Hinzugefügt
- Web-Raumtemperatursensoren für alle Heizkreise A–G: Unterstützung für
B61–B67(room_temperature_HK_A..G), live verifiziert auf Navigator 10 ALM 6-15 (B64 = 21.8 °C). idm-heatpump-api[web]: auf1.0.2angehoben.
v0.15.0-beta.2 — 2026-08-22
Beta-Kandidat 2: behebt invertierte Zustände an normally-closed-(NC-)Digitaleingängen im Navigator-Web-Supplement, räumt verwaiste Legacy-Sensor-Entitäten in Home Assistants Entitäts-Registry automatisch auf und fügt eine automatisierte Frischeprüfung der Abhängigkeits-Pins hinzu.
Behoben
- Invertierte NC-Digitaleingänge im Web-Supplement:
ew_evu_lock_contact,dewpoint_humidity_alarmundfailure_eheatingsind Normally-Closed-Kontakte und melden jetzt korrektoffim Normalbetrieb undonbei Alarm/Sperrung. - Aufräumen verwaister veralteter Sensor-Entitäten: Alte
sensor.*_web-Entitäten, die zubinary_sensormigriert wurden, werden beim Start automatisch aus Home Assistants Entitäts-Registry entfernt. - Plattformunterstützung des Abhängigkeits-Pin-Updaters: Pfade zum POSIX-Format normalisiert.
Hinzugefügt
- Englischer Dokumentations-Vertrag: durch Tests erzwungen.
- Automatisierte Abhängigkeits-Frischeprüfung: tägliche Pin-Verifizierung gegen PyPI.
v0.15.0-beta.1 — 2026-08-19
Beta-Kandidat: Der Transport-Pin wandert vom modbus-connection==4.0.0a3-Alpha auf
4.8.1, dazu zwei neue Pacing-Optionen, die standardmäßig aus sind. Weil dies die
Laufzeitabhängigkeit des direkten Modbus-Sockets ändert, geht es über den
Pre-Release-Kanal heraus — die Soak-Uhr für einen stabilen Tag startet mit diesem
Kandidaten neu. Keine Breaking Changes; Unique-IDs, Entitäts-IDs, Registeradressen
und Schreibpfade sind unverändert, und ein bestehender Konfigurationseintrag fragt
ohne jedes Zutun exakt wie zuvor ab.
Geändert
- Transport gepinnt auf
modbus-connection==4.8.1undtmodbus[async-serial]==0.5.1(zuvor4.0.0a3/0.5.0). Die neuere Bibliothek ergänzt eine typisierte Fehlerhierarchie, verbindungsweites Pacing und — seit 4.8.0 —ModbusDesyncError: Antwortet ein Partner auf eine andere Anfrage als die gesendete (typisch für ein Gateway, das mehrere Modbus-Clients gleichzeitig bedient), baut das Backend die Verbindung ab, statt die fremde Antwort zu dekodieren. Dasasync-serial-Extra ist nicht optional, obwohl diese Integration nur TCP spricht: seitmodbus-connection4.7.0 importiert das Backend-Modulserialxauf Modulebene. - Die Transportfehler-Übersetzung nutzt jetzt die typisierten Exceptions,
statt
exception_code-Nummern zu vergleichen. Der Vertrag ist unverändert: Code 2 bleibtIllegalAddressError(Bisektionslogik des Koordinators), die Codes 5/6/10/11 bleiben auf dem Retry-in-Place-Pfad, und der Markerexception_code=<N>, auf den der Koordinator matcht, wird weiterhin als Zahl dargestellt.
Hinzugefügt
- Zwei Optionen unter „Erweiterte Modbus-Einstellungen“, beide standardmäßig
0: Pause zwischen Anfragen (0–0,5 s, minimaler Abstand vom Ende einer Anfrage bis zum Beginn der nächsten) und Pause nach dem Verbinden (0–5 s, einmal je Verbindung und Wiederverbindung). Erhöhe sie für Regler oder Gateways, die „device busy“ antworten, Anfragen verwerfen oder unter einem dichten Anfragestrom in Timeout laufen. Die geführten Setup-Profile setzen die Anfragepause gleich mit: „unzuverlässiges Netzwerk“ 0,05 s, „mehrere Clients“ 0,1 s.
v0.14.1 — 2026-08-18
Patch-Release: drei Fehler rund um den Lebenszyklus optionaler Heizkreise. Keine Breaking Changes; Unique-IDs, Registeradressen und Schreibpfade sind unverändert.
Behoben
- Sensoren eines später aktivierten Kreises erschienen nie. Entitäten werden nur
gebaut, während der Konfigurationseintrag lädt. Meldete der Regler in genau
dieser einen Abfrage noch den
-1.0-Sentinel, warf der Filter „ungenutzte Sensoren verbergen“ die Nur-Lese-Register des Kreises hinaus — der Kreis bekam also seine Steuerungen, aber weder Vorlauf-, Raum- noch Solltemperatur, bis ein späteres Neuladen zufällig bessere Werte erwischte. Ein konfigurierter Kreis ist jetzt von diesem Filter ausgenommen, genauso wie schreibbare Steuerungen bereits waren. Die Verfügbarkeit folgt weiterhin dem Live-Wert. - Die Vorlaufabweichung zeigte im Leerlauf die Vorlauftemperatur. Ein Kreis, der
nichts anfordert, meldet den Sollwert
0.0. Das ist ein normaler Betriebszustand, kein deklarierter Sentinel, weshalb der SensorVorlauf - 0berechnete und die gemessene Vorlauftemperatur als 26-K-Abweichung veröffentlichte. Er ist jetzt unterdrückt (Zustandunknown), solange der Kreis nichts anfordert — wie der COP-Sensor im Stillstand. - „Unbenanntes Gerät“ in der Geräteliste. Sub-Geräte werden vor den Plattformen
erzeugt, damit sich
via_device-Verweise unabhängig von der Plattformreihenfolge auflösen; ihr Name kommt erst mit der ersten Entität. Ein Sub-Gerät, das nie einen bekam, blieb als namenloser, leerer Eintrag in der Liste. Solche werden jetzt beim Laden des Konfigurationseintrags abgehängt. Ein Sub-Gerät, dessen Entitäten der Nutzer lediglich deaktiviert hat, bleibt erhalten. - Verwaiste Entitäten abgewählter Kreise. Das Abwählen eines Kreises ließ seine Entitäten dauerhaft unverfügbar in der Registry zurück. Sie werden jetzt beim Laden des Konfigurationseintrags entfernt — eng begrenzt auf registergestützte Entitäten dieses Eintrags, deren Register auf einen unkonfigurierten Kreis zeigt. Erneutes Aktivieren des Kreises erstellt sie unter unveränderten Unique-IDs neu.
v0.14.0 — 2026-08-18
Minor-Release: ein Bedienbarkeits-Fix an der Heizkurve, die Auslegungsparameter der Kreise werden zu Experten-Entitäten, dazu ein Dashboard-Beispiel pro Kreis und ein Vertragstest, der die Ursache des 0.13.0-Fehlers in CI erwischt. Konfigurationseinträge, Entitäts-IDs, Unique-IDs, Registeradressen und Schreibpfade sind unverändert, und das getestete Abhängigkeits-Paar ist identisch mit 0.13.0.
Behoben
- Schrittweite der Heizkurve.
hc_{a..g}_heating_curveist ein FLOAT-Register und erbte daher die Standard-Schrittweite von 0,5, obwohl sein Wertebereich 0,1–3,5 ist. Häufige Einstellungen wie 0,3 oder 0,4 fielen zwischen zwei Schritte und ließen sich nicht eingeben. Die Schrittweite ist jetzt 0,1; der Bereich kommt weiterhin ausidm-heatpump-api.
Geändert
- Heizkurven-Parameter sind Experten-Entitäten.
hc_{x}_heating_curve,hc_{x}_parallel_shift,hc_{x}_setpoint_flow_constantundhc_{x}_setpoint_flow_coolingwerden auf neuen Installationen deaktiviert erzeugt, wiepower_limit_hpes bereits war. Sie definieren die Auslegung des gesamten Heizsystems und schreiben in EEPROM-Register. Bestehende Installationen sind nicht betroffen —entity_registry_enabled_defaultgreift nur, wenn eine Entität erstmals erstellt wird.
Hinzugefügt
- Dashboard-Beispiel pro Heizkreis
(
docs/examples/dashboard-idm-heating-circuit.yaml). Home Assistant sortiert eine Geräteseite alphabetisch und mischt Komfort-Sollwerte mit Auslegungsparametern; das Beispiel hält sie in getrennten Abschnitten und ergänzt einen Verlaufsgraphen aus gemessenem Vorlauf, angefordertem Vorlauf, Raum- und Außentemperatur. - Vertragstest für die Web-Werteschlüssel (
tests/test_cross_repo_contract.py). Er vergleicht die Wertnamen, dieidm-heatpump-apiliefern kann, mit den Schlüsseln, die die Integration in Entitäten überführt, und schlägt fehl, sobald die API einen Wert bietet, den die Integration still verwerfen würde — die Ursache des Kreis-B–G-Fehlers in 0.13.0.
v0.13.0 — 2026-08-18
Minor-Release mit einem Fix, der neue Entitäten auf Anlagen mit mehr als einem Heizkreis erscheinen lässt, plus deutsche Namen für die optionalen Kreise. Vollständig abwärtskompatibel: Konfigurationseinträge, Entitäts-IDs, Unique-IDs, Registeradressen und Schreibpfade sind unverändert, und das getestete Abhängigkeits-Paar ist identisch mit 0.12.0.
Behoben
- Web-Entitäten für jeden Heizkreis, nicht nur Kreis A. Die Navigator-Webwerte
für die Kreis-Pumpe (
M31–M37), den Mischer (M41–M47) und die Vorlauftemperatur (B51–B57) liefertidm-heatpump-apifür die Kreise A–G, aber die Integration griff nur die Kreis-A-Schlüssel aus einer statischen Allowlist auf. Ein später über den Options-Flow aktivierter Kreis bekam daher nie seine(Web)-Entitäten — die Werte kamen an und wurden verworfen. Web-Entitäten werden jetzt je konfiguriertem Heizkreis erstellt und erscheinen so beim Neuladen, das auf eine spätere Aktivierung folgt. - Deutsche Namen für die Heizkreise B–G. Die Namenstabelle enthielt nur
hc_a_*-Einträge, sodass jeder optionale Kreis auf den englischen Standard zurückfiel (Hc D Cooling LimitstattKühlgrenze HK D). Die Namen für B–G werden jetzt aus der Kreis-A-Tabelle abgeleitet. Entitäts-IDs und Unique-IDs sind unverändert; nur der angezeigte Name unterscheidet sich.
v0.12.0 — 2026-08-17
Minor-Release mit zwei neuen Funktionen und einem Abfrage-Fix. Vollständig abwärtskompatibel: Konfigurationseinträge, Entitäts-IDs, Unique-IDs, Registeradressen und Schreibpfade sind unverändert, und das getestete Abhängigkeits-Paar ist identisch mit 0.11.1.
Hinzugefügt
- Vorlaufabweichung je Heizkreis (
calculated_hc_{a..g}_flow_deviation): die gemessene Vorlauftemperatur eines Kreises minus den Vorlauf-Sollwert, den der Regler für denselben Kreis anfordert. Positiv heißt Übererfüllung, negativ heißt, der Kreis erreicht seinen Sollwert nicht — die Kennzahl beim Tunen einer Heizkurve. Nichts wird geschätzt; beide Operanden sind dekodierte Register eines Kreises. Inaktive (0.0) und unkonfigurierte (-1.0) Kreise meldenunavailablestatt einer bedeutungslosen Abweichung. Mit aktivierter Geräte-Hierarchie sitzt der Sensor auf seinem Heizkreis-Gerät. - Selbstdiagnose für ein zu kurzes Abfrageintervall: Wenn die Abfrage über mehrere Zyklen hintereinander mindestens 80 % ihres eigenen Intervalls beansprucht, erklärt ein Repair-Issue die Lage und nennt die drei wirksamen Gegenmittel. Genau diese Sättigung wird zu Timeouts — besonders, wenn ein zweiter Modbus-Client sich den Regler teilt.
Behoben
- Berechnete Sensoren konnten unter entitätsbewusster Abfrage ihre Quellregister
verlieren —
calculated_copfehlte in der handgepflegten Abhängigkeitsliste, sodass das Deaktivieren der beiden Leistungssensoren den COP-Sensor dauerhaft unverfügbar machte. Abhängigkeiten werden jetzt aus den Sensor-Definitionen abgeleitet.
Siehe docs/CHANGELOG.md
für den vollständigen Eintrag inklusive Test- und CI-Änderungen.
v0.11.1 — 2026-08-15
Patch-Release, der #192 behebt: Eine Laufzeit-Modellkorrektur aus dem Web-Supplement (z. B. Navigator 2.0 → Navigator 10 anhand eines NAV10-Firmware-String-Matches) aktualisierte den Live-Zustand des Koordinators, aber Home Assistants Geräte-Registry — einmalig beim Entitäts-Setup befüllt — erhielt die Korrektur nie, weil dieser Erkennungsschlüssel bewusst aus dem Neulade-Fingerprint ausgeschlossen ist, um aktive Verbindungen nicht abzureißen. Die Geräteseite zeigte weiterhin das ursprüngliche Modell, während die Diagnose das korrigierte bereits zeigte. Der Koordinator schreibt ein geändertes Modell, Firmware oder eine Seriennummer jetzt direkt in die Geräte-Registry, wann immer eine Korrektur eines davon tatsächlich ändert.
v0.11.0 — 2026-08-15
Erste stabile Version der 0.11.x-Linie, nach acht Betas
(0.11.0-beta.1 – 0.11.0-beta.8). Vollständig abwärtskompatibel: bestehende
Konfigurationseinträge, Entitäts-IDs, Registeradressen und Schreibpfade sind
unverändert. Siehe docs/CHANGELOG.md
für das vollständige konsolidierte Changelog.
Hinzugefügt
- Der direkte Modbus-TCP-Socket läuft jetzt über
modbus-connection==4.0.0a3mit demtmodbus==0.5.0-Backend und ersetzt den bisherigen direkten Pymodbus-Pfad. - Externe Feuchtigkeits-Weiterleitung und externe Speichertemperatur-Weiterleitung (GLT), neben der bestehenden Raumtemperatur-Weiterleitung je Heizkreis.
- Transport-Diagnose (Versionen von
modbus-connection/tmodbus, Socket-Eigentum, Verbindungsstatus).
Geändert
idm-heatpump-api[web]gepinnt0.9.1→1.0.1(die stabile API-1.x-Linie führt den öffentlichen Transport-Injection-Vertrag ein, auf den sich der tmodbus-Pfad dieser Integration verlässt).- Minimale Home-Assistant-Version auf
2026.8.1angehoben; Geräte-Registry-Migrationvia_device→via_device_id.
Behoben
- Acht bestätigte Fehler aus einem vollständigen Codebase-Audit (Preset-Modus-
Sicherheit der Klima-Entitäten, ein
KeyErrorinwrite_register, ein IP-Leck in der Diagnose, eine Register-Cache-Kollision, eine Lücke im Schreibfilter, Eingabeverlust beim Rekonfigurieren, ein veralteter Geräteinfo-Cache und ein Zähler-Reset bei der Zonenraum-Validierung), dazu Repair-Issue-IDs, die jetzt je Konfigurationseintrag gültig sind, und engere Exception-Behandlung im Abfrage-Koordinator.
Bekannte Einschränkung
- Eine Nacharbeit zur Modellerkennung Navigator 2.0/Terra SWM (#192) bleibt offen und wird nach dem Release untersucht.
v0.11.0-beta.3 - 2026-08-05
- Führt den direkten
modbus-connection==4.0.0a3/tmodbus==0.5.0-Socket mit der stabilenidm-heatpump-api[web]==1.0.0fort. - Flüchtige Modbus-Exception-Codes 5 (Acknowledge), 6 (Server Device Busy), 10
(Gateway Path Unavailable) und 11 (Gateway Target Failed to Respond) werden
jetzt in
ModbusExceptionübersetzt, sodass die API-Retry-Schleife sie am Ort auf derselben Verbindung wiederholt, statt eine harte Wiederverbindung zu erzwingen — passend zum API-1.0-Transportvertrag (Retry-in-Place-Pfad). Code 2 bleibt für die Bisektionslogik des KoordinatorsIllegalAddressError. - Die tote Menge
_NON_RETRYABLE_DEVICE_EXCEPTION_CODESwurde entfernt und Kommentare korrigiert, die das API-Retry-Verhalten falsch beschrieben.
v0.11.0-beta.1 — 2026-08-04
- Dies ist die erste IDM-Integrations-Beta, deren direkter Modbus-TCP-Socket über
modbus-connection==4.0.0a3mit dem separat gepinntentmodbus==0.5.0-Backend läuft.4.0.0a3ist die Version der Transportbibliothek; die Version der IDM-Integration ist0.11.0-beta.1(aktuell stabil:0.10.1). idm-heatpump-api[web]==0.9.1besitzt weiterhin das Registermodell, das Batching, die Enkodierung/Dekodierung, die Modellerkennung und die Schreibsicherheit. Seine Abhängigkeitpymodbus>=3.12.1,<4.0bleibt vorübergehend gepinnt, weil die API 0.9.1 sie noch importiert, aber pymodbus besitzt den direkten Socket nicht mehr.- Diagnose und der API-Versions-Sensor führen jetzt die Versionen von
modbus-connectionundtmodbusplus geschwärzte Transport-Fähigkeiten. - Der Adapter ist implementiert und von automatisierten Tests abgedeckt. Jeder
Konfigurationseintrag besitzt weiterhin seinen Socket und meldet
supports_shared_connection: false, weil es das zentrale Teilen über Konfigurationseinträge in Home Assistant nicht gibt; die Nur-Lese-Validierung des neuen Pfads auf echter Navigator-Hardware steht noch aus. - Flüchtige Modbus-Antworten 5 (Acknowledge), 6 (Server Device Busy), 10 (Gateway Path Unavailable) und 11 (Gateway Target Failed to Respond) verlassen die Batch-Schicht ohne Einzel-Lese-Fallback oder dauerhafte Register-Quarantäne. Vom Backend übernommene Busy-Retries werden vom Adapter nicht dupliziert.
- Diese Beta erfüllt die stabilen Hardware-Smoke- und Soak-Gates noch nicht.
v0.8.5 — 2026-07-23
Erste stabile Version der 0.8.5-Linie. Fasst die acht Beta-Kandidaten zusammen plus die finalen i18n- und Stabilitäts-Fixes aus dem Stable-Code-Review.
Hinzugefügt
- Manual Navigator model override (Auto / Navigator 10 / Navigator 2.0 / Navigator Pro), wenn die automatische Erkennung mehrdeutig ist.
- Restart-sicherer Warmwasser-Boost mit den Services
idm_heatpump.start_dhw_boostundidm_heatpump.cancel_dhw_boostsowie Start-/Cancel-Buttons. Der Boost-Zustand überlebt HA-Neustarts. - Optionale Gerät-Hierarchie (Wärmepumpe, DHW-Controller, Zonenmodule als separate Sub-Geräte).
- Entity-bewusstes Modbus-Polling, Momentan-COP-Sensor und Betriebszyklus-Analyse (Verdichter-/Abtau-Zähler).
- Navigator-Web-Binary-Sensoren für Online-/Regler-Online-Status.
Geändert
- API-Pin aktualisiert:
idm-heatpump-api[web]==0.8.4(war 0.8.1). Bringt sentinel-aware Heizkreis-Modus-Probes, robusteren Navigator-10-vs-2.0-Differenzierer für Terra SWM, automatische Kaskadenerkennung und Navigator-10-Heizkreisdaten für die Kreise B–G. - Klima- und Warmwasser-Entitäten melden ihre unterstützte Schrittweite (0,5 °C bzw. 1 °C für integer-backed Register).
- Modbus-Register-Wiki gegen API 0.8.4 regeneriert.
- Repository aufgeräumt (
.planning/, alteROADMAP.md, verwaiste Skripte und AI-Handoff-Doku entfernt). - README und HA-Core-Entwurf listen jetzt alle 8 Plattformen und das vollständige Service-Set inkl. DHW-Boost.
Behoben
- Integer-Modbus-Numbers bieten keine invaliden Nachkommastellen mehr an (#158).
- Terra SWM / Navigator 2.0 wurde fälschlich als Navigator 10 erkannt (Issue #44); die Erkennung verlangt jetzt plausible Power-Limit-Werte.
- Water-Heater-Entität ignoriert jetzt den Unused-Sentinel und zeigt nicht
mehr
-1 °Cals Live-Temperatur an. - DHW-Boost nutzt Übersetzungsschlüssel statt harter deutscher Strings;
die Multi-Device-Service-ValidationError verwendet den bestehenden Schlüssel
multiple_entries_select_entry. - DHW-Boost:
DhwBoostErrorwird im Timeout-/Target-Restore-Pfad sauber abgefangen statt als unhandled Task-Exception durchzuschlagen.
Bekannte Einschränkung
- Home Assistants experimentelle
modbus_connectionwird noch nicht verwendet. Der vorbereitete Transport-Vertrag bleibt bewusst inaktiv, bis die offizielle HA-Schnittstelle final ist.
v0.8.5-beta.8 — 2026-07-23
Geändert
- Neue Beta-Kandidatenversion
0.8.5-beta.8: Aktualisiert Manifest, Release-Evidence, Changelog und Wiki-Verweise auf den aktuellen Beta-Stand. Laufzeitcode, Entitäten, Register, Schreibpfade und der getesteteidm-heatpump-api[web]==0.8.4-Pin bleiben unverändert.
v0.8.5-beta.7 — 2026-07-22
Behoben
- Endgültiges Navigator-Modell wird mit der API synchronisiert: Manuelle Modell-Overrides und eindeutige spätere Web-Korrekturen gelten nun auch für die modellabhängigen Register- und Schreibprüfungen der API.
- Zukünftiger Modbus-Transportvertrag korrigiert: Der weiterhin inaktive Vertrag unterscheidet FC04/Input Register und FC03/Holding Register und begrenzt Slave-IDs auf 1–247. Der produktive Transport bleibt unverändert.
v0.8.5-beta.6 — 2026-07-22
Behoben
- Ganzzahlige Modbus-Werte verwenden jetzt Schrittweite 1: Heiz- und Kühlgrenzen der Heizkreise A–G sowie alle weiteren schreibbaren Integer- Register bieten keine ungültigen 0,5-Schritte mehr an.
- Climate und Warmwasser melden die unterstützte Zielwert-Schrittweite: Heizkreis- und Raum-Sollwerte verwenden 0,5 °C, der ganzzahlige Warmwasser- Sollwert 1 °C.
v0.8.5-beta.5 — 2026-07-22
Geändert
- Pin auf
idm-heatpump-api[web]==0.8.4: Aktualisiert die API-Bibliothek auf v0.8.4 für verbesserte Modbus-Modellerkennung (Erkennung aktiver Heizkreise über Betriebsmodus-Register, verlässliche Abfrage für Navigator 10 vs. 2.0 bei Terra SWM Firmware und Kaskaden-Erkennung).
v0.8.4 — 2026-07-19
Geändert
- Zonenmodul-Raumrelais ist jetzt ein
binary_sensor: Der Relaisstatus pro Raum (zm{z}_room{r}_relay) wurde bisher als numerischer Sensor mit0/1angezeigt. Er läuft jetzt auf derbinary_sensor-Plattform und zeigton/off(Device ClassRunning, Toggle-Icon). Erfordert das mitgelieferteidm-heatpump-api[web]==0.8.1, in dem das Relay-Register alsbinary=Truemarkiert ist. Schließt #128. - Pin auf
idm-heatpump-api[web]==0.8.1.
v0.8.3 — 2026-07-16
Geändert
- Pin auf
idm-heatpump-api[web]==0.8.0: Wirkt zwei Verbesserungen der Bibliothek automatisch aus (keine Code-Änderung an der Integration):detect_modelerkennt nicht-kontinuierliche Heizkreise (z. B. nur HK A und HK D installiert) zusätzlich über die Active-Mode-Register 1498–1504.- Der Navigator-10-Web-Client liefert Vorlauf, Pumpe und Mischer der Heizkreise B–G (vorher nur HK A und HK C).
- Enthält den IPv4/IPv6-Web-Anmeldungsfix für den Navigator 2.0 aus API 0.7.7.
v0.8.2 — 2026-07-12
⚠️ Wichtige Hinweise zum Update (Breaking Changes)
Das direkte Update von v0.8.1 auf v0.8.2 enthält keine zusätzlichen Breaking
Changes. Bei einem Update von v0.7.4 oder älter gelten weiterhin die
v0.8-Änderungen: lokaler Webzugriff mit PIN, die fest gepinnte API 0.7.6, neue
climate- und water_heater-Plattformen, die entfernte Entität
ext_demand_brine_pump_m16, fehlertolerantes Polling und IP-unabhängige Unique
IDs. Die vollständigen Hinweise stehen im Changelog.
Korrekturen
- Benennt native Regler eindeutig als Heizkreis A, Zone 1 Raum 1 und Warmwasser, statt den Gerätenamen für mehrere Entitäten anzuzeigen.
- Zeigt für Warmwasser den passenden Modus Wärmepumpe statt des irreführenden Status Hochleistung.
- Vervollständigt die kanonischen Entity-Texte und sichert das Naming mit Tests ab.
v0.8.1-beta.29 — 2026-07-11
- Merkt sich das erfolgreiche lokale Web-Protokoll von Navigator 2.0 oder Navigator 10/Pro und wiederholt während der normalen Laufzeit-Wiederherstellung nur dieses Protokoll.
- Probiert während Setup, Rekonfiguration und Repair beide unterstützten
Web-Protokolle und behandelt den lokalen Netzwerkcode
0als deaktiviert. - Schwärzt Web-Host, Web-PIN und detaillierte Web-Verbindungsstrings aus der heruntergeladenen Diagnose.
- Ergänzt GLT-Monitor-Diagnose, Anleitung zu schreibbaren Steuerungen, exakte PV-/Batterie-Datentypen und abgesicherte Beispiele für PV-Überschuss und externe Warmwasseranforderungen.
- Behält
idm-heatpump-api[web]==0.7.6; dieses Release braucht eine neue Integrationsversion, kein neues API-Paket. - Konsolidiert verifizierte Randbedingungen und die verbleibende Verifizierungsarbeit in der Projektwissensbasis und im Wiki.
v0.8.1-beta.28 — 2026-07-11
- Pinnt das veröffentlichte
idm-heatpump-api-Stabilitäts-Release 0.7.6. - Leitet Transportfehler weiter, ohne gültige Register zu deaktivieren.
- Setzt bewiesene Raummodus-Batch-Abweichungen unter Quarantäne und vermeidet spätere Doppellesevorgänge.
- Erkennt den verifizierten Kaskade-nicht-verfügbar-Sentinel.
- Stellt explizit bestätigte Schreibvorgänge auf benutzerdefinierte Register mit numerischer Validierung wieder her.
Unveröffentlichtes Stabilitäts-Audit — 2026-07-10
- Transport-/Antwortausfälle zählen nicht mehr als dauerhafte Ausfälle einzelner Register.
- Die Zonenraum-Modusvalidierung isoliert nicht unterstützte/ungültige Werte und vermeidet wiederholte Doppellesevorgänge nach der Quarantäne.
- Die Kaskadenfähigkeit des Navigator 10 erkennt den hardwareseitig bestätigten
255-Nicht-verfügbar-Sentinel. - Erweiterte Raw-Schreibvorgänge behalten numerische/Datentyp-Validierung und erfordern eine explizite Risiko-Bestätigung.
- Messbare Stable-Release-Gates hinzugefügt.
v0.8.1-beta.27 — 2026-07-10
- Hat die hardwareverifizierte API 0.7.5 gepinnt.
- Register-spezifische Behandlung von Nicht-verfügbar-Sentinelwerten hinzugefügt.
- Hat 170 Definitionen über 45 Gruppen in 309 Nur-Lese-Batch-/Einzelprüfungen verglichen, ohne einen Rohwert-Mismatch.
Historische Zusammenfassung
v0.4.6 — 2026-05-31
- 169+ Entitäten (109 Sensoren, 8 Binärsensoren, 44 Zahl-Entitäten, 4 Auswahl-Entitäten, 4 Schalter-Entitäten)
- Vollständige Integration der
idm_heatpump-Bibliothek (Option B abgeschlossen) - Binärsensoren für Verdichter, Störalarme, Heiz-/Kühl-/Warmwasser-Anforderung
- Solar-, ISC-, PV- und Kaskaden-Register vollständig enthalten
- Deutsche Entitätsnamen durchgängig
- Schutz des Nur-Schreib-Registers (
error_acknowledge)
v0.4.4 — 2026-05-31
- Vollständige Migration auf die
idm-heatpump-Bibliothek als Kern - Navigator-10-Unterstützung: Wärmesenken-Sensoren, Durchfluss, Grundwassertemperaturen
- Booster-A/B-Diagnose (16 neue Sensoren)
v0.4.0 — 2026-05-30
- Große architektonische Änderung
- Navigator-10-Unterstützung hinzugefügt
- Erste große bibliotheksgestützte dynamische Registermap
v0.2.0 — 2026-03-22
- Erstveröffentlichung
- Grundlegende Modbus-TCP-Integration
- Systemsensoren, Heizkreise, Warmwasser-Steuerung