openHAB und meine Heizkörper

Diesen Beitrag schrieb ich 8 Jahre und 11 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Eine ganze Weile hatte ich nun ein Brett vorm Kopf: schon seit längerem besitze ich einige Heizkörperthermostate (HH-CC-RT-DN) und versuche nach und nach, hierfür ein Regelwerk zu erstellen. Doch nun ist endlich der Groschen gerutscht, und ich stelle euch hier das Grundgerüst meiner Heizungsschaltung vor. So ist es problemlos möglich, die Heizkörper im Nachtbetrieb herunter zu regeln; eine Regel im wahrsten Sinne des Wortes, da man die Einstellungen von Uhrzeiten abhängig machen kann. Kniffliger wird es schon, wenn die Heizkörper in Abhängigkeit von Anwesenheit geschaltet werden sollen. Oder die Badezimmerheizung, die über den Tag heruntergeregelt ist, im Falle verschmierter Kinder aber SOS-mäßig per Tastendruck aufgeheizt werden soll.

Ich habe das Grundgerüst am Beispiel meiner Badezimmerheizung durchexerziert und ein dickes großes Konfig-File erstellt (und ausführlich kommentiert), mit dessen Hilfe ich alle verfügbaren Werte abgreife und Aktionen in Form von Switches verfügbar mache; darüberhinaus lege ich mir hier der Übersichtlichkeit halber Gruppen an, in die ich meine Items sortiere.

Dann erstelle ich mir eine Sitemap und stelle meine Items im Webinterface dar. Ich kann die Temperatur entweder von Hand einstellen – über die kleinen Pfeiltasten in 0,5°C-Schritten – oder ich nutze die Presets Baden (entspricht Boost), Eco oder Comfort: über die CCU2 definierte ich, dass die Badezimmerheizung im Eco-Mode auf 17,0°C herunterreguliert wird, im Comfort-Mode hingegen auf 24,0°C herauf. Der Betriebsmodus des Heizkörperthermostats bleibt bei Umschaltung auf AUTO-MODE – was sich lediglich ändert, ist der Sollwert der Temperatur. Tatsächlich fand ich diesen Aspekt nicht gerade selbsterklärend und brauchte eine ganze Weile, bis ich hier durchgeblickt hatte. Für die Boost-Funktion habe ich festgelegt, dass die Ventilöffnung für 20 Minuten auf 99% gesetzt wird. Dieses Setup ist also unabhängig von der Umgebungstemperatur, von der gerade eingestellten Temperatur,… – es ist Geschmackssache und sehr abhängig von den Gegebenheiten, das ist klar. Nach Ablauf der 20 Minuten fällt der Thermostat wieder in den AUTO-MODE (ebenfalls mit den über die CCU2 eingestellten Werten).

Abschließend erstellte ich dann meine heizung.rules, die in der jetzigen Version wesentlich übersichtlicher ist als meine ersten Anläufe ;) Sie setzt alle Kontroll-Switches für den Heizkörper auf OFF (postUpdate ist openHAB-intern!) und wertet dann aus, welcher der vier Buttons gedrückt wurde – nur dieser Modus wird dann auf ON geschaltet (sendCommand wird an die CCU2 durchgereicht!). So vermeide ich es, dass mehrere Switches auf ON stehen und sich irgendwann gegenseitig verwirren.

Allerdings habe ich keine Möglichkeit gefunden, auf die Eco- und die Comfort-Temperatur wirklich zuzugreifen – die Thermostate stellen hierfür offenbar keine Datenpunkte zur Verfügung. Und noch ein Aspekt ist bei diesem Setup nicht berücksichtigt: stelle ich meinen Heizkörper per openHAB auf Boost und anschließend im Webfrontend der CCU2 auf Comfort, dann schaltet sich die Sollwert-Temperatur auf 24°C (was okay ist), der Modus schaltet sich auf AUTO-MODE und wird im Webinterface auch so dargestellt (was okay ist), der Switch ELW_Bad_STATE_BOOST bleibt jedoch auf ON stehen – was nicht okay ist.

osgi> openhab status ELW_Bad_STATE_BOOST
ON

