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

Aus FHEMWiki
Version vom 12. Januar 2015, 11:50 Uhr von Tobias.faust (Diskussion | Beiträge) (Add: Simulation von Fensterkontakten und externen Temperatursensoren)

Beim HM-CC-RT-DN handelt es sich um einen Funk-Heizkörperthermostaten mit integriertem Stellantrieb, 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. Ein passender Wandthermostat (HM-TC-IT-WM-W-EU) ist seit Februar 2014 verfügbar.

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. Ein Firmware-Update erfordert einen USB Konfigurations-Adapter und eine auf der eQ-3 Webseite herunterladbare Firmware Update Software. Weitere Details sind unter Firmware Update beschrieben.

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.3

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 gemessenen ("Ist"-) Temperatur, als Sensor kann z.B. ein HomeMatic HM-WDS10-TH-O Funk-Temperatur-/Luftfeuchtesensor OTH dienen.

Der Befehl zum peeren lautet, wobei <tempSensor> die Fhem-Kanalbezeichnung für den Sensor ist und <rt_Weather> die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates:

set <tempSensor> peerChan 0 <rt_Weather> single

Channel (Kanal) 02 _Climate

Der Climate-channel dient der Kommunikation mit einem Temperatur-Kontroller (aktuell nur HM-TC-IT-WM-W-EU). Zum peeren von TC und RT siehe HM-TC-IT-WM-W-EU

Channel (Kanal) 03 _WindowRec

Mit diesem Kanal 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 _Clima näher beschrieben).

Der Befehl zum peeren lautet, wobei <fensterSensor> die Fhem-Kanalbezeichnung für den Fensterkontakt ist und <rt_WindowRec> die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates:

set <fensterSensor> peerChan 0 <rt_WindowRec> single

Zum Löschen (=unpeeren) dieser Kopplung:

set <fensterSensor> peerChan 0 <rt_WindowRec> single unset

Achtung: Der Peer-(Lösch)Vorgang muss am Fensterkontakt durch Drücken der Anlerntaste bestätigt werden, und zwar auch dann, wenn der Fensterkontakt schon vorher mit Fhem gepairt wurde. Wichtig scheint auch dass der Fensterkontakt geschlossen ist wenn man die Anlerntaste drückt.

Der Befehl zur Temperatureinstellung des Heizkörperthermostaten für den Zustand "Fenster offen" lautet, wobei <fensterSensor> die Fhem-Kanalbezeichnung für den Fensterkontakt ist und <rt_WindowRec> die Kanalbezeichnung für den entsprechenden Kanal des Heizkörperthermostates, sowie <Temp> die einzustellende Temperatur (ganzzahliger Wert):

set <rt_WindowRec> regSet winOpnTemp <Temp> <fensterSensor>

Channel (Kanal) 04 _Clima

Dieser Kanal dient zum Einstellen der Betriebsparameter, auch #Temperaturlisten sind hierauf zu übrtragen.

Achtung: In älteren Versionen von Fhem wurde dieser Kanal durch autocreate als "_ClimRT_tr" angelegt. Der Hersteller hat hier offenbar die internen Bezeichnunen geändert, denn beim Vorläufernmodell HM-CC-TC mussten Temperaturlisten auf den Kanal Climate übertragen werden.


Die interne "Fenster-auf" Erkennung kann man wie folgt abschalten:

set <rt_Clima> regSet winOpnMode off

Channel (Kanal) 05 _ClimaTeam

Dieser Kanal dient zum peeren von mehreren Heizkörperthermostaten untereinander. Ein Mitglied des "Teams" meldet

  • Änderungen der Temperatur am Handrad
  • Einschalten des Boost-Modus am Taster

an seine "Teamkollegen" weiter. Folgende Änderungen werden nicht weitergegeben:

  • Status der Fensterkontakte
  • Temperaturlisten/Wochenplan und daraus folgende Änderungen
  • Änderungen durch Fernbedienungen
  • Änderungen durch eine HomeMatic-Zentrale

Befehl zum peeren, wobei <rt1-ClimaTeam> und <rt2-ClimaTeam> die Kanalbezeichnungen der beiden ClimaTeam-Kanäle sind:

