FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: crazystone am 19 Dezember 2015, 20:37:22

Titel: ..mein ersten "notify" will nicht
Beitrag von: crazystone am 19 Dezember 2015, 20:37:22
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!
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: betateilchen am 19 Dezember 2015, 20:54:44
(TempBad:temperature<21)

Es wäre mir neu, dass das eine gültige regexp wäre. Wo hast Du sowas ausgegraben?
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: crazystone am 19 Dezember 2015, 21:30:56
 :-\
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...
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: betateilchen am 19 Dezember 2015, 21:35:58
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.
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: franky08 am 19 Dezember 2015, 21:39:27
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
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: crazystone am 19 Dezember 2015, 21:56:04
...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...
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: franky08 am 19 Dezember 2015, 22:01:38
Da ist schon viel schönes drann  ;)

Anführungszeichen als Stichwort und das device nach notify fehlt
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: betateilchen am 19 Dezember 2015, 22:02:38
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") } }


Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: franky08 am 19 Dezember 2015, 22:05:55
Oooch betateilchen, jetzt hast du es doch gepostet  ;)

VG
Frank
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: crazystone am 19 Dezember 2015, 22:09:23
VIELEN DANK!!!! Mach ich...
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: betateilchen am 19 Dezember 2015, 22:15:48
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.
Titel: Antw:..mein ersten "notify" will nicht
Beitrag von: crazystone am 19 Dezember 2015, 22:17:10
...in jedem betateilchen steckt ein guter Kern...besonders an Weihnachten

Hat logischerweise problemlos funktioniert. Danke Euch...beiden  ;)