Ein Abend ist mir dafür draufgegangen. Ich habe das Wohnzimmer-Thermostat in Home Assistant auf 24 Grad hochgezogen, die Climate-Karte zeigte für etwa eine Sekunde 24 — und fiel dann klammheimlich auf 23 zurück. Nochmal gesetzt. Dasselbe. Die Karte tut so, als hätte ich nie etwas angefasst. Mein erster Reflex war der übliche: irgendetwas ist in der KNX-Integration kaputt, oder der Bus verschluckt den Schreibvorgang.
Es war nicht kaputt. Es tat genau das, wofür KNX-Thermostate gebaut sind, und Home Assistants Climate-Karte hat einfach keine gute Möglichkeit, dir das zu sagen. Sobald ich die fünf Voreinstellungen darunter verstanden hatte, hörte die Beschwerde die manuelle Steuerung funktioniert nicht auf, ein Bug zu sein, und wurde zu einer Design-Entscheidung, mit der ich arbeiten musste.
Die fünf Modi, die sich unter einer Karte verstecken
Jedes KNX-Thermostat im Haus spricht das Standard-HVAC-Betriebsmodus-Objekt (DPT 20.102). Dieses Objekt hat genau fünf Zustände, und Home Assistant zeigt sie als Voreinstellungen auf der Climate-Entität: Standby, Building Protection (Frostschutz), Economy (die Nachtabsenkung), Comfort (Tag) und Auto. Dieses Dropdown auf der Karte ist keine Home-Assistant-Spielerei — es ist ein direktes Fenster in eine Zahl, die das physische Thermostat ohnehin schon selbst führt.
Der entscheidende Punkt, und der, der mich den Abend gekostet hat: von diesen fünf lässt dich nur Auto eine Zieltemperatur frei aus Home Assistant setzen. Comfort und Economy haben keinen Sollwert, den du schreibst — sie haben einen Sollwert, den das Gerät bereits hält. In meinem Setup liegt Comfort bei etwa 23 Grad und Economy ein paar Grad darunter, irgendwo zwischen 19 und 20. Building Protection hält den Raum bei rund 7 Grad, damit ein Heizkörper nie einfriert. Diese Werte liegen im Speicher des Thermostats, nicht in Home Assistant.
Warum die Temperatur zurückspringt
Hier also die tatsächliche Abfolge, wenn du gegen ein Comfort-Thermostat von der Karte aus kämpfst. Das Thermostat ist im Comfort-Modus und hält seine geräteseitig fixierten 23. Du schreibst 24. Die Karte zeigt optimistisch 24, weil der Schreibvorgang auf dem Bus rausging. Einen Herzschlag später veröffentlicht das Thermostat seinen gespeicherten Comfort-Sollwert erneut auf der Rückmelde-Adresse, Home Assistant liest diesen Wert, und die Karte fällt auf 23 zurück. Du hast den Schreibvorgang nicht an einen wackligen Bus verloren — du wurdest vom Gerät überstimmt, das seinen gespeicherten Sollwert für maßgeblich hält, solange es im Comfort-Modus ist.
# Warum eine manuelle Änderung in Comfort/Economy 'zurückspringt':
# 1. preset = Comfort (geraeteseitig fix ~23C)
# 2. HA schreibt 24C -> Karte zeigt kurz 24C
# 3. Thermostat veroeffentlicht seinen gespeicherten
# Comfort-Sollwert auf der Sollwert-Rueckmelde-Adresse
# 4. HA liest ihn zurueck -> Karte faellt auf 23C
# Loesung: erst auf AUTO schalten, DANN Temp 18-25C setzen.Die Lösung ist, sobald man sie sieht, fast ärgerlich einfach: erst auf Auto umschalten, dann die gewünschte Temperatur setzen. In Auto gehört der Sollwert dir und bleibt stehen. Comfort und Economy sind per Design schreibgeschützt — Home Assistant kann lesen, was sie halten, es kann es nur nicht überschreiben.
Was die fünf Adress-Rollen wirklich tun
Das ergibt deutlich mehr Sinn, sobald man eine dieser Entitäten verdrahtet hat. Jede KNX-Climate-Entität in meiner knx.yaml ist mit fünf Gruppenadress-Rollen konfiguriert, und sie bilden das obige Verhalten sauber ab: Ist-Temperatur (nur lesen), Zieltemperatur (der Sollwert-Schreibvorgang), Zieltemperatur-State (die Rückmeldung, mit der dich das Gerät überstimmt), Betriebsmodus (der Schreibvorgang, der die Voreinstellung ändert) und Betriebsmodus-State (die Rückmeldung, in welchem Modus das Gerät tatsächlich ist). Min- und Max-Temperatur begrenzen auf 18,0 und 25,0, und die Schrittweite ist 0,5, sodass die Karte in Halb-Grad-Schritten läuft.
climate:
- name: "Thermostat Office"
temperature_address: "2/0/14" # Ist-Temp (lesen)
target_temperature_address: "2/1/14" # Comfort-Sollwert (schreiben)
target_temperature_state_address: "2/2/14" # Sollwert-Rueckmeldung
operation_mode_address: "2/3/14" # HVAC-Modus (schreiben)
operation_mode_state_address: "2/4/14" # HVAC-Modus (lesen)
temperature_step: 0.5
min_temp: 18.0
max_temp: 25.0Eine Eigenheit, die man kennen sollte: bei ein paar meiner Thermostate sind Modus-Schreiben und Modus-State getrennte Gruppenadressen, bei einem davon lege ich aber bewusst beide auf dieselbe Adresse, weil genau dieses Gerät seinen eigenen Modus auf demselben Objekt zurückmeldet. Beides funktioniert — man muss nur dem Verhalten des konkreten Geräts auf dem Bus folgen. Die Adresse oben habe ich absichtlich zu einem einzigen Beispiel abstrahiert; die echte Pro-Raum-Tabelle ist nichts, das man veröffentlichen will.
Wie die Automationen die Modi wirklich nutzen
Sobald die Modi sitzen, schreiben sich die Automationen quasi von selbst. Ich habe rund ein Dutzend KNX-Climate-Zonen im Haus an einem einzigen KNX/IP-Gateway, und der Alltagskomfort kommt aus drei Mustern, die alle nur eine Voreinstellung setzen.
Das erste ist der Tagesablauf. Eine Tagmodus-Automation läuft um 06:00 und setzt jedes Thermostat auf Comfort. Eine Abend-Automation läuft um 21:00 und senkt alle für die Nachtabsenkung auf Economy. Die Nachtabsenkung habe ich zusätzlich an ein input_boolean auf dem Dashboard gehängt, damit ich das ganze Haus von Hand in den Nachtmodus kippen kann, ohne auf 21:00 zu warten — praktisch, wenn alle früh im Bett sind.
Das zweite ist die Fensterlogik, und das ist mein Lieblingseinsatz von Building Protection. Wenn ein Fenster geöffnet wird, wartet eine Automation 5 Sekunden und schaltet dann das Thermostat dieses Raums auf Building Protection, damit der Heizkörper aufhört, Wärme in einen offenen Raum zu pumpen. Wird das Fenster geschlossen, geht es nach derselben 5-Sekunden-Verzögerung zurück auf Comfort. Davon gibt es mehr als ein Dutzend, eine pro Fenster-Raum-Paar. Sie fassen nie eine Temperatur an — sie ändern immer nur die Voreinstellung — und genau deshalb sind sie zuverlässig.
Das dritte ist das langweilige, das mir einen kalten Morgen erspart hat. Nach einem Neustart von Home Assistant oder des Busses kommen manche Thermostate auf Standby zurück, weil sie kurz ihre Verbindung verloren haben. Standby heißt, der Raum hört still auf zu heizen, und du merkst es erst, wenn es kalt ist. Also setzt eine Startup-Initialisierungs-Automation beim Boot die richtigen Voreinstellungen neu, damit ein Reboot um 02:00 nicht zu einem kalten Wohnzimmer um 07:00 wird. Wer KNX-Climate über Home Assistant fährt, schreibt diese Automation, bevor er sie braucht.
Der ehrliche Trade-off
Hier der Teil, den die Climate-Karte dir nicht sagen kann, und der, den ein früheres Ich hätte wissen sollen. Das Gefühl die manuelle Steuerung funktioniert nicht ist kein Versagen von Home Assistant und kein Versagen von KNX. Es ist das KNX-HVAC-Modus-Modell, das durch eine generische Climate-Karte durchsickert, die für Thermostate mit einem einzigen freien Sollwert gebaut wurde. Comfort und Economy sind per Design gerätefixiert; Auto ist der Modus mit freiem Sollwert. Die Karte zeigt dir alles auf einmal und vertraut darauf, dass du weißt, in welchem Modus du gerade bist.
Das lässt eine echte Wahl, und ich schwanke dabei hin und her. Du kannst das Schema aus Zeitplan plus Fensterlogik behalten, das dir automatische Nachtabsenkung und Frostschutz bei offenem Fenster im Grunde geschenkt gibt — aber dann verlierst du die Möglichkeit, einfach ein Thermostat zu greifen und zu überschreiben, weil Comfort deine Änderung zurückspringen lässt. Oder du fährst jede Zone immer in Auto, was dir volle manuelle Kontrolle von der Karte gibt — aber dann verlierst du die automatische Absenkung und den fenstergesteuerten Frostschutz, weil nichts mehr für dich die Voreinstellungen umschaltet. Es gibt keinen sauberen Weg, beides zu haben: das automatische Verhalten und das manuelle Überschreiben streiten sich um denselben Sollwert.
Ich behalte die automatische Variante, weil sich das Haus an 360 Tagen im Jahr vernünftig selbst heizt und ich nur an der Handvoll Abende dagegen kämpfe, an denen ich es wärmer als Comfort will. An diesen Abenden kippe ich den Raum jetzt einfach erst auf Auto — eine Ein-Sekunden-Gewohnheit, die früher ein verlorener Abend war. Wer KNX-Climate in Home Assistant verdrahtet, dem sei dieser Teil der Doku ans Herz gelegt, den ich zuerst hätte lesen sollen: es geht nur darum, welche Voreinstellung den Sollwert besitzt. Der Rest davon, wie dieses Haus auf Home Assistant läuft — von der Docker-auf-Azure-Installation aufwärts — steht auf genau dieser Art kleiner, schwer erkämpfter Details.



