Heizungssteuerung mit HomeMatic HM-CC-RT-DN und FHEM auf dem Raspberry Pi

Etwas Zeit zur die Optimierung der Heizkosten hat mich eine automatisierte Lösung für die Heizungssteuerung mit FHEM auf meinem Raspberry Pi, den Homematic Heizungsthermostaten und meinen selbstgebauten Temperatursensoren umsetzen lassen.

Ich sende alle paar Minuten die Werte meiner Selbstbau Temperatursensoren an die Homematic Thermostate da ich die Erfahrung gemacht habe das die integrierte Temperaturmessung der Thermostate nicht sehr gut funktioniert. Nebenbei sind die Homematic eigenen Temperatursensoren meines Erachtens mit 50€ überteuert, für den Preis sind 3-4 Sensoren  selbst gebaut.

Die Programmierung der Temperaturprogramme habe ich einmalig direkt an den Thermostaten erledigt, über eine Automatisierung und dynamische Steuerung mache ich mir später Gedanken, hier geht es Primär erst einmal um die Grundkonfiguration und den Thermostaten die aktuelle Raumtemperatur der Sensoren zu übermitteln.

Material & Vorbereitung

Grundeinrichtung Thermostat HM-CC-RT-DN

Nachdem ihr die Termostaten nach Anleitung montiert habt versetzt den CUL an eurem FHEM in den Pairing-Modus (kontrollieren könnt ihr das auf dem Gerät, es meldet als Status im Pairing Modus immer  „hmPair 1“).

Dann könnt ihr durch drücken der Boost Taste (mittlere Taste) den Thermostat in den Pairing Modus versetzen, im Pairing Modus zählt ein 30 Sekunden Countdown auf dem Display herunter. Das Pairing mit FHEM sollte immer nur mit einem Gerät erfolgen, immer erst ein Gerät konfigurieren und dann den nächsten Thermostat pairen.

homematic pairing fhem

Wenn das Pairing geklappt hat wird automatisch ein Gerät im Raum CUL_HM angelegt. Die Geräte sind nach dem Pairing und der automatischen Analge in FHEM immer mit HM_<GeräteID> benannt.

Homematic-Heizung-FHEM

Dann bennen wir das automatisch erstellte Gerät entsprechend unserem Wunsch um

Das Gerät wird dann den passenden Raum verschoben, existiert dieser nicht wird er automatisch erstellt

Aus Gründen der Übersichtlichkeit können alle Gerät vom selben Typ in einer Box angezeigt werden, den Typ können wir beliebig festlegen. Bei mir ist es „Heizung“.

Grundeinrichtung Homematic Heizkörper Steuerung

Vergesst nicht das Umbenennen der internen Channels des erstellten Geräts, diese könnt ihr euch in den Eigenschaften anzeigen lassen. Hierbei sollte jeweils der Channel-Name immer erhalten bleiben, achtet darauf nur den Gerätenamen auszutauschen <GeräteName>_<Channel-Name>

Meine FHEM.cfg des Homematic HM-CC-RT-DN Funk-Heizkörperthermostat

Anpassung der Ausgaben

Die Ausgabe muss via ReadingsGroup verschönert werden, das ist allerdings sehr komplex und mich einiges an Zeit gekostet die Beispiele aus dem WIKI für mich anzupassen.

Thermsotat Uebersicht

Um die Ausgabe für eure Thermostate anzupassen müsst ihr leider den Code durcharbeiten und die Namen der Thermostate ersetzen. Achtet darauf das keine Zeilenumbrüche beim C&P entstehen.

Thermostat mit externen Temperaturdaten füttern

Nun möchte ich den Heizkörperthermostat natürlich immer mit einer passenden IST Temperatur (Raumtemperatur) füttern da die Messung am Thermostat logischerweise nicht sehr gut funktioniert.

Ich verwende hierzu meine Selbstbau Temperatursensoren  deren Werte ich bereits von meinem EmonCMS in FHEM übertrage. Ihr könnt aber auch jegliche andere Temperaturquelle, welche bereits in FHEM eingebunden ist, benutzen.

Das Prinzip ist recht einfach, wir erstellen ein virtuelles Gerät welches wir an unseren Thermostaten „pairen“, dem virtuellen Gerät weißen wir via Aufgabenplaner alle paar minuten die aktuelle Raumtemperatur eines beliebigen Sensors zu.

Als erstes müssen wir ein virtuelles Gerät anlegen um die Daten ordentlich an den Thermostat übertragen zu können.

Dann erstellen wir das virtuelle Device, ändert die  HMID auf eine beliebige die noch nicht verwendet wird.

Ich verschiebe das Gerät direkt in einen Raum (diesen könnt ihr später verstecken da für den Alltag nicht notwendig)

Wir erstellen für das Gerät nun noch virtuelle Aktoren mit welchen wir unsere Thermostate pairen können. Hier hatte ich das Problem das ich über virtuelle CCU immer nur Thmerostate eines Raumes bedienen konnte, sonst ist FHEM durcheinander gekommen.

Ich erstelle daher pro Raum eine virtuelle CCU und pro Thermostat im Raum ein virtuellen Aktor für die vCCU (in diesem Fall 2)

