HM-CC-RT-DN Funk-Heizkörperthermostat: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Typos/Spelling)
Zeile 227: Zeile 227:
'''HMLAN und burst'''
'''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 Nachrichten gesendet werden sind es entsprechend weniger.  
[[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 Nachrichten gesendet werden sind es entsprechend weniger.  
Es ist als nicht vorteilhaft, unnötig bursts zu senden.
Es ist nicht vorteilhaft, unnötig bursts zu senden.


'''Burst devices'''
'''Burst devices'''
Zeile 242: Zeile 242:
'''Attribut burstAccess'''  
'''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.
Devices, die abschaltbaren burst haben kann man ein attribut burstAccess 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'''
'''Kommando burstXmit'''


Mit diesem Kommando, das bei Devices mit contitional-Burst zu Verfügung steht, wird der burst gezielt von User angestossen.
Mit diesem Kommando, das bei Devices mit conditional-Burst zu Verfügung steht, wird der burst gezielt vom User angestoßen.


Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt.  
Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt.  
Zeile 331: Zeile 331:


=== HM-CC-RT-DN spezifische Update Informationen ===
=== 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.
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.
Normalerweise sollte dann durch erneutes Starten der Prozedur am PC und HM-CC-RT-DN das ganze erneut durchführbar sein.


Es gibt einige Readings, die nicht durch ein einfaches ''getConfig'' aktualisisert werden, z.B. "battery"(nicht batteryLevel). Um diese Readings zu bekommen, ist ein  
Es gibt einige Readings, die nicht durch ein einfaches ''getConfig'' aktualisiert werden, z.B. "battery"(nicht batteryLevel). Um diese Readings zu bekommen, ist ein  
:<code>set Device_Channel04 controlMode auto </code>
:<code>set Device_Channel04 controlMode auto </code>
notwendig. Daraufhin werden die Readings übertragen/aktualisiert.
notwendig. Daraufhin werden die Readings übertragen/aktualisiert.
Zeile 341: Zeile 341:
== Simulation von Fensterkontakten und externen Temperatursensoren ==
== Simulation von Fensterkontakten und externen Temperatursensoren ==
grober Ablauf:
grober Ablauf:
* erstellen ein virtuelles Device
* erstelle ein virtuelles Device
* erstelle dazu einen virtuellen Kanal
* erstelle dazu einen virtuellen Kanal
* peeren den Kanal mit dem RT (als fenster-kontakt oder als remote, wen du willst)
* peere den Kanal mit dem RT (als Fenster-Kontakt oder als remote, wenn du willst)
* sende ein postEvent
* sende ein postEvent



Version vom 10. November 2018, 13:07 Uhr

HM-CC-RT-DN Funk-Heizkörperthermostat
HM-CC-RT-DN an Heizkörper montiert
Allgemein
Protokoll HomeMatic
Typ thermostat
Kategorie Heizungsventile
Technische Details
Kommunikation 868 MHz
Kanäle 6
Betriebsspannung 3 V
Leistungsaufnahme 180 mA
Versorgung 2x LR6/Mignon/AA
Abmessungen 54x65x93 mm (BxHxT)
Sonstiges
Modulname CUL_HM
Hersteller ELV / eQ-3


HM-CC-RT-DN (häufig einfach RT genannt) ist ein Funk-Heizkörperthermostate mit integriertem Stellantrieb. Das Thermostat ist seit September 2013 verfügbar und ist der Nachfolger des HM-CC-VD Funk-Stellantriebs.

Vorbemerkungen

→ Einstellungen und Informationen, die alle HomeMatic Thermostate betreffen, sind unter HomeMatic Type Thermostat zu finden.

Der HM-CC-RT-DN kann die Temperatur selbst messen (im Gegensatz zum Vorgänger) und verfügt über eine Fenster-Offen-Erkennung sowie eine Boost-Funktion. Der HM-CC-RT-DN kann von einem HM-TC-IT-WM-W-EU Funk-Wandthermostat AP gesteuert werden, das ist aber optional.

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 Firmwareupdate-Software. Weitere Details sind unter Firmware Update beschrieben.

Info blue.png
Die Solltemperaturen eines HM-CC-RT-DN lassen sich nicht durch einen HM-CC-TC Funk-Wandthermostat steuern. Dieser kann nur die Ist-Temperatur an den HM-CC-RT-DN weitergeben, damit nicht die am HM-CC-RT-DN direkt gemessene Raumtemperatur zur Regelung verwendet 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.


Info blue.png
Wird für Wartungs-/Umbaumaßnahmen das Wasser der Heizung abgelassen bzw. diese neubefüllt, sind alle Stellantriebe manuell dauerhaft auf on zu setzen: set <HM_Stellantrieb>_Clima controlManu on. Beim Einsatz eines Wandthermostaten ist der Wandthermostat entsprechend einzustellen.


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.4 (2018)

Betrieb mit FHEM

Der Funk-Heizkörperthermostat muss zuerst mit FHEM gepairt werden. Stellen Sie sicher, dass FHEM aktuell ist (update durchführen)

Das Pairing sollte wie in HomeMatic Devices pairen beschrieben durchgeführt werden

Channels (Kanäle)

Channel (Kanal) 01 _Weather

Dieser Kanal dient zur Einspeisung der (gemessenen) Ist-Temperatur. Als Sensor können zum Beispiel das HM-TC-IT-WM-W-EU Funk-Wandthermostat oder ein HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor dienen.

Ein Temperatur-Sensor tempSensor kann mit dem _Weather-Kanal wie folgt gepeert werden:

 set <HM-TC-IT-WM-W-EU>_Weather peerChan 0 <HM-CC-RT-DN>_Weather single set

Beispiel:

 set EG_Buero_WANDTHERMOSTAT_Weather peerChan 0 EG_Buero_THERMOSTAT_Weather single set

ACHTUNG: Das Wandthermostat sowie das Thermostat Ventil (Beispiel "EG_Buero_WANDTHERMOSTAT" und EG_Buero_THERMOSTAT) werden vorher in FHEM den Status "CMDs_done" anzeigen. Beim peerChan wird dann bei beiden "CMDs_pending" stehen. Wobei das Wandthermostat sehr schnell wieder auf CMDs_done zurück springt. Allerdings ist dingend darauf zu achten, dass das Thermostat Ventil auch wieder auf "CMDs_done" wechselt, bevor man den nächsten Befehl absendet. Das Heizkörper Ventile kann unter umständen 3 bis 5 min benötigen bis wieder "CMDs_done" steht. Evtl. kann man dies durch die BOOST Taste beschleunigen. Da das Ventil etwa alle 3 min aufwacht, prüft und Daten sendet / empfängt. Sollte man mit dem Befehlen weiter gemacht haben, so kann es zu Problemen führen, das einer nicht mehr mit dem Pending aufhört. In dem Fall empfiehlt es sich beide Devices von Fhem abzumelden und auf Werkseinstellung zu resetten.

Zum Test haucht man das Wandthermostat an oder hält es einige Zeit in der Hand bis die Temperatur steigt, nach etwa 3 Minuten sollte man auch am Thermostat Ventil ein Temperaturanstieg sehen.

Channel (Kanal) 02 _Climate

Dieser Kanal erlaubt es dem HM-TC-IT-WM-W-EU Funk-Wandthermostat den HM-CC-RT-DN zu steuern. Dazu müssen die beiden Geräte gepeert werden:

 set <HM-TC-IT-WM-W-EU>_Climate peerChan 0 <HM-CC-RT-DN>_Climate single set

Channel (Kanal) 03 _WindowRec

Mit diesem Kanal können Fensterkontakte (HM-SEC-SC und HM-SEC-RHS) 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 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 <HM-CC-RT-DN>_WindowRec single set

Zum Löschen (=unpeeren) dieser Kopplung:

set <fensterSensor> peerChan 0 <HM-CC-RT-DN>_WindowRec single unset

Achtung: Der Peer-(Lösch)Vorgang muss erst am Fensterkontakt durch Drücken der Anlerntaste ausgelöst werden, und zwar auch dann, wenn der Fensterkontakt schon vorher mit FHEM gepairt wurde. Dann kann der oben genannte Befehl in FHEM abgesetzt werden. 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 <HM-CC-RT-DN>_WindowRec regSet winOpnTemp <Temp> <fensterSensor>

Weitere Hinweise im Forum, siehe FHEM Forum

Channel (Kanal) 04 _Clima

Dieser Kanal dient zum Einstellen der Betriebsparameter, auch Temperaturlisten sind hierauf zu übertragen. Mit dem Modul Wochenplan / Weekprofile können die Wochenpläne komfortabel in FHEM erstellt und an die Thermostate übertragen werden.


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


Die maximale Öffnung des Ventils kann mittels folgendem Befehl eingestellt werden (hier auf 80 %):

 set <HM-CC-RT-DN>_Clima regSet valveMaxPos 80

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

 set <HM-CC-RT-DN>_Clima regSet winOpnMode off

Channel (Kanal) 05 _ClimaTeam

Dieser Kanal erlaubt es mehrere HM-CC-RT-DN zu einem "Team" zu gruppieren. 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 <HM-CC-RT-DN#1>_ClimaTeam, <HM-CC-RT-DN#2>_ClimaTeam, ..., <HM-CC-RT-DN#8>_ClimaTeam die Kanalbezeichnungen der jeweiligen ClimaTeam-Kanäle sind:

set <HM-CC-RT-DN#1>_ClimaTeam peerChan 0 <HM-CC-RT-DN#2>_ClimaTeam single
set <HM-CC-RT-DN#1>_ClimaTeam peerChan 0 <HM-CC-RT-DN#3>_ClimaTeam single
set <HM-CC-RT-DN#2>_ClimaTeam peerChan 0 <HM-CC-RT-DN#3>_ClimaTeam single
...

Channel (Kanal) 06 _remote

Dieser Kanal kann 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 <HM-CC-RT-DN>_remote single

Betriebsmodus Auto, Manu, Party (Urlaub)

Der HM-CC-RT-DN verfügt über drei Betriebsmodus: Auto, Manu (Manuell) und Party (Urlaub).

Modus Auto

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

Modus Manu

Die Temperatur wird manuell eingestellt, das Wochenprogramm wird nicht abgearbeitet. "Manuell Einstellen" bedeutet entweder am Handrad oder durch Übermittlung eines "set desired temp"-Befehls von FHEM (oder equivalent von einer CCU).

Modus Party (Urlaub)

Die eingestellte Temperatur gilt bis zu einem gegebenen Endzeitpunkt, anschließend wechselt das Thermostat in den Auto-Modus.

Welchen Modus nutzen?

Im Umfeld von FHEM sind alle drei Modi einsetzbar. Betrieb in "Auto" hat den Vorteil, dass bei Ausfall der FHEM-Instanz der Thermostat trotzdem noch die eingespeicherten Wochenprogramme abarbeitet. Nachteilig ist aber, dass die Steuerung komplexer wird, weil sowohl die Einstellungen am Thermostat als auch Schaltebefehle von FHEM das Verhalten beeinflussen. Vielfach wird daher im Umfeld von FHEM der Modus "Manu" benutzt, hier wird die Temperatur nur per einzelnem FHEM Schaltbefehl gesteuert, ausgelöst z.b. durch "at" Kommandos, Anwesenheitserkennung oder Bewegungsmelder. Sollte FHEM (oder die Funkverbindung) ausfallen, bleibt der Thermostat allerdings auf der letzten eingestellten Temperatur stehen.

Denkbar ist auch, den Modus "Auto" zu verwenden und dann die Steuerung per FHEM dadurch durchzuführen, dass durch FHEM die Wochenprogramme verändert werden. Dies verbindet zwar die Vorteil der vorgenannten Methoden, ist aber am aufwendigsen in der Programmierung und erzeugt die höchste Funklast.

Auch der Urlaubsmodus ist einsetzbar, so kann beispielsweise bei Abwesenheit ein niedrigeres Temperaturprofil eingestellt werden, ohne dass eventuell vorhandene Temperaturlisten verändert werden müssen.

 set <HM-CC-RT-DN>_Clima controlParty 16 06.12.13 16:30 09.12.13 05:00

Dadurch wird

  • von 06.12.2013, 16:30 Uhr
  • bis 09.12.2013, 05:00 Uhr
  • die gewünschte Raumtemperatur auf 16 °C eingestellt.


Info blue.png
  • Der Befehl muss auf dem Kanal 4 (_Clima) erfolgen.
  • Es werden nur Uhrzeiten zu jeder vollen oder halben Stunde angenommen (Minuten also 00 oder 30).


Mit der folgenden Funktion Urlaub() kann man eine ganze Wohnung (also mehrere RTs) mit nur einem Befehl in den Party-Modus versetzen. Im Beispiel werden zwei Heizkörper ("Treppenhaus" und "Kammer") angesteuert.

Zu beachten sind folgende Dinge:

  1. Aktuelle Dateien (z.B. 10_CUL_HM) verwenden!
  2. Bei dem controlParty-Befehl 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($$$$$)
  {
    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/;

    # controlParty bei jedem HM-CC-RT-DN setzen.
    for my $rt (qw(Kammer Treppenhaus)) {
      fhem ("set $rt controlParty $temp $startDate $startTime $endDate $endTime");
    }
  }

Tastensperre

Um zu verhindern, dass der Modus oder die Temperatur per Tasten bzw. Drehrad am HM-CC-RT-DN verändert wird, kann eine Tastensperre gesetzt werden. Dies erfolgt mittels des Befehls:

set <HM-CC-RT-DN> regSet btnLock on

Rückgängig machen geht per:

set <HM-CC-RT-DN> regSet btnLock off

Diese Tastensperre kann man aber am HM-CC-RT-DN durch eine Tastenkombination wieder zurücksetzen. Um sie nur per FHEM rücksetzen zu können, muss

set <HM-CC-RT-DN> regSet globalBtnLock on

eingegeben werden. Rückgängig geht wieder per:

set <HM-CC-RT-DN> regSet globalBtnLock off

Es gibt auch eine Tastensperre die nur das Umschalten des Modus (Auto, Manuell, Urlaub) am Gerät verhindert. Diese wird mit

set <HM-CC-RT-DN> regSet modusBtnLock on

eingeschaltet. Abschalten geht mit:

set <HM-CC-RT-DN> regSet modusBtnLock off

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 Kommandos. 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 Burst-Modus benötigt mehr Leistung, das heißt die Batterien müssen häufiger gewechselt werden: Der RT muss den Receiver ständig empfangsbereit halten. Außerdem wachen bei jedem Burst wachen alle Burst-Empfänger auf – egal an wen die Kommunikation gerichtet war.

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 Nachrichten gesendet werden sind es entsprechend weniger. Es ist 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 Nachricht.

ConditionalBurst devices

Devices mit abschaltbarem Burst wie z.B. der HM-CC-RT-DN haben ein Register, burstRx, mit dem das burst-Erwachen eingestellt werden kann. Sendern, 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 Befehl models um herauszufinden, welche Devices welchen Modus unterstützen.

Attribut burstAccess

Devices, die abschaltbaren burst haben kann man ein attribut burstAccess 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 conditional-Burst zu Verfügung steht, wird der burst gezielt vom User angestoßen.

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.

Temperaturlisten

Die Temperaturlisten des HM-CC-RT-DN werden identisch mit denen anderer HomeMatic Thermostate verwaltet (siehe HomeMatic Type Thermostat). Beim HM-CC-RT-DN ist der Kanal 4 (_Clima) für die Temperaturlisten zuständig.

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 24.10.2014 gibt es für den HM-CC-RT-DN die neue Firmware Version 1.4. 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.

Es gibt einige Readings, die nicht durch ein einfaches getConfig aktualisiert werden, z.B. "battery"(nicht batteryLevel). Um diese Readings zu bekommen, ist ein

set Device_Channel04 controlMode auto

notwendig. Daraufhin werden die Readings übertragen/aktualisiert.

Simulation von Fensterkontakten und externen Temperatursensoren

grober Ablauf:

  • erstelle ein virtuelles Device
  • erstelle dazu einen virtuellen Kanal
  • peere den Kanal mit dem RT (als Fenster-Kontakt oder als remote, wenn du willst)
  • sende ein postEvent

Fensterkontakte

Entnommen aus diesem Forenbeitrag

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

Ggf noch interne "Fenster-auf" Erkennung abschalten

set <HM-CC-RT-DN>_Clima regSet winOpnMode off

Die virtuelle Tür wird 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 diesem Forenbeitrag

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 Typ 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 z.B. 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.

Sollte es Probleme geben, dass der RT des Öfteren wieder auf seine eigenen Messwerte wechselt, so sollte das Attr cyclicMsgOffset im Virtuellen Kanal beachtet werden. Näheres dazu ist ca. ab hier im Forum zu finden.

Auflistung und Beschreibung der Readings

Reading Beispielwert Mögliche Werte Beschreibung
CommandAccepted yes yes; no Letztes Komando akzeptiert (yes/ No)
R-boostPeriod 5 min 1 min bis x min Zeit wie lange das Ventil im Boost Modus sein soll.
R-boostPos 80% 0 bis 100 Ventilposition die im Boost Modus gesetzt wird.
R-btnNoBckLight off on; off ???
R-dayTemp 21 C Siehe R-tempMin bis R-tempMax Solltemperatur die gesetzt werden soll, wenn das Sonnensymbol am Thermostat gedrückt wird. Ebenso wird bei dieser Solltemperatur das Sonnensymbol im Display angezeigt.
R-daylightSaveTime on on; off ???
R-decalcTime 11:00 00:00 bis 23:59 Uhrzeit wann die Entkalkungsfahrt durchgeführt werden soll.
R-decalcWeekday Sat Mon; Tue; Wed; Thu; Fri; Sat; Sun Tag an dem die Entkalkungsfahrt durchgeführt werden soll.
R-modePrioManu all all; ??? ???
R-modePrioParty all all; ??? ???
R-nightTemp 17 C Siehe R-tempMin bis R-tempMax Solltemperatur die gesetzt werden soll, wenn das Mondsymbol am Thermostat gedrückt wird. Ebenso wird bei dieser Solltemperatur das Mondsymbol im Display angezeigt.
R-noMinMax4Manu off on; off ???
R-regAdaptive on on; off ???
R-reguExtI 15 ??? ???
R-reguExtP 30 ??? ???
R-reguExtPstart 30 ??? ???
R-reguIntI 18 ??? ???
R-reguIntP 33 ??? ???
R-reguIntPstart 44 ??? ???
R-showInfo time date; time Zeige Datum oder Urzeit im Sysplay an
R-showWeekday off on; off Zeige den Wochentag im Display an
R-sign off on; off ???
R-tempMax 30.5 C ??? Größte einstellbare Temperatur
R-tempMin 4.5 C ??? Kleinste einstellbare Temperatur
R-tempOffset 0.0K 0.0 bis ??? Temperaturabweichung gemessene Temperatur vs. realer Temperatur in Grad Kelvin. Angabe in 0.5-Schritten ohne Einheitenzeichen, z.B. 0.5 oder -1.0
R-valveErrPos 15% ??? ???
R-valveMaxPos 100% 0 bis 100 Maximale Ventielstellung die das Thermostat fahren darf.
R-valveOffsetRt 0% 0 Bis 100 ???
R-winOpnBoost off on; off Startet nach dem Fensterschließen die Boostfunktion um unabhängig von der Raumtemperatur den Heizkörper eine Zeit x aufzuheizen. (Siehe R-boostPeriod & R-boostPos)
R-winOpnDetFall 1.4 K 0.5 bis 2.5 Temperatur Sturz zwischen zwei Messungen, die als Fenster offen erkannt werden.
R-winOpnMode off on; off Thermostat soll anhand eines schnellen Temperaturabfalls erkennen, dass das Fenster geöffnet ist.
R-winOpnPeriod 15 min 1 bis ??? Minuten Dauer bis das Signal Fenster offen wieder entfernt wird.
R-winOpnTemp 12 C Siehe R-tempMin bis R-tempMax Temperatur die eingestellt werden soll, wenn das Fenster als offen erkannt wird.
R_0_tempListSat 07:00 20.0 22:30 22.0 24:00 20.0 incomplete = Daten werden mit Thermostat abgeglichen

Zeit/Temperaturangaben siehe Beispiel
Tages Solltemperaturen abhängig von der Uhrzeit.
- Der Beginn um 00:00 ist nicht einzutragen.
- Es sind immer Paare einzutragen (Uhrzeit Temperatur).
- Der letzte Eintrag muss an jeden Tag 24:00 sein.
- Uhrzeiten sind auf halbe Stunden beschränkt. Einträge 08:00 und 08:30 sind gültig. 08:20 ist ungültig.
R_1_tempListSun 07:00 20.0 22:00 22.0 24:00 20.0 Siehe R_0_tempListSat Siehe R_0_tempListSat
R_2_tempListMon 04:30 20.0 07:00 22.0 12:45 20.0 22:00 22.0 24:00 20.0 Siehe R_0_tempListSat Siehe R_0_tempListSat
R_3_tempListTue 04:30 20.0 07:00 22.0 12:45 20.0 22:00 22.0 24:00 20.0 Siehe R_0_tempListSat Siehe R_0_tempListSat
R_4_tempListWed 04:30 20.0 07:00 22.0 12:45 20.0 22:00 22.0 24:00 20.0 Siehe R_0_tempListSat Siehe R_0_tempListSat
R_5_tempListThu 04:30 20.0 07:00 22.0 12:45 20.0 22:00 22.0 24:00 20.0 Siehe R_0_tempListSat Siehe R_0_tempListSat
R_6_tempListFri 04:30 20.0 07:00 22.0 12:45 20.0 22:00 22.0 24:00 20.0 Siehe R_0_tempListSat Siehe R_0_tempListSat
R_tempList_State verified incomplete = Daten werden mit Thermostat abgeglichen
verified = Daten sind mit Thermostat abgeglichen
Aktualisierungsstatus der Wochen Temperatur Einstellungen
ValvePosition 36 0 bis 100 aktuelle Ventielstellung
boostTime - -
1 min bis n min
Zeit wie lange der Boostmodus noch aktiv ist.
controlMode auto auto = Thermostat wird nach der TempListe gesteuert
manual = Die eingestellte Temperatur am Thermostat wird nicht verändert, außer bei Verwendung von WinOpn;
boost = Thermostat wird in den Boost Modus gesetzt. Siehe R-boostPeriod/Pos
day = Thermostat wird auf die eingestellte Tag Temperatur gesetzt (R-dayTemp).
night = Thermostat wird auf die eingestellte Nacht Temperatur gesetzt (R-nightTemp).
Setzt das Thermostat in ein bestimten Modus
desired-temp 22 N/A Solltemperatur
measured-temp 23.2 N/A Isttemperatur
partyEnd - ??? Ende Datum/Zeit indem die Party Temperatur (partyTemp) gesetzt sein soll.
partyStart - ??? Start Datum/Zeit indem die Party Temperatur (partyTemp) gesetzt sein soll.
partyTemp - -; 20.0 Party Temperatur
recentStateType ack ??? ???
state T: 23.2 desired: 22.0 valve: 36
Aktuelle Statusinformation

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.

Der Thermostat heizt über die Solltemperatur hinaus

In der Regel ist das ein ganz normales Verhalten, wenn der Thermostat nicht mit einem externen Temperaturfühler oder einem Wandthermostat gepeert ist. In dem Fall muss sich der Thermostat auf den eingebauten Temperatursensor verlassen, der sehr nahe an der Heizung selbst sitzt. Dadurch ist die gemessene Temperatur höher, als sie z.B. in der Raummitte wäre. Der Hersteller hat hier einen mehr oder weniger intelligenten Algorithmus eingebaut, um diesen Effekt zu kompensieren. Das sieht dann so aus, als ob der Thermostat nicht richtig regelt. Dieses Verhalten kann man im Prinzip nur verhindern, indem man einen externen Temperatursensor oder einen Wandthermostat peert. Wie das geht ist hier beschrieben: #Channel (Kanal) 01 _Weather. Normalerweise regelt der Thermostat dann genau auf die Solltemperatur. Ansonsten sollte man sich auch fragen, ob das gezeigte Verhalten vielleicht doch gut genug ist. Dazu platziert man irgendein Thermometer möglichst in der Mitte des Raums und beobachtet den Temperaturverlauf eine Weile. Wenn man dann noch eine Abweichung feststellt, kann es sinnvoll sein, diese mittels des Registers R-tempOffset zu beheben.

Links