..mein ersten "notify" will nicht

Begonnen von crazystone, 19 Dezember 2015, 20:37:22

Vorheriges Thema - Nächstes Thema

crazystone

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!

betateilchen

(TempBad:temperature<21)

Es wäre mir neu, dass das eine gültige regexp wäre. Wo hast Du sowas ausgegraben?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

crazystone

 :-\
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...

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

#4
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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

crazystone

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

franky08

Da ist schon viel schönes drann  ;)

Anführungszeichen als Stichwort und das device nach notify fehlt
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

betateilchen

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") } }


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

Oooch betateilchen, jetzt hast du es doch gepostet  ;)

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

crazystone


betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

crazystone

...in jedem betateilchen steckt ein guter Kern...besonders an Weihnachten

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