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?
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
Vielen Dank. Habe es durch die ausführliche Erklärung jetzt verstanden. :D
den ganzen kram da oben kannst du dir meine ich aber sparen und einfach das rain oder statistics moduls verwenden.