Da im Standard ein virtuelle Aktor vom Typ Button angelegt wird benennen wir diese noch um

Nun erfolgt das Pairing mit eurem Thermostat, ersetzt  zb. „Wohnzimmer_Heizung_Fenster“ mit dem Namen eures Thermostats in FHEM, _Weather muss angehangen werden sodass an den richtigen Kanal gepeered wird.

Als letztes definieren wir noch den regelmäßigen Job der alle paar Minuten die Temperatur von einem in FHEM vorhandenen Gerät liest und an das virtuelle Gerät sendet sodass es vom Thermostat verarbeitet werden kann.

Die Temperatur von meinen Temperatur  Geräten , z.B.  „Wohnzimmer_Temperatur“ wird über den Wert „temperature“ an die virtuellen Aktoren übergeben. Wenn keine Temperatur gelesen werden kann wird 20C gesendet. Via Peering lesen die Thermostate dann den IST Wert von den virtuellen Devices.

Das ist mein fertiges virtuellen CCUs

FHEM virtual CCU Heitung

 

Kontrollieren könnt ihr das ganze natürlich entweder über die FHEM Logfile, darin müsstet ihr alle X Minuten folgenden Eintrag finden

Hier meine gesamte Config für zwei vCCUs mit drei Thermostaten

FHEM Plot für den Thermostaten erstellen

Wir erstellen uns nun noch einige schöne Grafiken, auch Plotts genannt um auf einen Blick erkennen zu können wann unser Thermostat die Heizung anwirft und wann er abschaltet.

Hierzu öffnen wir das Logfile unseres Thermostaten, entweder ihr klickt auf euren Thermostat und findet ganz unten das Logfile oder ihr habt das Log File im Selben Raum hinterlegt und öffnet es direkt.

Innerhalb des Logfile Geräts eures Thermostaten klickt ihr auf „Create SVG Plot

fhem plot ersteleln

Wir speichern den Plot einfach ab ohne eine Änderung vorzunehmen, klickt hierzu im Webinterface einfach wie gewohnt auf „Save config“ links oben. Dann Wechsel wir auf Edit Files und suchen unsere gerade erstellt .glot Datei, bei mir wurde Sie „SVG_<Gerät>_1.gplot“ bekannt.

Öffnet die Datei und ersetzt den Inhalt mit folgendem:

Speichert die .glot Datei.

Wir können uns nun den Plott noch in einem gewünschten Raum ausgeben lassen, hierzu passen wir die Attribute unseres Plots wie folgt an.

Wir definieren die Ausgabegröße des Plots und fügen den Plot dem Raum Wohnzimmer hinzu

Meiner sieht so aus

FHEM Heizung Plot

Automatisches zeit-gesteuertes Temperaturprogramm erstellen

Ihr habt die Möglichkeit via FHEM das Temperaturprogramm pro Wochentag einzustellen anstelle dieses mühsam über das Gerät zu programmieren. Die Umsetzung ist recht simpel, wir setzen auf den Kanal „CLIMA“ (bei anderen Geräten ist es Climate) pro Wochentag / Uhrzeit die Soll Temperaturwerte.

Der Aufbau des Befehls ist recht simpel:

set <Name>_Clima tempListMon prep|exec 05:30 19.0 07:00 20.5 16:00 19.0 20:30 20.0 24:00 17.0

Wir setzen also pro Tag einen Befehl ab um die Temperaturliste des Tages zu ändern, es gibt folgende Listen tempListMon, tempListTue, tempListWed, tempListThu, tempListFri, tempListSat, tempListSun.

Das prep oder exec gibt an ob die geänderte Liste direkt an das Gerät übertragen werden soll (exec) oder erst mal in FEHM gespeichert wird (prep). Es empfiehlt sich erst nach Anpassung aller Listen bei der letzten exec zu verwenden um die Änderungen zu übertragen.

Am Ende stehen die Zeiträume für die Soll Temperatur. Beginn ist automatisch immer 00:00Uhr des jeweiligen Tages, die Zeitangabe und der dahinter stehende Temperaturwert ergibt somit immer eine Zeitspanne.

Im obrigen Beispiel wird also in der Zeit zwischen 00:00Uhr und 05:30Uhr die soll Temperatur auf 19.0 C gesetzt. Zwischen 05:30Uhr und 07:00Uhr auf 20.5C usw. Hier ein Beispiel für mein Wochenprogramm:

Wichtig! Die Änderung der letzten Temperaturliste wird mit EXEC anstelle mit PREP ausgeführt um zu übertragen!

Zeitraum Temperatur
00:00 – 05:30 19,0 C
05:30–07:00 21,5 C
07:00–16:00 20,0 C
16:00–20:30 21,0 C
21:30–24:00 17,0 C

Die Temperatur-liste könnt ihr euch im Gerät im Channel Clima jeder Zeit im selben Format ansehen, hier ein Beispiel

fhem temperaturliste

Ich hatte mir dann die Temperaturlisten noch in einer Datei in FHEM abgelegt, schaut euch das am Besten im WIKI an.