FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gubbl am 22 Februar 2014, 17:46:28

Titel: Probleme mit notify
Beitrag von: gubbl am 22 Februar 2014, 17:46:28
Hallo allerseits,

Ich weiß nicht, ob ich das Konzept von notify noch nicht verstanden habe, aber irgendwie habe ich Probleme damit.

Ich nutze notify z.B. schon erfolgreich für das Mappen von Tastern auf Rolläden, kein Problem.

Nun möchte ich das aber gerne auch für andere Sachen nutzen, wie zum Beispiel für eine Meldung, wenn meine Boilertemperatur zu tief sinkt.
Dafür brauche ich dann - anders als bisher - auch einen Wert, die Temperatur.

Zum Testen hab ich also erstmal folgendes notify ausprobiert:

define testNotify notify boiler_temp:temperature {Log 3, %;;}

Keine Logeinträge.

Gehe ich jedoch den Umweg und schreibe stattdessen

define testNotify notify boiler_temp:temperature {\
my $temp=ReadingsVal("boiler_temp","temperature","999.9");;\
  Log (3, $temp);;\
}


dann bekomme ich die Einträge.

Daher die Vermutung, dass an boiler_temp:temperature vermutlich etwas falsch ist. Komme aber nicht drauf, was das ist.

Gruß,
Julian
Titel: Antw:Probleme mit notify
Beitrag von: jjf am 23 Februar 2014, 12:03:04
Darauf bin ich eben auch gestossen:
(aus der Webanzeige)

WetterTest2:
DEF    gdsBrk {myWetter();}                         geht: ergibt 12 Aufrufe bei "get gdsBrk conditions Frankfurt/M-Flh."
2014.02.23 10:19:48 5: Triggering Wetter_Test
2014.02.23 10:19:48 4: Wetter_Test exec set Wetterdummy gdsBrk g_weather: stark bewölkt
2014.02.23 10:19:48 5: Triggering Wetter_Test
2014.02.23 10:19:48 4: Wetter_Test exec set Wetterdummy gdsBrk g_pressure-nn: 1024.2

Wetter_Test:
DEF    gdsBrk:*       set Wetterdummy @ %   geht!
DEF    gdsBrk:*_w* set Wetterdummy @ %   geht nicht: liefert keine Ereignisse im "Event monitor"

wobei gdsBrk vom Typ GDS ist.

Wie kann ich nur auf das Ereigniss: "gdsBrk c_weather" reagieren?

Ich habe das Problem folgendermassen umgangen:
DEF    gdsBrk {myWetterTest("%");}
Dabei analysiere ich die Ereignisse in der Unterroutine.

Joachim
Titel: Antw:Probleme mit notify
Beitrag von: Rince am 23 Februar 2014, 12:20:04
@gubbl
Ja, den Eindruck könnte man bekommen  8)
Aber das macht nix, jeder hat mal angefangen.

Was du brauchst, ist eine if Konstruktion in deinem Notify.

Logfiles sind i.d.R. (außer für Forensiker und SVG Plots) Vergangenheitsbewältigung.


Dein Notify sollte etwa den Aufbau haben:

Reagieren wenn sich die Temperatur geändert hat, dann prüfen ob ein Sollwert unterschritten wird, und dann, wenn er unterschritten ist, etwas tun.
Titel: Antw:Probleme mit notify
Beitrag von: Hans Franz am 23 Februar 2014, 13:30:53
@gubbl
Versuch mal:
{Log 3, "%";;}

Besser aber:
{Log 3, $EVENT;;}

Gruß
Hans
Titel: Antw:Probleme mit notify
Beitrag von: Rince am 23 Februar 2014, 13:43:45
???
Ich weiß immer noch nicht, was das mit den Logfiles soll. Klärt mich mal wer auf?

Ein
list boiler_temp
erschiene mir hilfreicher. Dann könnte man nämlich  prüfen, ob das Reading stimmt.
Titel: Antw:Probleme mit notify
Beitrag von: Hans Franz am 23 Februar 2014, 14:41:09
Zitat von: Rince am 23 Februar 2014, 13:43:45

Ich weiß immer noch nicht, was das mit den Logfiles soll.
Dient wohl nur zur Syntaxprüfung. Mach' ich als Anfänger auch ständig.

Gruß
Hans
Titel: Antw:Probleme mit notify
Beitrag von: Rince am 23 Februar 2014, 15:02:29
Nun ja.
Wenn ihr dann die Logeinträge habt, können wir mit dem list weitermachen und der benötigten if Konstruktion.  ::)
Titel: Antw:Probleme mit notify
Beitrag von: gubbl am 23 Februar 2014, 23:06:18
Hallo,

Wie Hans richtig vermutet hat, nehme ich den Log-Befehl einfach immer nur, um zu prüfen ob ein notify ausgelöst wird.

Da bei
define testNotify notify boiler_temp:temperature {Log 3, %;;}
und auch bei
define testNotify notify boiler_temp:temperature {Log 3, "hallo";;}
keine Logmeldung auftaucht, bei
define testNotify notify boiler_temp {Log 3, "hallo";;}
aber schon, kann es eigentlich nur daran liegen, dass kein notify für boiler_temp:temperature ausgelöst wird.

Die spätere Anwendung wäre etwa so:
define testNotify notify boiler_temp:temperature {\
  if(%<45){\
    <sende Email>
  }\
}


Gruß, Julian
Titel: Antw:Probleme mit notify
Beitrag von: Rince am 24 Februar 2014, 06:13:34
Wenn du dann mal Zeit hast das obige list auszuführen, könnten wir uns um den spannenden Teil vom Notify kümmern.
Titel: Antw:Probleme mit notify
Beitrag von: gubbl am 28 Februar 2014, 22:28:23
Da ich leider immer nur am Wochenende daheim beim fhem bin, schreib ich erst jetzt zurueck.

Das Problem war ein viel simpleres, durch einfaches Ausprobieren gefunden:
Statt
define checkBoiler notify boiler_temp:temperature [...]
haette ich einfach nur
define checkBoiler notify boiler_temp:temperature.* [...]
schreiben muessen.

Dumm gelaufen, trotzdem danke fuer die Antworten!

Gruss,
Julian