set <rt1-ClimaTeam> peerChan 0 <rt2-ClimaTeam> single

Channel (Kanal) 06 _remote

Dieser Kanal ann an eine Fernbedienung gekoppelt werden. Per Tastendruck kann man einen bestimmten Mode und/oder eine bestimmte Temperatur wählen. Dabei kann die Reaktion auf einen langen oder kurzen Tastendruck gesondert eingestellt werden.

Der Befehl zum peeren lautet, wobei <button> die Kanalbezeichnung der Fernbedienung und <rt-remote> die Kanalbezeichnung des Heizkörperthermostates ist:

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

Das Device arbeitet gemäß des gespeicherten Wochenprogramms. Manuelle Änderungen sind möglich, werden beim nächsten Schaltpunkt überschrieben.

Modus Manu

Das Wochenprogramm wird nicht abgearbeitet, die Temperatur wird manuell eingestellt.

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 in den Auto-Modus gewechselt wird.

Ein Beispiel:

  set HM-CC-RT-DN_Clima 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 ("_Clima") 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) = @_;
 
    # HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.
    # Daher $startTime und $endTime abrunden
    $startTime =~ s/\:[0-2].$/:00/;
    $startTime =~ s/\:[3-5].$/:30/;
    $endTime =~ s/\:[0-2].$/:00/;
    $endTime =~ s/\:[3-5].$/:30/;	

    #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.

Temperaturprofile

Im Kanal Clima kann man einen Wochenplan (ein Temperaturprofil) hinterlegen. Im automatischen Betrieb stellt der Heizkörperhermostat dann die Wunschtemperatur gemäß diesem Profil ein. Die Daten werden in Registern des Heizkörperthermostates abgelegt, es gibt gesonderte Kommandos zur Verwaltung des Profils. Die Darstellung des Temperaturprofils unterliegt aber dennoch den Regeln der Register: Fhem muss die Daten aus dem Device lesen (getConfig), um sie darzustellen. Ändert man eine der Temperaturlisten müssen die Daten an das Device übertragen werden. Bis dies bestätigt ist wird in Reading R_tempList_State set angezeigt. Sobald die daten aus dem Device zurückgelesen sind steht wird es auf verified gesetzt (sollte der Normalzustand sein). incomplete wird gesetzt, falls beim Lesen der Register ein Teil der Daten nicht empfangen wurde.

Manuelle Änderung

Mit dem Kommando

set _Clima tempListMon 05:30 16.0 07:00 18.0 16:00 18.5 20:30 19.0 24:00 16.0

kann man das Temperaturprofil für den Wochentag Montag einstellen. Die nach dem Schaltzeitpunkt stehende Temperatur gilt immer bis zu diesen Zeitpunkt, nicht ab diesem Zeitpunkt. Der letzte Wert muss immer Mitternacht (24:00) sein. damit ist also 00:00 - 05:30 = 16Grad, 05:30 - 07:30 = 18 Grad. Die Zeit kann in Schritten von 30min eingestellt werden, die Temperatur in 0.1 Grad. Der Tage beginnt immer um 00:00, der letzte Abschnitt MUSS 24:00 sein.

Ändert man mehrere Tage auf einmal sollte man unbedingt mit "prep" und "exec" arbeiten, da es sonst zu Wiederholungen und langen Bearbeitungen kommen kann. Prep bereitet die Änderung in FHEM nur vor, mit exec werden die Daten dann an das Device übertragen. Das könnte in einem Fhem-Script lauten

sub
SetTempList_UG_Treppe_Heizung()
 {
   { fhem ("set UG.Treppe.Heizung_Clima 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_Clima 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_Clima 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_Clima 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_Clima 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_Clima 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_Clima tempListSun exec 07:00 16.0 09:00 18.0 15:00 18.5 21:00 19.0 24:00 16.0")};
}

Temperaturprofile in einer Datei

Eleganter ist die Verwaltung von Temperaturprofilen in einer Datei. Damit kann man

  • Temperaturlisten der Devices in ein file schreiben
  • Templates definieren, die man mehreren Devices zuordnen kann
  • Template-Änderungen gleichzeitig in mehrere Devices einspielen
  • Temperaturlisten gegen ein Template prüfen
