HM-CC-RT-DN Funk-Heizkörperthermostat
Beim HM-CC-RT-DN handelt es sich um einen Funk-Heizkörperthermostaten, der als Nachfolger den HM-CC-VD ablöst und seit Mitte September 2013 verfügbar ist.
Vorbemerkungen
Im Gegensatz zum Vorgänger misst der HM-CC-RT-DN selbst die Temperatur und verfügt über eine Boost-Funktion. Er braucht zur Steuerung kein separates Raumregelungsgerät mehr und hat eine eigene Fenster-Offen-Erkennung. Laut Aussagen auf der ELV-Produktseite soll ein passender Wandthermostat (HM-TC-IT-WM-W-EU) "im Laufe des Jahres 2014" erscheinen (eQ3 konkretisiert diese Angabe auf März 2014).
Das Gerät wird seit Anfang Oktober 2013 von Fhem unterstützt (siehe Diskussion im Forum).
Der HM-CC-RT-DN scheint das erste HomeMatic-Device zu sein, bei dem ein Update der Firmware auch vom Anwender durchgeführt werden kann. Zu dem "Wie" kann bisher noch nichts näheres gesagt werden.
Achtung: Die Solltemperaturen eines HM-CC-RT-DN lassen sich nicht durch einen HM-CC-TC steuern. Dieser kann höchstens die Ist-Temperatur an den RT weiter geben, damit die Raumtemperatur nicht am RT selbst zur Ventilsteuerung genommen wird.
Mit einem HM-CC-RT-DN können maximal (neben der Zentrale/Fhem):
- 7 HomeMatic Heizkörperthermostate
- 8 HomeMatic Tür-Fensterkontakte / Fenster-Drehgriffkontakte
- 8 Tastenpaare von HomeMatic Fernbedienungen bzw. Display-Wandtaster
- 1 HomeMatic Innen-Temperatur-Sensor
gepeert werden.
Technische Daten
- Betriebsspannung: 2 Stck. 1,5V LR6/Mignon/AA
- Stromaufnahme: 180 mA max.
- Abmessungen (B x H x T): 54 x 65 x 93 mm
- Gewicht: 180 g (ohne Batterien)
- Ventilanschluss: M30 x 1,5 mm
Aktuelle Firmware: 1.2 (in CCU2 2.7.8)
Betrieb mit FHEM
Der Funk-Heizkörperthermostat muss zuerst mit Fhem gepairt werden. Da es den RT noch nicht lange gibt, sollten Sie sicher stellen, dass Fhem aktuell ist (update durchführen).
Channels (Kanäle)
Channel (Kanal) 01 _Weather
Dieser Kanal dient zur Einspeisung der "IST-Temperatur", als Sensor kann z.B. ein HomeMatic HM-WDS10-TH-O Funk-Temperatur-/Luftfeuchtesensor OTH dienen.
Befehl zum peeren:
set <thermoSensor> peerChan 0 <rt_Weather> single
Channel (Kanal) 02 _Climate
Channel (Kanal) 03 _WindowRec
Hier lassen sich Fensterkontakte (HM-SEC-SC oder HM-SEC-RHS) peeren, die ihren Fensterstatus (geöffnet/gekippt) an ein oder mehrere Thermostate senden. Die Thermostate stellen anschließend die entsprechende (konfigurierbare) Temperatur ein. Der Temperaturwert kann je Fenster-Sensor unterschiedlich definiert werden. Sind mehrere Fenster gleichzeitig geöffnet, so wird der Thermostat auf die Temperatur des Sensors mit dem geringsten Temperaturwert eingestellt. Ferner wird empfohlen, bei Einsatz von externen Sensoren, die interne „Fenster auf Erkennung“ zu deaktivieren (Weitere Details sind im Channel (Kanal) 04 _ClimRT_tr näher beschrieben).
Befehl zum peeren:
set <fenster-sensor> peerChan 0 <rt_WindowRec> single
Zum Löschen von einen peer:
set <fenster-sensor> peerChan 0 <rt_WindowRec> single unset
Der Peer-(Lösch)Vorgang muss auf dem SC/RHS Sensor durch "drücken" der Anlerntaste bestätigt werden.
Temperatur für Windowopen definieren:
set <rt_WindowRec> regSet winOpnTemp 10 <fenster-sensor>
Channel (Kanal) 04 _ClimRT_tr
Dieser Kanal ist "der" operationelle. Hier kann z.B. die Temperatur eingestellt werden.
Temperaturlisten setzen: um gebündelt die Wunschtemperaturen für eine ganze Woche zu setzen, können, wie beim HM-CC-TC beschrieben, Temperaturlisten in der z.B. 99_MyUtils.pm angelegt werden. Anders als beim HM-CC-TC sind diese Listen aber nicht auf den Channel _Climate, sondern auf den Channel _ClimRT_tr zu übertragen.
###################################################### # Temperatur-Liste für Kellertreppe # setzen per Aufruf von "{SetTempList_UG_Treppe_Heizung}" # Vorsicht, da kein HM-CC-TC, sondern HM-CC-RT-DN, ist hier ein anderer Channel # zu nehmen. Zudem wird mit prep|exec gearbeitet, um nicht alle Zeilen als # einzelnen Befehl zu senden, sondern per "prep" erst alles # zusammenzufassen und dann per "exec" an das Thermostat zu senden. # Also als ein einziger Befehl statt sieben. Vermeidet "NACKs" ###################################################### sub SetTempList_UG_Treppe_Heizung() { { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListMon prep 05:30 16.0 07:00 18.0 16:00 18.5 20:30 19.0 24:00 16.0")}; { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListTue prep 05:30 16.0 07:00 18.0 16:00 18.5 20:30 19.0 24:00 16.0")}; { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListWed prep 05:30 16.0 07:00 18.0 16:00 18.5 20:30 19.0 24:00 16.0")}; { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListThu prep 05:30 16.0 07:00 18.0 16:00 18.5 20:30 19.0 24:00 16.0")}; { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListFri prep 05:30 16.0 07:00 18.0 15:00 18.5 20:30 19.0 24:00 16.0")}; { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListSat prep 07:00 16.0 09:00 18.0 15:00 18.5 21:00 19.0 24:00 16.0")}; { fhem ("set UG.Treppe.Heizung_ClimRT_tr tempListSun exec 07:00 16.0 09:00 18.0 15:00 18.5 21:00 19.0 24:00 16.0")}; } # End SetTempList_UG_Treppe_Heizung
Sobald die neue/geänderte 99_MyUtils.pm gespeichert ist, können per Fhem-Befehl {SetTempList_UG_Treppe_Heizung}
(also inclusive der geschweiften Klammern) die neuen Temperaturen an den HM-CC-RT-DN gesendet werden.
Die interne Fernster auf Erkennung kann man wie folgt abschalten:
set <rt_ClimRT_tr> regSet winOpnMode off
Channel (Kanal) 05 _ClimaTeam
Dieser Kanal dient zum peeren von mehreren RTs untereinander, also wenn z.B. zwei RTs in einem Raum sind und sich synchronisieren sollen. Das funktioniert jedoch nur, wenn die Einstellungsänderungen direkt am Thermostat durchgeführt werden. Änderungen, die in FHEM (bzw. über den Channel 4) durchgeführt werden, werden (nach bisherigen Erkenntnissen firmwarebedingt) nicht unterstützt.
Die Temperaturen werden nicht ausgetauscht, wenn die Quelle (z.B. Fensterkontakt) 'in der Lage ist' es an alle RTs zu verteilen (so die HM Philosophie).
Folgende Änderungen werden "nicht" weitergegeben:
- Status der Fensterkontakte
- Temperaturvorgaben der Zentrale
- Temperaturlisten/Wochenplan
Folgende Änderungen werden weitergegeben:
- Änderung der Temperatur am Handrad
- Boost am Handrad
Befehl zum peeren:
set <rt1-ClimaTeam> peerChan 0 <rt2-ClimaTeam> single
Channel (Kanal) 06 _remote
Kann an eine Fernbedienung gekoppelt werden. Damit lässt sich z.B. mit der +/- Taste die Temperatur einstellen.
Befehl zum peeren:
set <button> peerChan 0 <rt-remote> single
Betriebsmodus Auto, Manu, Party (Urlaub)
Im Automode kann man die Temperatur am Einstellrad des RT ändern. Zum nächsten Schaltpunkt wird dies dann überschrieben. Will man dies nicht (z.B. lange Party, ...), kann man auf manuell schalten. Dann bleibt die mit dem Drehregler (oder der Zentrale) eingestellte Temperatur stehen bis ultimo. Es gibt dann noch den Party- oder Urlaubsmodus. In diesen kann man den Automodus für eine gegebene Zeit überschreiben.
Modus Auto
< bitte ergänzen>
Modus Manu
< bitte ergänzen>
Modus Party (Urlaub)
Will man für eine festgesetzte Zeit (Stunden oder Tage) die Temperatur auf einen festen Wert einstellen (z.B. weil man in Urlaub fährt), kann man dies zwar auch durch Änderungen der Temperaturlisten erreichen, einfacher ist aber die Zuweisung über den Urlaubsmodus, da nach dessen Ablaufdatum und -zeitpunkt automatisch wieder zum vorher eingestellten Programm gewechselt wird.
Ein Beispiel:
set HM-CC-RT-DN_ClimRT_tr controlParty 16 06.12.13 16:30 09.12.13 05:00
Dadurch wird
- vom 06.12.2013, 16:30 Uhr,
- bis zum 09.12.2013, 05:00 Uhr
- die gewünschte Raumtemperatur auf 16 °C
eingestellt.
Hinweise:
- Der Befehl muss auf den Channel 4 ("_ClimRT_tr") erfolgen.
- Es werden nur Uhrzeiten zu jeder vollen oder halben Stunde angenommen (Minuten also 00 oder 30).
Mit der Funktion "Urlaub" kann man eine ganze Wohnung (also mehrere RT´s) mit nur einem Befehl in den Party-mode versetzen.
Der Name "Urlaub" kann natürlich frei gewählt werden.
Im Beispiel werden 2 Heizkörper (Treppenhaus und Kammer) angesteuert.
Zu beachten sind folgende Dinge:
1) Aktuelle Dateien (z.B. 10_CUL_HM) verwenden!
2) Bei dem partycontrol-Befehl in der Funktion KEIN Komma zwischen den Parametern.
3) Bei der Funktion die Parameterübergabe definieren ($$$$$)
Aufruf:
{Urlaub ("16", "06.12.13", "16:30", "09.12.13" ,"05:00")}
Funktion:
my $Urlaub; sub Urlaub($$$$$) { #lokale Variablendeklaration my ($temp,$startDate,$startTime,$endDate,$endTime) = @_; #Sendebefehl für ein HM-CC-RT-DN {fhem ("set Kammer controlParty $temp $startDate $startTime $endDate $endTime")} # alternative Schreibweise der Parameter: {fhem ("set Treppenhaus controlParty @_[0] @_[1] @_[2] @_[3] @_[4]")}; }
Burst-Modus
Das ist ein Übertragungsmodus für Nachrichten zwischen HM-Geräten und der Zentrale. Der RT erwacht alle 2,5 Minuten und dann überträgt die Zentrale die Kommanods. Wenn man einen Fensterkontakt oder eine Fernsteuerung nutzt, muss der RT sofort reagieren - dann muss man den Burst enablen. Der RT kann in diesem Fall sofort aufgeweckt werden und bearbeitet die Anforderung (Request). Das kann man auch von der Zentrale aus nutzen (so man möchte). Das ist der Vorteil des eingeschalteten Burst-Modus.
Nachteil: Der RT muss den Receiver wach halten. Der RT und alle anderen Burst-Devices erwachen bei jedem Burst (egal für wen) und legen sich dann wieder schlafen.
- jeder Burst-trigger kostet Batterie für alle Burst-Geräte im System
- wenn Burst enabled ist kostet es dem RT Batteriekapazität
Burst – wie es funktioniert
Schickt ein Sender eine burst Sequenz, wachen alle burst-Empfänger auf und prüfen die Message.
Wenn sie betroffen sind bleiben sie eine Zeit lang wach, ansonsten schlafen sie wieder ein.
Man beachte also, dass Senden eines Burst Energie in ALLEN burst-Empfängern verbraucht, egal ob sie angesprochen sind.
HMLAN und burst
HMLAN hat ein Sendebudget das über eine Stunde berechnet wird. Burst belastet diese Konto deutlich - so können nicht mehr als 100 bursts /h gesendet werden - dann geht HMLAN in overload Wenn zusätzliche messages gesendet werden sind es entsprechend weniger.
Es ist als nicht vorteilhaft, unnötig bursts zu senden.
Burst devices
Es gibt Devices, die immer auf burst reagieren und solche bei denen es abgeschaltet werden kann. So reagiert ein Rauchmelder immer auf Burst damit er seine Team-Kollegen hören kann.
Ein TC oder RT hingegen hat diese Funktion abschaltbar. 'Per default ist dies ausgeschaltet um Batterie zu sparen'. Wenn ein VD gesteuert wird ist der TC ja selbst wach. Wird er aber mit einem Fensterkontakt gekoppelt muss es eingeschaltet werden – sonst verpasst er die message.
ConditionalBurst devices
Devices mit abschaltbarem burst wie z.B. der 'HM-CC-RT-DN', gibt es ein Register burstRx mit dem das burst-erwachen eingestellt werden kann.
Sender, die einen burst-Aktor erwecken sollen muss man sagen, welcher peer burst benötigt. Hier kann ggf. das Register peerNeedsBurst nach dem peeren gesetzt werden. FHEM versucht dies automatisch beim Peeren zu erledigen.
Siehe Hminfo kommando 'models' um festzustellen, welche devices welchen mode unterstützen.
Attribut burstAccess
Devices, die abschaltbaren burst haben kann man ein attribut bustAccess 1_auto setzen. Es wird beim abschicken eines Kommandos versucht, das Device mit burst zu wecken. Sollte es nicht funktionieren wird gewartet, bis das Device aufwacht (meist reagieren solche Devices auch auf wakeup). Das setzen des Attributs ist angenehm – es werden aber ggf. viele bursts gesendet.
Kommando burstXmit
Mit diesem Kommando, das bei Devices mit contitional-Burst zu Verfügung steht, wird der burst gezielt von User angestossen.
Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt.
Dann sendet der User ein set burstXmit.
Es passiert das gleiche wie bei burstAccess.
FHEM versucht mittels burst zu wecken und sendet bei Erfolg die Messages aus dem Kommandostack.
Im Gegensatz zu burstAccess ist burstXmit gezielt einsetzbar und kann sparsamer verwendet werden.
FHEM und burst devices
FHEM sendet eine burst automatisch mit Kommandos zu Devices, die nur burst unterstützen.
So aktiviert man den burst-Betrieb am HM-CC-RT-DN
Burst Mode einschalten (der Kanal 4 des Device WZ1 heisst hier WZ1_4)
set WZ1_4 regSet burstRx on
prüfen mit:
get WZ1_4 reg burstRx
Nun in FHEM den Burst mode einschalten (sofern nicht burstXmit verwendet wird)
attr WZ1 burstAccess 1_auto
Hinweis: Das Attribut im Device und nicht im Kanal setzen, ansonsten gibt es eine Fehlermeldung.
Fhem-Log
Device-Log
2013.10.10 20:03:24 3: CUL_HM Unknown device CUL_HM_HM_CC_RT_DN_2212BC, please define it 2013.10.10 20:03:24 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC CUL_HM 2212BC A1A0184002212BC0000001000954B4551303531303031375900FFFF 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017 2013.10.10 20:03:24 3: LANCUL pairing (hmPairForSec) not enabled 2013.10.10 20:03:24 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC-%Y.log CUL_HM_HM_CC_RT_DN_2212BC 2013.10.10 20:03:24 3: Device Heizung_Wohnzimmer added to ActionDetector with 000:10 time 2013.10.10 20:03:24 3: CUL_HM pair: Heizung_Wohnzimmer thermostat, model HM-CC-TC serialNr JEQ0044286 2013.10.10 20:03:24 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time 2013.10.10 20:03:24 3: CUL_HM pair: CUL_HM_HM_CC_RT_DN_2212BC thermostat, model HM-CC-RT-DN serialNr KEQ0510017 2013.10.10 20:03:25 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Weather CUL_HM 2212BC01 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather 2013.10.10 20:03:25 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Weather FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Weather-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Weather 2013.10.10 20:03:26 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_Climate CUL_HM 2212BC02 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate 2013.10.10 20:03:26 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_Climate FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_Climate-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_Climate 2013.10.10 20:03:27 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_WindowRec CUL_HM 2212BC03 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec 2013.10.10 20:03:27 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_WindowRec FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_WindowRec 2013.10.10 20:03:28 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr CUL_HM 2212BC04 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr 2013.10.10 20:03:28 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr 2013.10.10 20:03:29 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam CUL_HM 2212BC05 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam 2013.10.10 20:03:29 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_ClimaTeam 2013.10.10 20:03:30 2: autocreate: define CUL_HM_HM_CC_RT_DN_2212BC_remote CUL_HM 2212BC06 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote 2013.10.10 20:03:30 2: autocreate: define FileLog_CUL_HM_HM_CC_RT_DN_2212BC_remote FileLog /usr/local/FHEM/var/log/CUL_HM_HM_CC_RT_DN_2212BC_remote-%Y.log CUL_HM_HM_CC_RT_DN_2212BC_remote 2013.10.10 20:03:35 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getSerial 2013.10.10 20:03:40 2: CUL_HM set CUL_HM_HM_CC_RT_DN_2212BC getConfig 2013.10.10 20:03:54 3: Device CUL_HM_HM_CC_RT_DN_2212BC added to ActionDetector with 000:10 time
Event monitor
2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr motorErr: ok 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr measured-temp: 18.4 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr desired-temp: 18 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr ValvePosition: 3 % 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr mode: manu 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr unknown0: 24 2013-10-12 12:05:35.610 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC_ClimRT_tr T: 18.4 desired: 18 valve: 3 % 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC battery: ok 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC batteryLevel: 3.1 V 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC measured-temp: 18.4 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC desired-temp: 18 2013-10-12 12:05:35.646 CUL_HM CUL_HM_HM_CC_RT_DN_2212BC actuator: 3 %