Funk-Heizkörperthermostat HM-CC-RT-DN

Funk-Heizkörperthermostat HM-CC-RT-DN integrieren

Immer wenn die Heizperiode beginnt, erfreuen sich elektronisch Heizkörperthermostate großer Beliebtheit, da man diese per Wochenprogramm auf die eigenen Bedürfnisse anpassen kann. Viele dieser Geräte arbeiten autak vor sich hin. Einige sind per Funk steuerbar. Ich habe mich für das HM-CC-RT-DN entschieden, da es ein recht gutes Preis-Leistungsverhältnis hat und über das recht verbreitete HomeMatic-Protokoll steuerbar ist. Wer etwas handwerkliches Geschick verfügt, der kann sich auch einen Bausatz kaufen, sollte aber über einen recht kleinen Torx-Schraubendreher verfügen.  

Der HM-CC-RT-DN wird mit FHEM gepairt, indem man in FHEM "set HMLAN1 hmPairForSec 30" eingibt und daraufhin ca. 3 Sekunden lang auf die Boost-Taste vom HM-CC-RT-DN drückt. Daraufhin fängt der HM-CC-RT-DN an von 30 an herunter zu zählen. Üblicherweise wird die 30 noch angezeigt und dann ist der Pair-Vorgang abgeschlossen.

Nun sollte sich das frisch gepairte Gerät unter CUL_HM im Menü zeigen. Da die Gerätebezeichnungen dann doch recht kryptisch sind empfehle ich diese gleich mit sprechenden Namen zu versehen:

rename HM_45F5F1 Heizung_Bad
rename HM_45F5F1_Clima Heizung_Bad_Clima
rename HM_45F5F1_Weather Temperatur_Bad

Mit diesen drei Befehlen wird das Gerät selbst und davon der Kanal 4 umbenannt. Den Kanal 4 benötigt man um Steuerbefehle an den Heizungsthermostaten zu schicken.

Es gibt in FHEM die Möglichkeit Plots zu erstellen. Dazu ist es nötig, folgende Zeile in die fhem.cfg zu integrieren:

define FileLog_Heizung_Bad FileLog ./log/Heizung_Bad-%Y.log Heizung_Bad

Danach einfach FHEM neu starten und den Plot bearbeiten. Bei mir sieht es wie folgt aus:

Dabei verwende ich die flogenden Inputs für die Grafik:

measured-temp
desired-temp
actuator

Wenn man sich mit diesen Grafiken mal ausprobiert hat, erscheint es einem der Aufbau der Eingaben und Auswahl der Inputs doch recht logisch.

Um alle Diagramme in einem Bereich zusammenzufassen, füge ich noch folgende Zeile ein:

attr SVG_FileLog_Heizung_Bad_1 room Plots

Somit werden im Menüpunkt Plots alle Diagramme zusammengefasst.

Nachdem es also möglich ist, Daten vom Heizkörpterthermostaten zu empfangen und auszuwerten, sollten  im nächsten Schritt Daten und Befehle an den Heizkörperthermostaten gesendet werden. Für den ersten Test reicht es, wenn man die Tastensperre setzt und auch wieder löscht. Dazu gibt es auf der WIKI von FHEM eine recht gute Auflistung.

set Heizung_Bad regSet btnLock on
set Heizung_Bad regSet btnLock off

Es kann bis zu 2:30 Minuten dauern, bis die Befehle von FHEM an den Thermostaten gesendet worden sind. So viel Geduld muss man schon aufbringen. Zeigen diese Befehle am Thermostaten dann ihre Wirkung, kann man davon ausgehen, dass die Kommounikation funktioniert. Bei Versuchen mit dem CUL-Stick bin ich bereits an dieser Hürde gescheitert.

Das nächste interessante Kommando ist das Aktivieren des Urlaubs/Party-Modus. Dieser Befehl erfolgt über Kanal 4 (_Clima) und sieht wie folgt aus:

set Heizung_Bad_Clima controlParty 16 20.05.16 16:30 21.05.16 05:00

Dadurch wird
vom 20.05.2016, 16:30 Uhr
bis 21.05.2016, 05:00 Uhr
die gewünschte Raumtemperatur auf 16 °C eingestellt.
Es werden nur Uhrzeiten zu jeder vollen oder halben Stunde angenommen (Minuten also 00 oder 30).

Im nächsten Schritt wird ein Script erstellt, mit dem ein Wochenprogramm an den Heizungsthermostaten geschickt wird. Dafür scheint es verschiedene Lösungsansätze zu geben. Ich habe mich dafür entschieden ein Script zu erstellen, dass beim Aufruf ein vollständiges Wochenprogramm überträgt. Diese Script heißt bei mir 99_myUtils.pm und befindet sich im Verzeichnis FHEM.

package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
# Heizung_Bad_Clima Temperatur setzen
sub
SetTempList_Heizung_Bad()
{
{ fhem ("set Heizung_Bad_Clima tempListMon prep 05:30 17.0 06:10 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
{ fhem ("set Heizung_Bad_Clima tempListTue prep 05:30 17.0 06:10 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
{ fhem ("set Heizung_Bad_Clima tempListWed prep 05:30 17.0 06:10 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
{ fhem ("set Heizung_Bad_Clima tempListThu prep 05:30 17.0 06:10 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
{ fhem ("set Heizung_Bad_Clima tempListFri prep 05:30 17.0 06:10 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
{ fhem ("set Heizung_Bad_Clima tempListSat prep 07:30 17.0 09:00 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
{ fhem ("set Heizung_Bad_Clima tempListSun exec 07:30 17.0 09:00 27.0 12:00 17.0 15:00 17.0 18:00 17.0 21:00 17.0 24:00 17.0")};
}
1;

Soll nun das Wochenprogramm übermittelt werden, muss nur das Kommando

{SetTempList_Heizung_Bad()}

in das Eingabefeld von FHEM eingegeben werden.

Um dieses Script mit FHEM zu erstellen geht man wie folgt vor:

  • Edit files
  • myUtilsTemplate.pm anklicken
  • Save as 99_myUtils.pm

Wichtig ist, dass alle sub-Funktionen am Schluss eine fortlaufende Nummer mit einem Semikolon erhalten müssen.

In der fhemwiki werden Temperaturlisten und alternative Wochenprogramme beschrieben. Sicherlich ist es Geschmacksache, wer welche Vorgehensweise verwendet.

Wer möchte, der kann die gemessene Temperatur in einem extra Raum(Menüpunkt) anzeigen lassen. Also einen schellen Überblick über alle Temperaturen. Dazu füge ich noch ein paar Zeilen in die fhem.cfg ein:

attr Temperatur_Badr room Temperature
attr Temperatur_Bad userReadings state {sprintf("%0.1f °C", (ReadingsVal("Temperatur_Bad","measured-temp",0)))}
attr Temperatur_Bad icon icoKLIMA

nach oben