Dateiformat

Die Temperaturprofile werden in einer Datei abgelegt im Format

entities:room1
tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
entities:room2,room3
tempListSat>08:00 18.0 15:00 18.0 21:30 19.0 24:00 14.0
tempListSun>08:00 18.0 15:00 18.0 21:30 19.0 24:00 14.0
...
  • entities ist eine komma-separierte Liste der Namen des folgenden Temperaturprofils. Das erste Temperaturprofil im Beispiel hat den Namen "room1", das 2. hat zwei Namen, "room2" und "room3".
  • tempList... ist die Liste der Schaltzeiten und Temperaturen des Tages. Die nach dem Schaltzeitpunkt stehende Temperatur gilt immer bis zu diesen Zeitpunkt, nicht ab diesem Zeitpunkt. Der letzte Wert muss immer Mitternacht (24:00) sein.
Temp Profil Datei erstellen/updaten

Mit HMInfo kann man eine Temperaturdatei ??? oder updaten.

 set hm tempList save <filename>
 set hm tempList save -f <channelName> <filename>

Die Temperaturlisten der Devices, ggf. nur der gefilterten Devices - werden in das File abgelegt. Sollte für die Entity bereits ein Eintrag vorhanden sein wird dieser ersetzt. Vorhandene weitere Einträge werden nicht geändert. Das save ist unabhängig von attribut tempListTmpl. Default für Filename ist "tempList.cfg". Als Entity wird der Name des Kanals genutzt.

Überprüfen/Einlesen

Mit dem verify-Kommando wird überprüft, ob das gegenwärtig vorhandene Temperaturprofil mit dem in der Datei befindlichen übereinstimmt.

set _Clima tempListTmpl verify FHEM/tempList.cfg:room1

Mit dem restore-Kommando wird das Temperaturprofil des Heizkörperthermostaten mit dem in der Datei befindlichen überschrieben.

set _Clima tempListTmpl restore FHEM/tempList.cfg:room1
  • FHEM/tempList.cfg ist die Datei, in dem das Temperaturprofil zu suchen ist. room1 ist der Name des Temperaturprofils, welches in der Datei gesucht wird. Wird keine Datei angegeben wird "template.cfg" im "fhem"-Verzeichnis angenommen.

Man kann einem Thermostat das Attribut tempListTmpl geben. Damit wird der Default-Name des Temperaturprofils für dieses Device gesetzt.

attr _Clima tempListTmpl FHEM/tempList.cfg:room1
set _Clima tempListTmpl

prüft das gegenwärtige Temperaturprofil gegen FHEM/tempList.cfg:room1 (da verify der Default ist). Die Prüfung des Profils ist auch Teil des configCheck von HMInfo. Will man explizit kein Temperaturprofil zuweisen sollte man tempListTmpl auf none setzen.

set _Clima tempListTmpl restore

überschreibt das gegenwärtige Temperaturprofil des Heizkörperthermostaten mit dem in der Datei befindlichen überschrieben.

Vorschlag

Zur Verwaltung der Temperaturprofile sollte die Datei tempList.cfg im Verzeichnis FHEM liegen, dann kann sie mit dem Web-Interface editiert werden. Wenn man im Sommer allen HKs das gleiche Profil geben will, kann man dies in der Datei erstellen und weist allen das template zu. Hier ein Beispiel für RT's:

 attr TYPE=CUL_HM:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN tempListTmpl tempList.cfg:sommer
 set hm tempListTmpl restore
 set hm tempListTmpl verify

Nach dem Restore natürlich warten, bis die Daten geschrieben sind.

Fhem-Log

In den folgenden Logs heißt Kanal 4 noch "_ClimRT_tr". Inzwischen würde man dort "_Clima" sehen.

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 %

Firmware Update

Seit 15.07.2014 gibt es für den HM-CC-RT-DN die neue Firmware Version 1.3. Diese kann von der eQ-3 Webseite heruntergeladen werden. Genauere Informationen gibt es unter HomeMatic_Firmware_Update

