HM-Sen-RD-O Funk-Regensensor
Allgemeines
Der HM-Sen-RD-O (RD-O) ist ein Funk-Regensensor. Stand 26.06.2013 war er noch nicht lieferbar, ab August 2013 waren die Fertiggeräte verfügbar und seit Dezember 2013 sind auch die Bausätze lieferbar.
Er erkennt beginnenden Regen und kann über mit ihm gepeerte Aktoren Reaktionen veranlassen. Zudem verfügt er über eine eingebaute Heizung sowie eine optische Anzeige (grüne LED) direkt im Gehäuse, die durch Aufleuchten die Regenerkennung darstellt. Er wird mittels einer externen Spannungsversorgung (DC 7,5 bis 30 V; nicht im Lieferumfang) betrieben.
Die eingebaute Heizung in der Sensorfläche soll Fehlmeldungen (Betauung, z.B. durch Nebel, bzw. Vereisung) vermeiden helfen.
Technische Daten
- Aktuelle Firmware: 1.4 (Stand Dezember 2013)
- Versorgungsspannung: 7,5–30 V DC
- Max. Stromaufnahme: 250 mA
- IP-Schutzart: IP44
- Leistungsaufnahme Ruhebetrieb: 0,4 W (ohne Sensorheizung)
- Leistungsaufnahme Sensorheizung: ca. 1 W
- Abmessungen (B x H x T): 80 x 82 x 55 mm
- Gewicht: 286 gr.
Man kann den RD-O auch als Bausatz bestellen, dann ist er ein paar Euro preiswerter. Der Zusammenbau erfordert keine Profi-Lötkenntnisse, da nur ein paar bedrahtete Bauteile (Elko, LEDs, Transceiver-Modul usw.) einzulöten sind. Der Sensor ist bereits verklebt und angeschlossen.
Betrieb mit FHEM
Mit Stand Dezember 2013 wird der RD-O von FHEM unterstützt (Ausnahme siehe "Probleme"). Voraussetzung ist ein halbwegs aktueller FHEM-Versionsstand, da es sich um ein relativ neues HomeMatic-Gerät handelt. Zunächst ist der RD-O mit FHEM zu pairen. Nun kann man das Device umbenennen. Die Kanäle (siehe unten) werden dabei (leider) nicht automatisch mit umbenannt, dies kann aber durch entsprechende rename-Befehle von Hand nachgeholt werden (ggf. vorher prüfen, ob das Gerät ein set ... deviceRename ... anbietet; damit würden auch die Kanäle umbenannt). Danach ein save config und rereadcfg und weiter ...
Geräte-Kanäle (Device-channels)
Der RD-O hat 2 Kanäle zusätzlich zum "Channel 00", der das eigentliche Device darstellt.
- Channel 01, dieser enthält alles für die eigentliche Erkennung, ob es gerade regnet oder nicht
- Channel 02, über diesen kann das Verhalten der internen Heizung gesteuert werden
Channel 00
Die Register:
list: register | range | peer | description 0: localResDis | literal | | local reset disable options:on,off 0: pairCentral | 0 to 16777215 | | pairing to central 0: transmDevTryMax | 1 to 10 | | max message re-transmit
Channel 01
Die Register:
list: register | range | peer | description 1: cndTxThrhHi | 0 to 3000mV | | threshold high condition 1: cndTxThrhLo | 0 to 3000mV | | threshold high condition 1: eventFilterTimeB | 5 to 7620s | | event filter time 1: evntRelFltTime | 1 to 7620s | | event filter release time 1: highHoldTime | 60 to 7620s | | hold time on high state 1: sign | literal | | signature (AES) options:off,on 1: transmitTryMax | 1 to 10 | | max message re-transmit 4: expectAES | literal | required | expect AES options:off,on 4: peerNeedsBurst | literal | required | peer expects burst options:on,off
Channel 02
Die Register:
list: register | range | peer | description 1: sign | literal | | signature (AES) options:off,on
Konfiguration
Bei eingeschaltetem autocreate werden die erforderlichen Definitionen zum erkannten Sen-RD-O überwiegend selbstständig angelernt:
define Regensensor CUL_HM 20CE4B attr Regensensor .devInfo 040101 attr Regensensor .stc 70 attr Regensensor autoReadReg 4_reqStatus attr Regensensor firmware 1.4 attr Regensensor model HM-Sen-RD-O attr Regensensor room CUL_HM attr Regensensor serialNr KEQ0117756 attr Regensensor subType sensRain attr Regensensor webCmd getConfig define FileLog_Regensensor FileLog /opt/fhem/log/Regensensor-%Y-%m.log Regensensor attr FileLog_Regensensor logtype text attr FileLog_Regensensor room CUL_HM
# Channel 01 => 20CE4B01 define Regensensor_EsRegnet CUL_HM 20CE4B01 attr Regensensor_EsRegnet expert 1 attr Regensensor_EsRegnet model HM-Sen-RD-O attr Regensensor_EsRegnet peerIDs 00000000, attr Regensensor_EsRegnet room CUL_HM define FileLog_Regensensor_EsRegnet FileLog /opt/fhem/log/Regensensor_EsRegnet-%Y-%m.log Regensensor_EsRegnet attr FileLog_Regensensor_EsRegnet logtype text attr FileLog_Regensensor_EsRegnet room CUL_HM define SVG_FileLog_Regensensor_EsRegnet SVG FileLog_Regensensor_EsRegnet:Regensensor:CURRENT attr SVG_FileLog_Regensensor_EsRegnet room CUL_HM
# Channel 02 => 20CE4B02 define Regensensor_Heizung CUL_HM 20CE4B02 attr Regensensor_Heizung expert 1 attr Regensensor_Heizung model HM-Sen-RD-O attr Regensensor_Heizung peerIDs 00000000, attr Regensensor_Heizung room CUL_HM define FileLog_Regensensor_Heizung FileLog /opt/fhem/log/Regensensor_Heizung-%Y-%m.log Regensensor_Heizung attr FileLog_Regensensor_Heizung logtype text attr FileLog_Regensensor_Heizung room CUL_HM
Steuerung / Betrieb
Über die Veränderung der entsprechenden Register kann man das Verhalten des RD-O anpassen. So läuft z.B. ab Werk die Heizung nach Anschluss der Spannungsversorgung ständig mit. Nach der Verbindung mit einer Zentrale (hier FHEM) kann man dies steuern.
Eine manuelle Heizungssteuerung erreicht man über den Channel 02: Mit dem Befehl
set Regensensor_Heizung off
wird die Heizung aus- und durch
set Regensensor_Heizung on
wieder eingeschaltet.
Eine einfache Heizungsautomatik ist ganz einfach über ein Attribut möglich:
attr Regensensor_Heizung param offAtPon,onAtRain
offAtPon
schaltet die Heizung zwingend aus, wenn der (wieder) Sensor mit Spannung versorgt wird (nach einem Stromausfall).
onAtRain
schaltet die Heizung beim Status rain ein und beim Status dry wieder aus.
Evtl. sollte man die Heizung in Abhängigkeit von Temperatur und/oder relativer Luftfeuchte ein- bzw. ausschalten (Stromverbrauch; Materialschonung, denn die Sensorfläche wird merklich warm). Ein Einschalten bei erkanntem Regen (wenn nicht bereits durch das o.g. Attribut realisiert) ist ebenfalls sinnvoll, denn die Heizung sorgt für ein schnelleres Abtrocknen der Sensorfläche und somit eine zeitnahe Regenende-Erkennung.
Hierzu kann beispielsweise folgendes in FHEM definiert werden:
define DoIf_RegenSensorHzgOnOff DOIF ([Aussen.ThermoHygro:temperature]<5 or [Regensensor_EsRegnet] eq "rain") (set Regensensor_Heizung on) DOELSEIF ([Aussen.ThermoHygro:temperature]>6 and [Regensensor_EsRegnet] eq "dry") (set Regensensor_Heizung off)
attr DoIf_RegenSensorHzgOnOff room Wetter
Die Sensor-Heizung wird damit bei Temperaturen unter 5 °C oder bei erkanntem Regen eingeschaltet. Die Abschaltung der Heizung erfolgt, sobald die Temperatur über 6 °C beträgt und es trocken ist.
Der RD-O reagiert bereits bei der Berührung der Sensorfläche mit einem Finger mit der Meldung "Es regnet". Dies erfolgt auch, sobald man einen kleinen Bereich mit einem Tropfen Wasser befeuchtet. Die Meldung bleibt (ab Werk) einige Minuten erhalten. Das Ansprech- und Rücksetzverhalten kann über die Veränderung der entsprechenden Register angepasst werden.
Log-Daten
Auszüge aus den Logs unmittelbar nach Anschluss der Spannungsversorgung und dem ersten Drücken der Anlerntaste am RD-O:
Event monitor
<Datum> <Zeit> Global global UNDEFINED CUL_HM_HM_Sen_RD_O_20EC4B CUL_HM 20EC4B A1A02840020EC4B0000001400A74B45513031313730363770040101 <Datum> <Zeit> Global global DEFINED CUL_HM_HM_Sen_RD_O_20EC4B <Datum> <Zeit> Global global DEFINED FileLog_CUL_HM_HM_Sen_RD_O_20EC4B <Datum> <Zeit> Global global SAVE <Datum> <Zeit> Global global UNDEFINED CUL_HM_HM_Sen_RD_O_20EC4B_Rain CUL_HM 20EC4B01 <Datum> <Zeit> Global global DEFINED CUL_HM_HM_Sen_RD_O_20EC4B_Rain <Datum> <Zeit> Global global DEFINED FileLog_CUL_HM_HM_Sen_RD_O_20EC4B_Rain <Datum> <Zeit> Global global SAVE <Datum> <Zeit> Global global UNDEFINED CUL_HM_HM_Sen_RD_O_20EC4B_Heating CUL_HM 20EC4B02 <Datum> <Zeit> Global global DEFINED CUL_HM_HM_Sen_RD_O_20EC4B_Heating <Datum> <Zeit> Global global DEFINED FileLog_CUL_HM_HM_Sen_RD_O_20EC4B_Heating <Datum> <Zeit> Global global SAVE ... und kurz darauf ... <Datum> <Zeit> CUL_HM CUL_HM_HM_Sen_RD_O_20EC4B_Rain timedOn: off <Datum> <Zeit> CUL_HM CUL_HM_HM_Sen_RD_O_20EC4B_Rain dry
FHEM-Log
<Datum> <Zeit> 3: CUL_HM Unknown device CUL_HM_HM_Sen_RD_O_20EC4B, please define it <Datum> <Zeit> 2: autocreate: define CUL_HM_HM_Sen_RD_O_20EC4B CUL_HM 20EC4B A1A02840020EC4B0000001400A74B45513031313730363770040101 <Datum> <Zeit> 2: autocreate: define FileLog_CUL_HM_HM_Sen_RD_O_20EC4B FileLog /opt/fhem/log/CUL_HM_HM_Sen_RD_O_20EC4B-%Y-%m.log CUL_HM_HM_Sen_RD_O_20EC4B <Datum> <Zeit> 2: autocreate: define CUL_HM_HM_Sen_RD_O_20EC4B_Rain CUL_HM 20EC4B01 <Datum> <Zeit> 2: autocreate: define FileLog_CUL_HM_HM_Sen_RD_O_20EC4B_Rain FileLog /opt/fhem/log/CUL_HM_HM_Sen_RD_O_20EC4B_Rain-%Y-%m.log CUL_HM_HM_Sen_RD_O_20EC4B_Rain <Datum> <Zeit> 2: autocreate: define CUL_HM_HM_Sen_RD_O_20EC4B_Heating CUL_HM 20EC4B02 <Datum> <Zeit> 2: autocreate: define FileLog_CUL_HM_HM_Sen_RD_O_20EC4B_Heating FileLog /opt/fhem/log/CUL_HM_HM_Sen_RD_O_20EC4B_Heating-%Y-%m.log CUL_HM_HM_Sen_RD_O_20EC4B_Heating <Datum> <Zeit> 2: CUL_HM set CUL_HM_HM_Sen_RD_O_20EC4B getConfig
Device-Logs
Channel 01 Log (Es regnet)
<Datum> <Zeit> Regensensor_EsRegnet timedOn: off <Datum> <Zeit> Regensensor_EsRegnet dry <Datum> <Zeit> Regensensor_EsRegnet timedOn: off <Datum> <Zeit> Regensensor_EsRegnet rain <Datum> <Zeit> Regensensor_EsRegnet timedOn: off <Datum> <Zeit> Regensensor_EsRegnet dry <Datum> <Zeit> Regensensor_EsRegnet timedOn: off <Datum> <Zeit> Regensensor_EsRegnet rain <Datum> <Zeit> Regensensor_EsRegnet timedOn: off <Datum> <Zeit> Regensensor_EsRegnet dry
Am gezeigten log ist zu erkennen, dass der Sen-RD-O Zustandsänderungen genau einmal meldet und danach nicht wiederholt.
Channel 02 Log (Heizung an oder aus)
<Datum> <Zeit> Regensensor_Heizung timedOn: off <Datum> <Zeit> Regensensor_Heizung on <Datum> <Zeit> Regensensor_Heizung set_off <Datum> <Zeit> Regensensor_Heizung timedOn: off <Datum> <Zeit> Regensensor_Heizung off <Datum> <Zeit> Regensensor_Heizung set_on <Datum> <Zeit> Regensensor_Heizung timedOn: off <Datum> <Zeit> Regensensor_Heizung on
Plot / Grafische Darstellung
Der RD-O meldet im Channel_01-Log die Zustände "rain" (für: es regnet) und "dry" (für: es regnet nicht). Diese Werte kann man in FHEM-Plots natürlich nicht so auswerten wie numerische Angaben. Aber auch dafür bietet FHEM eine Lösung. Hier zunächst der Plot:
Und hier die dazugehörige Plot-Datei:
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 'Regnet es: Ja/Nein' set ytics ("Trocken" 0, "Regen" 1) set y2tics ("Trocken" 0, "Regen" 1) set grid set ylabel "" set y2label "" set yrange [-0.1:1.1] set y2range [-0.1:1.1] #FileLog 3::0:$fld[2]=~"rain"?1:0 plot "<IN>" using 1:2 axes x1y2 title 'Regnet es?' ls l0 lw 1 with steps
Dieser Plot hat noch einen Mangel. Um kurz vor 20:00 Uhr hat es erneut angefangen zu regnen und obwohl es jetzt nach 22:00 Uhr ist, deutet der Plot an, dass es momentan "nicht regnet". An einer plausibleren Darstellung wird gearbeitet.
Bekannte Probleme
getConfig
Anfangs (Mitte Dezember 2013) gab es noch ein Problem mit dem getConfig. Dieser Befehl wurde quittiert mit den Meldungen:
protState CMDs_done_Errors:1 ... state RESPONSE TIMEOUT:RegisterRead
Andere Befehle (wie oben z.B. Heizung an/aus) wurden dagegen umgehend erfolgreich abgearbeitet.
Dieses Problem ist mittlerweile gelöst, so dass der RD-O voll genutzt werden kann.
Erst Minuten nach Regenende meldet der RD-O "dry" (also kein Regen mehr)
Das liegt zum einen daran, dass der auf der Sensorfläche befindliche Niederschlag erst einmal durch die interne Sensorheizung "verdampft" werden muss. Zum anderen ist der RD-O so eingestellt, dass er erst 5 Minuten nach Abtrocknen der Sensorfläche wieder den Zustand "dry" an FHEM meldet. Zuständig dafür ist das RD-O-Register highHoldTime im Channel 01, das werksseitig auf 300 Sekunden (also 5 Minuten) eingestellt ist. Dieses Register kann man aber auf einen Wert von (minimal, kürzer geht nicht) z.B. 60 Sekunden setzen:
set Regensensor_EsRegnet regSet highHoldTime 60
Korrosion / eindringendes Wasser
In den Käuferbewertungen und im Kundenforum von ELV gibt es Meldungen, dass möglicherweise die Sensorfläche "korrodiert" bzw. der RD-O mit Wasser "voll läuft". Diese Meldungen scheinen sich allerdings auf eine frühere Version des ARR-bausatzes zu beziehen, bei der man die Sensorfläche noch selbst in den Gehäusedeckel (wasserdicht) einkleben musste. Dieses Einkleben war bei dem Bausatz von Mitte Dezember 2013 nicht mehr erforderlich. Sobald dazu Erfahrungswerte vorliegen, werden diese hier eingetragen.
Links
- Produktinfo
- Bedienungsanleitung (PDF) [1]
- Datenblatt (PDF) [2]