Was ist falsch an:
define SchalterBad notify (TempBad:temperature<21) set HeizungBad on
Obwohl ich in den Events regelmäßig von meinem TempBad Sensor readings "temperature: 18.0" bekomme, zündet das notify nie. SchalterBad wird scheinbar korrekt angelegt:
CFGFN
DEF TempBad:temperature<21 set HeizungBad on
NAME SchalterBad
NOTIFYDEV TempBad
NR 1415
NTFY_ORDER 50-SchalterBad
REGEXP TempBad:temperature<21
STATE active
TYPE notify
Danke und sorry für die Newbie Frage!
(TempBad:temperature<21)
Es wäre mir neu, dass das eine gültige regexp wäre. Wo hast Du sowas ausgegraben?
:-\
Vielen Dank betateilchen. Damit ich etwas dabei lerne:
Wie müsste eine korrekte regexp aussehen?
Ich bekomme in den Eventlogs Meldungungen wie z.B.
2015-12-19 20:24:58 TRX_WEATHER TempBad temperature: 22.8
diese würde ich gern als notify trigger (regexp) verwenden bei einer Über- bzw. Unterschreitung der Temperatur.
TempBad sieht dabei so aus:
CFGFN
CODE THGR228N_32_1
DEF THGR228N_32_1
IODev TRX_0
LASTInputDev TRX_0
MSGCNT 16762
NAME TempBad
NR 763
STATE T: 22.8 H: 40 BAT: ok
TRX_0_MSGCNT 16762
TRX_0_RAWMSG 0a520173320100e4280259
TRX_0_TIME 2015-12-19 19:55:04
TYPE TRX_WEATHER
Readings:
battery ok 2015-12-19 20:28:13
humidity 40 2015-12-19 20:28:13
state T: 22.8 H: 40 BAT: ok 2015-12-19 20:28:13
temperature 22.8 2015-12-19 20:28:13
Ich hatte mir eine Variante mit "at" angeschaut, aber die Überprüfung der Temperatur soll eben nicht zeitgetriggert sein sondern getriggert von dem Temperatur-Event. Dachte notify wäre da eine gute Idee...
Zitat von: crazystone am 19 Dezember 2015, 21:30:56
Vielen Dank betateilchen. Damit ich etwas dabei lerne:
Wie müsste eine korrekte regexp aussehen?
Sorry, wenn ich jetzt schreibe, was ich denke, bekomme ich wieder eine Verwarnung.
Tipp: Lies bitte das Einsteigerdokument zu fhem. Das bringt Dich ein ganzes Stück weiter.
Du willst auf eine Bedingung reagieren, dass wäre schon einmal ein if... Das du brauchst und dann willst du das reading eines Temperatursensors auswerten, dass wäre ReadingsVal.
Ansonsten, siehe betateilchen, Grundlagen lesen und verstehen
P.S. es bringt dir nichts, wenn ich dir jetzt das fertige notify poste ;)
VG
Frank
...das Lesen und Verstehen versuche ich schon ein paar Stunden...mit dem Lesen klappt es auch schon ganz gut...
{if(ReadingsVal('TempBad', 'temperature', 0) < 21.0) {fhem("set SchalterBad on")} }
wäre wohl die Reaktion auf eine Bedingung. Allerdings möchte ich eben eine Reaktion auf ein Event erwirken, das offensichtlich generiert wird, wenn der Temperatursensor die Temperatur meldet. Wie baue ich die obige Bedingung in ein notify ein?
define SchalterBad notify {if(ReadingsVal('TempBad','temperature',0)<21)} set HeizungBad on
So schon mal nicht...
Da ist schon viel schönes drann ;)
Anführungszeichen als Stichwort und das device nach notify fehlt
Zitat von: crazystone am 19 Dezember 2015, 21:56:04
define SchalterBad notify {if(ReadingsVal('TempBad','temperature',0)<21)} set HeizungBad on
So schon mal nicht...
Nein, aber Du bist nahe dran. Bitte lies das Grundlagendokument, damit Du den Unterschied zwischen "perl-Code" und "fhem Befehlen" verstehst. Du kannst das nicht beliebig mischen.
Und dann lies die commandref Dokumentation zu notify, damit Du den Unterschied zwischen "regexp" (Bedingung) und "Ausführungsteil" eines notify verstehst.
define SchalterBad notify TempBad.temperature.* { if(ReadingsVal('TempBad','temperature',0)<21) { fhem("set HeizungBad on") } }
Oooch betateilchen, jetzt hast du es doch gepostet ;)
VG
Frank
VIELEN DANK!!!! Mach ich...
Zitat von: franky08 am 19 Dezember 2015, 22:05:55
jetzt hast du es doch gepostet
Besser, als sich weiter aufzuregen. Hauptsache Ruhe. Ist doch bald Weihnachten.
...in jedem betateilchen steckt ein guter Kern...besonders an Weihnachten
Hat logischerweise problemlos funktioniert. Danke Euch...beiden ;)