HM-Sen-RD-O Funk-Regensensor: Unterschied zwischen den Versionen

Aus FHEMWiki
K (→‎Betrieb mit FHEM: Layout-Fehler)
K (Sichtung / Korrektur der letzten Änderungen)
 
(26 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Allgemeines ==
== 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.


Beim HM-Sen-RD-O (RD-O) handelt es sich um einen Funk-Regensensor. Stand 26.06.2013 war er noch nicht lieferbar, Stand Dezember 2013 sind auch die Bausätze lieferbar.
Er erkennt beginnenden Regen und kann über mit ihm [[Peering (HomeMatic)|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.


Er hat lt. [http://www.elv.de/homematic-funk-regensensor-1.html Produktbeschreibung] eine eingebaute Heizung und eine optische Anzeige direkt im Gehäuse. Er wird mittels einer externen Spannungsversorgung (DC 7,5 bis 30 V) betrieben (nicht im Lieferumfang).
Die eingebaute Heizung in der Sensorfläche soll Fehlmeldungen (Betauung, z.B. durch Nebel, bzw. Vereisung) vermeiden helfen.


== Technische Daten ==
== Technische Daten ==
* Aktuelle Firmware: 1.4 (Stand Dezember 2013)
* Aktuelle Firmware: 1.4 (Stand Dezember 2013)
* Versorgungsspannung: 7,5–30 V DC
* Versorgungsspannung: 7,5–30 V DC
Zeile 16: Zeile 16:
* Gewicht: 286 gr.
* Gewicht: 286 gr.


Man kann den RD-O auch als "ARR"-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. Dem Bausatz liegt (entgegen sonstiger Bausätze von ELV) keine Aufbauanleitung (meist in Form einer Kopie des Artikels zur Produktvorstellung aus dem jeweiligen ELV-Journal) bei, welche jedoch mit einer freundlichen E-Mail an den ELV-Support angefordert werden kann und als PDF-Dokument übersandt wird.
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 ==
== 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 p'''ai'''ren. Nun kann man das Device [[rename|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 ...
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 p'''ai'''ren. Nun kann man das Device umbenennen ("renamen"). Die Kanäle (siehe unten) wurden <ins>hier</ins> dabei (leider) nicht automatisch mitumbenannt, dies kann aber durch entsprechende ''rename''-Befehle von Hand nachgeholt werden. Danach ein ''save config'' und ''rereadcfg'' und weiter ...


=== Geräte-Kanäle (Device-channels) ===
=== Geräte-Kanäle (Device-channels) ===
 
Der RD-O hat 2 Kanäle zusätzlich zum "Channel 00", der das eigentliche Device darstellt.
Der RD-O hat 2 Kanäle zusätzlich zum "Channel 00", welcher das eigentliche Device darstellt.
* Channel 01, dieser enthält alles für die eigentliche Erkennung, ob es gerade regnet oder nicht
* Channel 01, dieser enthält alles um die eigentliche Erkennung ob es gerade regnet oder nicht
* Channel 02, über diesen kann das Verhalten der internen Heizung gesteuert werden
* Channel 02, über diesen kann das Verhalten der internen Heizung gesteuert werden


==== Channel 00 ====
==== Channel 00 ====
Die Register:
Die Register:
  list:        register | range              | peer    | description
  list:        register | range              | peer    | description
Zeile 40: Zeile 37:
Die Register:
Die Register:
  list:        register | range              | peer    | description
  list:        register | range              | peer    | description
   1: condTxThrhHi    |  0 to 3000mV      |          | threshold high condition
   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: eventFilterTimeB |  5 to 7620s      |          | event filter time
   1: evntRelFltTime  |  1 to 7620s      |          | event filter release time  
   1: evntRelFltTime  |  1 to 7620s      |          | event filter release time  
   1: highHoldTime    |  60 to 7620s      |          | hold time on high state
   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
   1: transmitTryMax  |  1 to 10          |          | max message re-transmit
   4: expectAES        |    literal        | required | expect AES options:on,off
   4: expectAES        |    literal        | required | expect AES options:off,on
   4: peerNeedsBurst  |    literal        | required | peer expects burst options:on,off
   4: peerNeedsBurst  |    literal        | required | peer expects burst options:on,off


==== Channel 02 ====
==== Channel 02 ====
Die Register:
list:        register | range              | peer    | description
  1: sign            |    literal        |          | signature (AES) options:off,on


Die Register:
=== Konfiguration ===
Bei eingeschaltetem [[autocreate]] werden die erforderlichen Definitionen zum erkannten Sen-RD-O überwiegend selbstständig angelernt:


<folgt>
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


=== Steuerung ===
# 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


Über die Veränderung der entsprechenden Register kann man das Verhalten des RD-O seinen eigenen Bedürfnissen 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. Mittels (bitte auf den Channel 02)
# 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


<code>
=== Steuerung / Betrieb ===
set Regensensor_Heizung off
Ü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.
</code>


Eine manuelle Heizungssteuerung erreicht man über den ''Channel 02'':
Mit dem Befehl
:<code> set Regensensor_Heizung off</code>
wird die Heizung aus- und durch
wird die Heizung aus- und durch
:<code> set Regensensor_Heizung on</code>
wieder eingeschaltet.


<code>
Eine einfache Heizungsautomatik ist ganz einfach über ein Attribut möglich:
set Regensensor_Heizung on
:<code> attr Regensensor_Heizung param offAtPon,onAtRain</code>
</code>
<code>offAtPon</code> schaltet die Heizung zwingend aus, wenn der (wieder) Sensor mit Spannung versorgt wird (nach einem Stromausfall).
<code>onAtRain</code> schaltet die Heizung beim Status ''rain'' ein und beim Status ''dry'' wieder aus.


wieder eingeschaltet.
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:
 
:<code> define DoIf_RegenSensorHzgOnOff DOIF (([Aussen.ThermoHygro:temperature]<5 or [Regensensor_EsRegnet] eq "rain") and [Regensensor_Heizung] eq "off") (set Regensensor_Heizung on) DOELSEIF (([Aussen.ThermoHygro:temperature]>6 and [Regensensor_EsRegnet] eq "dry") and [Regensensor_Heizung] eq "on") (set Regensensor_Heizung  off)</code>
:<code> attr DoIf_RegenSensorHzgOnOff room Wetter</code>
 
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.
 
Man sollte darauf achten, dass der Status der Heizung im DOIF mit abgefragt wird. Ohne diese Abfrage werden sehr oft die Schaltbefehle gesendet, was dauerhaft dazu führen kann, dass die Sender in den Überlastmodus gehen und kurzzeitig keine Befehle mehr senden.
 
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 ===
=== Log-Daten ===
Auszüge aus den Logs unmittelbar nach Anschluss der Spannungsversorgung und dem ersten Drücken der Anlerntaste am RD-O:
Auszüge aus den Logs unmittelbar nach Anschluss der Spannungsversorgung und dem ersten Drücken der Anlerntaste am RD-O:


==== Event monitor ====
==== Event monitor ====
  <Datum> <Zeit> Global global UNDEFINED CUL_HM_HM_Sen_RD_O_20EC4B CUL_HM 20EC4B A1A02840020EC4B0000001400A74B45513031313730363770040101
  <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 CUL_HM_HM_Sen_RD_O_20EC4B
Zeile 92: Zeile 139:
  <Datum> <Zeit> CUL_HM CUL_HM_HM_Sen_RD_O_20EC4B_Rain dry
  <Datum> <Zeit> CUL_HM CUL_HM_HM_Sen_RD_O_20EC4B_Rain dry


==== Fhem-Log ====
==== FHEM-Log ====
 
  <Datum> <Zeit> 3: CUL_HM Unknown device CUL_HM_HM_Sen_RD_O_20EC4B, please define it
  <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 CUL_HM_HM_Sen_RD_O_20EC4B CUL_HM 20EC4B A1A02840020EC4B0000001400A74B45513031313730363770040101
Zeile 104: Zeile 150:


==== Device-Logs ====
==== Device-Logs ====
==== Channel 01 Log (Es regnet) ====
==== Channel 01 Log (Es regnet) ====
  <Datum> <Zeit> Regensensor_EsRegnet timedOn: off
  <Datum> <Zeit> Regensensor_EsRegnet timedOn: off
  <Datum> <Zeit> Regensensor_EsRegnet dry
  <Datum> <Zeit> Regensensor_EsRegnet dry
Zeile 117: Zeile 161:
  <Datum> <Zeit> Regensensor_EsRegnet timedOn: off
  <Datum> <Zeit> Regensensor_EsRegnet timedOn: off
  <Datum> <Zeit> Regensensor_EsRegnet dry
  <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) ====
==== Channel 02 Log (Heizung an oder aus) ====
  <Datum> <Zeit> Regensensor_Heizung timedOn: off
  <Datum> <Zeit> Regensensor_Heizung timedOn: off
  <Datum> <Zeit> Regensensor_Heizung on
  <Datum> <Zeit> Regensensor_Heizung on
Zeile 129: Zeile 174:
  <Datum> <Zeit> Regensensor_Heizung on
  <Datum> <Zeit> Regensensor_Heizung on


=== Probleme ===
=== 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:


==== getConfig ====
[[Datei:HM-Sen-RD-O_cut.jpg|Plot des HM-Sen-RD-O]]


Ein ''set Regensensor getConfig'' wird nach ein paar Sekunden mit einem
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
  protState CMDs_done_Errors:1
Zeile 139: Zeile 208:
  state RESPONSE TIMEOUT:RegisterRead
  state RESPONSE TIMEOUT:RegisterRead
   
   
quittiert.
Andere Befehle (wie oben z.B. Heizung an/aus) wurden dagegen umgehend erfolgreich abgearbeitet.
 
Im Device-Log erscheinen dazu folgende Einträge:


<Datum> <Zeit> Regensensor ResndFail
Dieses Problem ist mittlerweile gelöst, so dass der RD-O voll genutzt werden kann.
<Datum> <Zeit> Regensensor RESPONSE TIMEOUT:RegisterRead
<Datum> <Zeit> Regensensor ResndFail
<Datum> <Zeit> Regensensor RESPONSE TIMEOUT:RegisterRead


Andere Befehle (wie oben z.B. Heiszung an/aus) werden dagegen umgehend erfolgreich abgearbeitet. Für dies "Problem" wird es kurzfristig eine Lösung geben.
=== 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:
:<code> set Regensensor_EsRegnet regSet highHoldTime 60</code>


==== Korrosion / eindringendes Wasser ====
=== 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.
Im den Käuferbewertungen von ELV gibt es Meldungen, dass möglicherweise die Sensorfläche "korrodiert" bzw. der RD-O mit Wasser "voll läuft". Sobald dazu Erfahrungswerte vorliegen, werden diese hier eingetragen.


== Links ==
== Links ==
* [http://www.elv.de/homematic-funk-regensensor-1.html Produktinfo]
* [http://www.elv.de/homematic-funk-regensensor-1.html Produktinfo]
* [http://www.elv-downloads.de/Assets/Produkte/13/1302/130220/Downloads/130220_hm_regensensor_um.pdf Bedienungsanleitung (PDF)]
* Bedienungsanleitung (PDF) {{DocLink|elv|/Assets/Produkte/13/1302/130220/Downloads/130220_hm_regensensor_um.pdf}}
* [http://www.elv-downloads.de/Assets/Produkte/13/1302/130220/Downloads/130220_hm_regensensor_data.pdf Datenblatt (PDF)]
* Datenblatt (PDF) {{DocLink|elv|/Assets/Produkte/13/1302/130220/Downloads/130220_hm_regensensor_data.pdf}}


[[Kategorie:HomeMatic Components]]
[[Kategorie:HomeMatic Components]]
[[Kategorie:Regensensor]]
[[Kategorie:Regensensor]]

Aktuelle Version vom 13. April 2021, 16:37 Uhr

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") and [Regensensor_Heizung] eq "off") (set Regensensor_Heizung on) DOELSEIF (([Aussen.ThermoHygro:temperature]>6 and [Regensensor_EsRegnet] eq "dry") and [Regensensor_Heizung] eq "on") (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.

Man sollte darauf achten, dass der Status der Heizung im DOIF mit abgefragt wird. Ohne diese Abfrage werden sehr oft die Schaltbefehle gesendet, was dauerhaft dazu führen kann, dass die Sender in den Überlastmodus gehen und kurzzeitig keine Befehle mehr senden.

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:

Plot des HM-Sen-RD-O

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