Derzeit fällt mir nur eine Lösung ein, mit diesem Problem umzugehen: den Status eines jeden Heizkörpers als Variable innerhalb der CCU2 festzuhalten und mit dem ReloadTrigger zu arbeiten. Oder sehe ich gerade den Wald vor lauter Bäumen nicht? Mag mir wer auf die Sprünge helfen?

Umschalten auf Comfort

2015-04-13 14:05:43.221 [INFO ] [runtime.busevents             ] - ELW_Bad_Scene_Heating received command 3
2015-04-13 14:05:43.721 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_AUTO
2015-04-13 14:05:43.730 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_AUTO state updated to OFF
2015-04-13 14:05:43.735 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_BOOST
2015-04-13 14:05:43.736 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_BOOST state updated to OFF
2015-04-13 14:05:43.736 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_ECO
2015-04-13 14:05:43.737 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_ECO state updated to OFF
2015-04-13 14:05:43.737 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_COMFORT
2015-04-13 14:05:43.741 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_COMFORT state updated to OFF
2015-04-13 14:05:43.771 [INFO ] [hab.model.script.Heating rules] - Entering comfort mode.
2015-04-13 14:05:43.803 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_COMFORT received command ON
2015-04-13 14:05:44.409 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_MODE state updated to AUTO-MODE
2015-04-13 14:05:44.422 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_FAULT_REPORTING state updated to NO_FAULT
2015-04-13 14:05:44.422 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_BOOST_STATE state updated to 0
2015-04-13 14:05:44.423 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_SET_TEMPERATURE state updated to 24.00

Umschalten auf Normal

2015-04-13 14:58:08.175 [INFO ] [runtime.busevents             ] - ELW_Bad_Scene_Heating received command 0
2015-04-13 14:58:08.177 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_AUTO
2015-04-13 14:58:08.178 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_AUTO state updated to OFF
2015-04-13 14:58:08.179 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_BOOST
2015-04-13 14:58:08.180 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_BOOST state updated to OFF
2015-04-13 14:58:08.180 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_ECO
2015-04-13 14:58:08.180 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_ECO state updated to OFF
2015-04-13 14:58:08.181 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_COMFORT
2015-04-13 14:58:08.181 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_COMFORT state updated to OFF
2015-04-13 14:58:08.190 [INFO ] [hab.model.script.Heating rules] - Entering normal mode.
2015-04-13 14:58:08.208 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_AUTO received command ON
2015-04-13 14:58:08.797 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_MODE state updated to AUTO-MODE
2015-04-13 14:58:08.797 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_FAULT_REPORTING state updated to NO_FAULT
2015-04-13 14:58:08.798 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_BOOST_STATE state updated to 0
2015-04-13 14:58:08.798 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_SET_TEMPERATURE state updated to 17.00

Umschalten auf Baden

2015-04-13 15:39:08.461 [INFO ] [runtime.busevents             ] - ELW_Bad_Scene_Heating received command 1
2015-04-13 15:39:08.520 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_AUTO
2015-04-13 15:39:08.524 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_AUTO state updated to OFF
2015-04-13 15:39:08.527 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_BOOST
2015-04-13 15:39:08.528 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_BOOST state updated to OFF
2015-04-13 15:39:08.528 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_ECO
2015-04-13 15:39:08.529 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_ECO state updated to OFF
2015-04-13 15:39:08.529 [INFO ] [.model.script.Heating rules - ] - ELW_Bad_STATE_COMFORT
2015-04-13 15:39:08.530 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_COMFORT state updated to OFF
2015-04-13 15:39:08.539 [INFO ] [hab.model.script.Heating rules] - Entering bathing mode.
2015-04-13 15:39:08.550 [INFO ] [runtime.busevents             ] - ELW_Bad_STATE_BOOST received command ON
2015-04-13 15:39:09.115 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_MODE state updated to BOOST-MODE
2015-04-13 15:39:09.115 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_FAULT_REPORTING state updated to NO_FAULT
2015-04-13 15:39:09.115 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_BOOST_STATE state updated to 19
2015-04-13 15:39:09.137 [INFO ] [runtime.busevents             ] - ELW_Bad_Heizung_SET_TEMPERATURE state updated to 17.00
Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „openHAB und meine Heizkörper“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.