Syntax bei Anbindung einer OC3 Wetterstation

Begonnen von Hauenschild, 30 Mai 2015, 18:19:45

Vorheriges Thema - Nächstes Thema

Hauenschild

Ich arbeite gerade die Wiki http://www.fhemwiki.de/wiki/HM-WDS100-C6-O_Funk-Kombi-Sensor_OC3 für die Homematic Wetterstation ab. Jetzt bin ich beim Punkt angekommen wo in der fhem.cfg folgende eingaben gemacht werden sollen:

define RegenmengeNotify notify OC3:rain.* {\
  my $menge = (ReadingsVal("OC3", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));;\
  my $last1hours = myDiff("3600", "FileLog_OC3", "10:::");;\
  my $last3hours = myDiff("10800", "FileLog_OC3", "10:::");;\
  my $last24hours = myDiff("86400", "FileLog_OC3", "10:::");;\
  fhem("set RegenmengeTag $menge");;\
  fhem("set RegenmengeLast1Hours $last1hours");;\
  fhem("set RegenmengeLast3Hours $last3hours");;\
  fhem("set RegenmengeLast24Hours $last24hours");;\
}

Dabei verstehe ich den Anfang define RegenmengeNotify notify OC3:rain.* nicht. Was bedeutet der Punkt und der Stern am Ende? Ich kann das so doch garnicht eingeben und es kommt ein Hinweis mit Usage: define <name> notify <regexp> <command> . Den Perlcode der mit { danach beginnt gebe ich doch in die DEF ein wenn ich das Notify erstellt habe, oder?

JoWiemann

Hallo,

das notify arbeitet eine Regular Expresion ab. Daraus ergibt sich das bei: define RegenmengeNotify notify OC3:rain.*
das notify auf ein Ereignis wartet in dem der Text "OC3:rain.*" vorkommt, wobei . ein beliebiges Zeichen repräsentiert und * sagt, dass dies beliebig oft vorkommen kann. Notify würde also auf folgende reagieren:< OC3:rain und nun kommt meine Oma >. Das " und nun kommt meine Oma" ist einfach ein überspitztes Beispiel.

Wird also eine entsprechende Zeichenkette in einem Ereignis erkannt, dann wird der in den {} befindliche Code ausgeführt.

Mehr zu Regular Expressions findest du bei Google.

Grüße Jörg

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Hauenschild

Vielen Dank. Habe es durch die ausführliche Erklärung jetzt verstanden. :D

chris1284

den ganzen kram da oben kannst du dir meine ich aber sparen und einfach das rain oder statistics moduls verwenden.