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

raspberry.tips
raspberry.tips - Raspberry Pi Projekte und Tutorials

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”).

set <CUL-Name> hmPairForSec 600

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

Einrichtung

rename HM_51A3D9 Wohnzimmer_Heizung_Fenster

In den passenden Raum verschieben

attr Wohnzimmer_Heizung_Fenster room Wohnzimmer
attr FileLog_Wohnzimmer_Heizung_Fenster room Logfiles

Gruppieren

attr Wohnzimmer_Heizung_Fenster group Heizung

Grundeinrichtung Homematic Heizkörper Steuerung

Umbenennen der Channels

rename HM_51A3D9_Weather Wohnzimmer_Heizung_Fenster_Weather
rename HM_51A3D9_Climate Wohnzimmer_Heizung_Fenster_Climate
rename HM_51A3D9_WindowRec Wohnzimmer_Heizung_Fenster_WindowRec
rename HM_51A3D9_Clima Wohnzimmer_Heizung_Fenster_Clima
rename HM_51A3D9_ClimaTeam Wohnzimmer_Heizung_Fenster_ClimaTeam
rename HM_51A3D9_remote Wohnzimmer_Heizung_Fenster_remote
rename ActionDetector Wohnzimmer_Heizung_Fenster_ActionDetector

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

###### Heizung
### WZ
define Wohnzimmer_Heizung_Fenster CUL_HM 51A3D9
attr Wohnzimmer_Heizung_Fenster IODev nanoCUL
attr Wohnzimmer_Heizung_Fenster actCycle 000:10
attr Wohnzimmer_Heizung_Fenster actStatus alive
attr Wohnzimmer_Heizung_Fenster autoReadReg 4_reqStatus
attr Wohnzimmer_Heizung_Fenster expert 2_raw
attr Wohnzimmer_Heizung_Fenster firmware 1.4
attr Wohnzimmer_Heizung_Fenster group Heizung
attr Wohnzimmer_Heizung_Fenster model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster room Wohnzimmer
attr Wohnzimmer_Heizung_Fenster serialNr NEQxxxxxx
attr Wohnzimmer_Heizung_Fenster subType thermostat
attr Wohnzimmer_Heizung_Fenster webCmd getConfig:clear msgEvents:burstXmit

define Wohnzimmer_Heizung_Fenster_Weather CUL_HM 51A3D901
attr Wohnzimmer_Heizung_Fenster_Weather model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster_Weather peerIDs 00000000,
define Wohnzimmer_Heizung_Fenster_Climate CUL_HM 51A3D902
attr Wohnzimmer_Heizung_Fenster_Climate model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster_Climate peerIDs 00000000,
define Wohnzimmer_Heizung_Fenster_WindowRec CUL_HM 51A3D903
attr Wohnzimmer_Heizung_Fenster_WindowRec model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster_WindowRec peerIDs 00000000,
attr Wohnzimmer_Heizung_Fenster_WindowRec stateFormat last:trigLast
define Wohnzimmer_Heizung_Fenster_Clima CUL_HM 51A3D904
attr Wohnzimmer_Heizung_Fenster_Clima model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster_Clima peerIDs 00000000,
define Wohnzimmer_Heizung_Fenster_ClimaTeam CUL_HM 51A3D905
attr Wohnzimmer_Heizung_Fenster_ClimaTeam model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster_ClimaTeam peerIDs 00000000,
define Wohnzimmer_Heizung_Fenster_remote CUL_HM 51A3D906
attr Wohnzimmer_Heizung_Fenster_remote model HM-CC-RT-DN
attr Wohnzimmer_Heizung_Fenster_remote peerIDs 00000000,
define Wohnzimmer_Heizung_Fenster_ActionDetector CUL_HM 000000
attr Wohnzimmer_Heizung_Fenster_ActionDetector event-on-change-reading .*
attr Wohnzimmer_Heizung_Fenster_ActionDetector model ActionDetector

