FHEM Heizungssteuerung mit HomeMatic
Seiteninhalte
In diesem Artikel realisieren wir eine FHEM Heizungssteuerung mit Hilfe des HomeMatic Heizkörperthermostats HM-CC-RT-DN. Er ist auf allen gängigen Heizkörpern installierbar und eignet sich daher ebenfalls hervorragend, um eine Heizungssteuerung nachzurüsten.
Es wird dabei lediglich der alte Heizungsregler durch dieses Gerät ersetzt. Für ein Gewindemaß von M30 x 1,5mm (z.B. Heimeier, Junkers, Oventrop, uvm.) passt der Thermostat von Haus aus, für Danfoss liegen zudem noch 3 Adapter bei. Die Montage ist in der beigelegten Anleitung sehr gut und bebildert erklärt, so dass dies kein Problem darstellen sollte.
Wir kümmern uns in diesem Artikel daher primär um die weitere Einrichtung.
Voraussetzung
Einkaufsliste
Name | Amazon |
HomeMatic Heizkörper Thermostat HM-CC-RT-DN | zum Produkt bei Amazon |
HomeMatic Heizkörper Thermostat HM-CC-RT-DN (3er Set) | zum Produkt bei Amazon |
Pairing des HomeMatic Heizkörperthermostats mit FHEM
Öffnet als erstes den „FHEM Event-Monitor“ (ganz unten links auf der Webseite) in einem 2. Tab, so dass Ihr den folgenden Vorgang beobachten könnt.
Wie bereits in meinem letzten Artikel unter Pairing der HomeMatic Geräte mit FHEM beschrieben, müssen wir unsere VCCU nun in den Pairing-Modus bringen:
1 | set VCCU hmPairForSec 120 |
Innerhalb der 120 Sekunden (Zeit frei wählbar) müsst Ihr nun die mittlere Taste von Eurem „HomeMatic HM-CC-RT-DN“ gedrückt halten, bis der 30s-Countdown im Display erscheint, dann loslassen. Wenn alles glatt verläuft springt der Heizkörperthermostat sehr schnell zurück auf den Hauptbildschirm. Dies ist ein Zeichen, dass das Pairing bereits abgeschlossen ist.
Im „Event Monitor“ sollte es zum Ende hin in etwa so aussehen, „CMDs_done“ ist ein Zeichen dafür, dass die Kommunikation in beide Richtungen erfolgreich war:
1 2 3 4 5 6 7 | 2016-12-10 16:03:11 CUL_HM ActionDetector alive:1 dead:0 unkn:2 off:0 2016-12-10 16:03:11 CUL_HM ActionDetector status_HM_******: alive 2016-12-10 16:03:11 CUL_HM HM_****** Activity: alive 2016-12-10 16:03:11 CUL_HM HM_****** D-firmware: 1.3 2016-12-10 16:03:11 CUL_HM HM_****** D-serialNr: LEQ******* 2016-12-10 16:03:11 CUL_HM HM_****** CMDs_pending 2016-12-10 16:03:12 CUL_HM HM_****** CMDs_done |
Umbenennen des neu angelegten Device inkl. Subdevices
Wie Ihr im „Event Monitor“ bereits erkennen könnt, hat FHEM eine Reihe von Subdevices für die verschiedenen Kanäle angelegt. Wir wollen nun alle Devices so umbenennen, dass wir sie später einfach zuordnen können. Bei mir kommt hier das Raumkürzel „sz“ für Schlafzimmer, gefolgt von dem Wort „heizung“ zum Einsatz, getrennt mit einem Unterstrich. Um alle Subdevices mit umzubenennen, gibt es mittlerweile glücklicherweise eine integrierte Funktion:
1 | set HM_****** deviceRename sz_heizung |
Im Anschluss folgt die Zuordnung des Subdevice „Clima“ in den entsprechenden Raum „Schlafzimmer“ und zusätzlich in einen Raum mit dem Namen „Heizung“. In letzteren werde ich auch alle weiteren Heizungen platzieren, um sie auf einer Seite im Überblick zu haben.
Für die bessere Übersicht werden sie ebenfalls unter dem Namen „Heizung“ gruppiert und mit dem richtigen Icon versorgt:
1 2 3 | attr sz_heizung_Clima room Schlafzimmer,Heizung attr sz_heizung_Clima group Heizung attr sz_heizung_Clima icon sani_heating |
Die verschiedenen Kanäle des Heizkörperthermostats
Wie Ihr zuvor schon gelesen habt, wurde bei dem Pairing eine Reihe von Subdevices angelegt. Hinter jedem Device steckt ein eigener Kanal des Heizkörperthermostats, der für unterschiedliche Dinge genutzt werden kann.
Hier eine kurze Übersicht zu den angelegten Kanälen
01 _Weather | Einspeisung der gemessenen IST-Temperatur. Normalerweise wird die Temperatur direkt am Gerät gemessen, was nicht immer optimal ist. Wenn es einen weiteren Messpunkt im Raum gibt, kann dieser mit diesem Kanal gepairt werden. |
02 _Climate | Mit diesem Kanal kann ein HomeMatic Funk-Wandthermostat gepaart werden. |
03 _WindowRec | Mit diesem Kanal kann ein HomeMatic Fensterkontakt gepaart werden. |
04 _Clima | Kanal für das Einstellen der SOLL-Temperatur oder dem konfigurieren von Temperaturlisten. Er wird in diesem Artikel hauptsächlich zum Einsatz kommen. |
05 _ClimaTeam | Mit diesem Kanal können mehrere Funk-Heizkörperthermostate zu einem Team zusammengefasst werden. Das Einstellen einer Temperatur an einem der Teammitglieder verändert auch automatisch die Temperatur an dem 2. Teammitglied. |
06 _remote | Dient zur Kopplung einer Fernbedienung. Mit diesem Kanal habe ich mich allerdings noch nicht weiter auseinander gesetzt. |
Die Modi des HomeMatic Heizkörperthermostats
Mit der linken Taste kann am Heizkörperthermostat der Modus zwischen den folgenden 3 gewechselt werden:
- Auto: Das Device arbeitet das gespeicherte Wochenprogramm ab, mit dem wir uns im nächsten Abschnitt ausgiebig auseinandersetzen werden.
- Manuell: Das Wochenprogramm findet keine Anwendung, stattdessen wird die Temperatur manuell eingestellt.
- Urlaub/Party: Hier kann z.B. ein Start- und Enddatum für eine Abwesenheit mit einer fixen Temperatur vergeben werden. Nach Erreichen des Enddatums wechselt das Gerät zurück in den Auto-Modus.
Weitere Informationen hierzu stehen im FHEM-Wiki.
Temperaturlisten erstellen
Um eine Temperaturliste erstellen zu können verwenden wir das FHEM-Modul „HMInfo“, welches folgendermaßen angelegt wird, wenn Ihr es noch nicht habt:
1 2 | define hm HMinfo attr hm room System,CUL_HM |
Das Modul werde ich in einem späteren Beitrag sicher noch einmal genauer beleuchten. In diesem Artikel nutzen wir es, um unsere initiale Temperaturliste anzulegen. Vorher legen wir noch den Unterordner „FHEM“ als „configDir“ fest:
1 2 | attr hm configDir FHEM set hm tempList save |
Die Wahl des „configDir“ bewirkt, dass die neue Datei „tempList.cfg“ im Ordner „/opt/fhem/FHEM“ angelegt wird. Der Standardordner wäre „/opt/fhem“ gewesen. Vorteil des Ganzen ist, dass Ihr die Dateien im Unterordner „FHEM“ ganz einfach über den Punkt „Edit files“ im Webinterface editieren könnt. Wer auf der Konsole arbeitet ist hier frei in der Ordnerwahl.
Der Aufbau der Temperaturliste
1 2 3 4 5 6 7 8 | entities:sz_heizung_Clima R_0_tempListSat>06:00 17.0 22:00 21.0 24:00 17.0 R_1_tempListSun>06:00 17.0 22:00 21.0 24:00 17.0 R_2_tempListMon>06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0 R_3_tempListTue>06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0 R_4_tempListWed>06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0 R_5_tempListThu>06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0 R_6_tempListFri>06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0 |
Das Lesen einer Temperaturliste ist zu Anfang etwas gewöhnungsbedürftig, eigentlich aber ganz einfach. Am Anfang stehen erst einmal die Heizungen, für die diese Liste genutzt werden soll:
1 | entities:sz_heizung_Clima |
Mehrere Heizungen werden mit einem Komma getrennt folgendermaßen angegeben:
1 | entities:sz_heizung_Clima,wz_heizung_Clima |
Schnappen wir uns nun eine Beispielzeile, die Wochentage sind denke ich selbsterklärend:
R_2_tempListMon>06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
00:00-06:00 | 17.0 °C |
06:00-09:00 | 21.0 °C |
09:00-17:00 | 17.0 °C |
17:00-22:00 | 21.0 °C |
22:00-24:00 | 17.0 °C |
In einer Zeile wird also immer die Endzeit für eine Temperatur angegeben, was für einen Menschen erst einmal wenig intuitiv erscheint. Der Tag muss immer mit einer Endzeit von „24:00“ abschließen. Genauso startet der Tag auch immer um 00:00, was aber nicht mit angegeben wird. Es wird also immer die erste Temperatur des jeweiligen Tages gesetzt.
Wichtig zu erwähnen ist ebenfalls, dass die Uhrzeiten auf halbe Stunden beschränkt sind, andere Einträge sind ungültig!
Eine meiner Listen sieht z.B. so aus:
1 2 3 4 5 6 7 8 | entities:sz_heizung_Clima,wz_heizung_Clima R_0_tempListSat> 09:00 18.0 24:00 21.0 R_1_tempListSun> 09:00 18.0 24:00 21.0 R_2_tempListMon> 16:30 18.0 23:00 21.0 24:00 18.0 R_3_tempListTue> 16:30 18.0 23:00 21.0 24:00 18.0 R_4_tempListWed> 16:30 18.0 23:00 21.0 24:00 18.0 R_5_tempListThu> 16:30 18.0 23:00 21.0 24:00 18.0 R_6_tempListFri> 16:30 18.0 23:00 21.0 24:00 18.0 |
Kurz Übersetzt bewirkt diese, dass die Heizung am Wochenende von 09:00-24:00 auf 21 °C steht, in der Nacht auf 18 °C wechselt.
Unter der Woche wechselt sie um 16:30 auf 21.0 °C und steht von 23:00-16:30 auf 18 °C.
Die Temperaturliste auf das Gerät zurückschreiben
Wenn Ihr Eure Änderungen erfolgreich durchgeführt habt, den Event-Monitor in einem separaten Tab öffnen und die Temperaturliste folgendermaßen zurückschreiben:
1 | set hm tempList restore |
Im Event-monitor sind nun die einzelnen Befehle zu sehen, die Readings der Temperaturlisten im Device „sz_heizung_Clima“ sollten nun auf „incomplete“ stehen (natürlich nur, wenn sich die Temperaturliste auch verändert hat).
Das Hauptdevice „sz_heizung“ sollte ein paar „CMDs pending“ haben. Es dauert ein paar Minuten, bis sich der „HM-CC-RT-DN“ erneut meldet. Aufgrund seiner Stromspareigenschaften kann dies bis zu 2,5 Minuten dauern. Beschleunigen kann man dies, indem man die mittlere Taste gedrückt hält, genau wie beim Anlernen. Der Heizkörperthermostat meldet sich dann umgehend an der angelernten Zentrale.
Sind alle CMDs durchgelaufen, sollte die neue Temperaturliste erfolgreich synchronisiert sein.
Hiermit ist die FHEM Heizungssteuerung mit HomeMatic erfolgreich umgesetzt. Schreibt mir Eure Fragen und Anregungen gerne unten in die Kommentare.
Hallo, ich habe mir das im Fhem Wiki schon 10 mal durchgelesen und bin nicht schlau geworden…mit dieser Erklärung hier bekomme ich das hin! Vielen Dank!
Danke für die übersichtliche und schnell verständliche Anleitung. Kurze Frage: Wie hast Du den Slider/Einstellung für desired of value hinbekommen? Über einen Dummy? Ich suche die Darstellung, mit der ich über fhem die gewünschte Temperatur manuell einstellen kann.
Gute Anleitung.
Mich würde interessieren wie du den Slider für die Temperatur Einstellung realisiert hast.