HM-CC-RT-DN spezifische Update Informationen

Durch gleichzeitiges Drücken der "Auto-/Manu"-Taste und der "Comfort-/Eco"-Taste am HM-CC-RT-DN während man die Batterien wieder einlegt wird der updatemodus gestartet. Während des Updates steht "FUP" im Display. Nach erfolgreichem Update erscheint "Ins" im Display und es muss eine erneute Adaptierfahrt durch drücken der Boost-Taste ausgelöst werden. Anschließend sollte der HM-CC-RT-DN wieder normal funktionieren. Die eingestellten Parameter und das Pairing mit FHEM gehen beim Update nicht verloren. Sollte das Update fehlschlagen, erscheint "Err" bzw. "CrC" im Display.

Normalerweise sollte dann durch erneutes starten der Prozedur am PC und HM-CC-RT-DN das ganze erneut durchführbar sein.

Simulation von Fensterkontakten und externen Temperatursensoren

grober Ablauf:

  • erstellen ein virtuelles Device
  • erstelle dazu einen virtuellen Kanal
  • peeren den Kanal mit dem RT (als fenster-kontakt oder als remote, wen du willst)
  • sende ein postEvent

Fensterkontakte

entnommen aus dem Forum: Thread

define virSC CUL_HM 221133
attr virSC autoReadReg 4_reqStatus
attr virSC expert 2_full
attr virSC model virtual_1
attr virSC peerIDs 
attr virSC subType virtual
attr virSC webCmd press short:press long

define virtualKitchenDoor CUL_HM 22113301
attr virtualKitchenDoor dummy 1
attr virtualKitchenDoor expert 1
attr virtualKitchenDoor group Virtual
attr virtualKitchenDoor model virtual_1
attr virtualKitchenDoor webCmd postEvent open:postEvent closed 

Anschließend peeren und Temperatur festlegen mit:

set virtualKitchenDoor peerChan 0 <Thermostat_Window_Rec> single set
set <Thermostat_Window_Rec> regSet winOpnTemp 5 virtualKitchenDoor

Die virtuelle Tür wird dann dann entsprechend über ein Notify getriggert:

define notify_virtualKitchenDoor notify (Fensterkontakt_1|Fensterkontakt_2) {if(Value("Fensterkontakt") eq "open" && Value("Fensterkontakt_2") eq "open"){fhem("set virtualKitchenDoor postEvent open")}else{fhem("set virtualKitchenDoor postEvent closed")}}

Temperatursensoren

entnommen aus dem Forum: Thread

1. Virtuelles HomeMatic Device mit _deiner_ HM Id definieren:

define wz_vT CUL_HM <hmId>

2. Dem Device einen virtuellen Kanal (Default ist ein virtueller Button) hinzufügen:

set wz_vT virtual 1

3. Es ist kein virtueller Button sondern ein virtueller Temperatursensor - darum rename:

rename wz_vT_Btn1 wz_vT_Sensor1

4. Virtuellen Peer Sensor mit dem Weather Channel des RT-DN peeren:

set wz_vT_Sensor1 peerChan 0 <RT_DN>_Weather single

5. Peering kontrollieren (Voraussetzung: Device hm vom Type hmInfo existiert):

set hm peerXref

Beispiel-Ausgabe:

peerXref done: 
x-ref list 
   wz_Thermostat_Weather => wz_vT_Sensor1 
   wz_vT_Sensor1 => wz_Thermostat_Weather

6. Gemessene Temperatur vom zb. 1-Wire DS1820 dem virtuellen HM Sensor übergeben. Z.B. alle zwei Minuten per at:

define at_wz_vT at +*00:02 { my $T=(ReadingsVal("<DS1820B>","temperature",20.0)); fhem "set wz_vT_Sensor1 virtTemp $T" }

Fertig.

Bekannte Probleme

TempList: Bad format ...

Wenn Sie beim Setzen einer Temperaturliste nach dem o.a. Schema ("SetTempList...") die Meldung

Bad format, use HH:MM TEMP ......

erhalten, sollten Sie zunächst ein Update von Fhem durchführen. Nähere Informationen zu dieser Funktion siehe hier.

Links