define FileLog_Wohnzimmer_Heizung_Fenster FileLog ./log/Wohnzimmer_Heizung_Fenster-%Y.log Wohnzimmer_Heizung_Fenster
attr FileLog_Wohnzimmer_Heizung_Fenster logtype text
attr FileLog_Wohnzimmer_Heizung_Fenster room Logfiles

Anpassung der Ausgagen

Wir können nun noch die Ausgabe auf der Weboberfläche etwas anpassen da im Standard das Ganze nicht sehr hübsch aussieht

attr Wohnzimmer_Heizung_Fenster stateFormat Ventilposition: actuator <br>Soll-Temperatur: desired-temp <br>Ist-Temperatur: measured-temp

Ausgabe Thermostat

Weitere Anpassungen ergänze ich nich

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. Hierzu benötigen wir unsere HMID, diese findet Ihr in der FHEM.cfg unter Edit Files innerhalb der Definition eures CUL.

fhem-hmid

Dann erstellen wir das virtuelle Device, ändert ggf. eure HMid

define Wohnzimmer_virt_Temperatur CUL_HM A4E21F

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

attr Wohnzimmer_virt_Temperatur room Temperatur_Virtual

Ich weiße dem Gerät die Gruppe “Virtuelle-Sensoren-Heizungssteuerung” zu um das ganze später übersichtlich zu haben

attr Wohnzimmer_virt_Temperatur group Virutelle-Sensoren-Heizungssteuerung

Wir erstellen für das Gerät nun noch einen virtuellen Kanal, dieser wird für die Kommunikation benötigt

set Wohnzimmer_virt_Temperatur virtual 1

Da im Standard ein virtuelle Kanal vom Typ Button angelegt wird benennen wir diesen der Schönheit halber noch um

rename Wohnzimmer_virt_Temperatur_Btn1 Wohnzimmer_virt_Temperatur_Sensor1

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

set Wohnzimmer_virt_Temperatur_Sensor1 peerChan 0 Wohnzimmer_Heizung_Fenster_Weather single

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

Wichtig! kopiert die Zeilen am Besten direkt in eure FHEM.cfg über “Edit files”

define at_Wohnzimmer_virt_Temperatur at +*00:08 {\ 
 my $T=(ReadingsVal("Wohnzimmer_Temperatur","temperature",20.0));;\
 fhem "set Wohnzimmer_virt_Temperatur_Sensor1 virtTemp $T";;\
}

In meinem Fall definieren wir einen Job “at_Wohnzimmer_virt_Temperatur” der alle 8 Minuten läuft, die Temperatur vom Gerät “Wohnzimmer_Temperatur” den Wert “temperature” an “Wohnzimmer_virt_Temperatur_Sensor1” übergibt. Wenn keine Temperatur gelesen werden kann werden 20C gesendet.

Das ist mein fertiges virtuelles Device

FHEM virtual Device

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

2017.04.15 21:17:16 3: CUL_HM set Wohnzimmer_virt_Temperatur_Sensor1 virtTemp 21.4

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:

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics 
set y2tics 
set grid y2tics
set ylabel "Ventilposition (%)"
set y2label "Temperatur (°C)"
set yrange [0:100]
set y2range [15:26]

#FileLog 4:measured-temp\x3a::
#FileLog 4:desired-temp\x3a::
#FileLog 4:actuator\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'Gemessen' ls l0fill lw 2 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Gewünscht' ls l1fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Ventilpos' ls l2 lw 1 with lines

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

attr SVG_FileLog_Wohnzimmer_Heizung_Fenster_1 plotsize 840,240
attr SVG_FileLog_Wohnzimmer_Heizung_Fenster_1 room Wohnzimmer

Meiner sieht so aus

FHEM Heizung Plot

Viel Spaß!

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


wallpaper-1019588
Bleach: Neues Videospiel zum Manga angekündigt
wallpaper-1019588
Kujima Utaeba Ie Hororo – Manga erhält Anime-Serie
wallpaper-1019588
Frieren: Nach dem Ende der Reise – Manga pausiert auf unbestimmte Zeit
wallpaper-1019588
Kakushite! Makina-san!! – Manga inspiriert Anime-Adaption + Visual