Hallo Community,
ich habe ein Problem, mit einem Notify, welches nicht reagieren mag. Die Notifys HeizungFuellstandLeer und HeizungFuellstandNormal ändern den dummy Heizung.Fuellstand leider nicht. Der Value von Pelletstand ändert sich in meiner Testumgebung alle 5 Sekunden. ich bin etwas ratlos :-(
Setze ich manuell "Set Heizung.Fuellstand leer" wird der untere Teil sammt der Prowl Notification durchgeführt.
define Heizung.Fuellstand dummy
attr Heizung.Fuellstand event-on-change-reading state
attr Heizung.Fuellstand room Heizung
#Heizungsfuellstand Notify
define HeizungFuellstandLeer notify Pelletstand {fhem("set Heizung.Fuellstand leer") if (Value("Pelletstand") < 10)}
define HeizungFuellstandNormal notify Pelletstand {fhem("set Heizung.Fuellstand normal") if (Value("Pelletstand") >= 11)}
#Prowl Notify
define HeizungFuellstandLeerNotify notify Heizung.Fuellstand:leer {prowl("Heizungsbunker leer\nBitte nachfüllen","Heizung","1")}
define HeizungFuellstandNormalNotify notify Heizung.Fuellstand:normal {prowl("Heizung wieder voll\nKeine Aktion erforderlich","Heizung","1")}
Vielleicht hat jemand einen Tipp?
Danke und Gruß,
Thomas
Ich bin zwar auch ein "blutiger Anfänger" aber ...
define HeizungFuellstandLeer notify Pelletstand {fhem("set Heizung.Fuellstand leer") if (Value("Pelletstand") < 10)}
define HeizungFuellstandNormal notify Pelletstand {fhem("set Heizung.Fuellstand normal") if (Value("Pelletstand") >= "11")}
Laut doku muß doch erst das if und dann das Ergebnis kommen ...
also (z.B.) :
{ if (Value("Pelletstand") < 10) { fhem("set Heizung.Fuellstand leer") }}
Hinweis: Alle Angaben ohne Gewähr (s.o.)
Hallo,
und welches der 4 notify funktioniert nicht?
Was sagt das LogFile?
Schonmal die Suche bemüht - wir hatten erst gestern ein notify das nicht reagieren mochte?
ZitatVielleicht hat jemand einen Tipp?
Ja.
Nicht alles posten und wenn dann den relevanten Teil hervorheben.
Grüße
@Werniemann
Falsch.
Ich Perl kann das if auch nach der Anweisung kommen.
ZitatLaut doku muß doch erst das if und dann das Ergebnis kommen ...
Laut welcher Doku?
Bitte einen Link einwerfen - danke.
Hallo,
wie ich im Text geschrieben habe funktionieren die ersten beiden notifys nicht.
Zitat von: thomka am 08 Januar 2014, 09:26:39
Die Notifys HeizungFuellstandLeer und HeizungFuellstandNormal ändern den dummy Heizung.Fuellstand leider nicht.
Laut http://www.fhemwiki.de/wiki/Funktionsbeschreibung_zu_notify
sollte das notify auf Änderungen von "Pelletstand" reagieren.
Das Log bringt für mein Verständnis keine brauchbaren Informationen:
2014.01.08 09:39:34 5: Cmd: >setstate Pelletstand 4.4
<
2014.01.08 09:39:34 5: Triggering global (1 changes)
2014.01.08 09:39:34 5: Notify loop for global DELETED Pellet_timer
2014.01.08 09:39:34 4: eventTypes: Global global DELETED Pellet_timer -> DELETED Pellet_timer
2014.01.08 09:39:34 5: redefine at command Pellet_timer as +*00:00:05 { Entfernungsmessung() }
2014.01.08 09:39:34 5: Triggering global (1 changes)
2014.01.08 09:39:34 5: Notify loop for global DEFINED Pellet_timer
2014.01.08 09:39:34 4: eventTypes: Global global DEFINED Pellet_timer -> DEFINED Pellet_timer
2014.01.08 09:39:35 4: HTTP FHEMWEB:192.168.100.44:51122 GET /fhem?room=Heizung
2014.01.08 09:39:35 4: /fhem?room=Heizung / RL:1199 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.01.08 09:39:35 5: exec at command Pellet_timer
2014.01.08 09:39:35 5: Cmd: >{ Entfernungsmessung() }<
2014.01.08 09:39:36 5: Cmd: >setstate Pelletstand_3 134.7
<
2014.01.08 09:39:36 5: Cmd: >setstate Pelletstand_2 4.4
<
2014.01.08 09:39:36 5: Cmd: >setstate Pelletstand 5.2
<
2014.01.08 09:39:36 5: Triggering global (1 changes)
2014.01.08 09:39:36 5: Notify loop for global DELETED Pellet_timer
2014.01.08 09:39:36 4: eventTypes: Global global DELETED Pellet_timer -> DELETED Pellet_timer
2014.01.08 09:39:36 5: redefine at command Pellet_timer as +*00:00:05 { Entfernungsmessung() }
2014.01.08 09:39:36 5: Triggering global (1 changes)
2014.01.08 09:39:36 5: Notify loop for global DEFINED Pellet_timer
2014.01.08 09:39:36 4: eventTypes: Global global DEFINED Pellet_timer -> DEFINED Pellet_timer
2014.01.08 09:39:37 5: exec at command Pellet_timer
2014.01.08 09:39:37 5: Cmd: >{ Entfernungsmessung() }<
2014.01.08 09:39:38 5: Cmd: >setstate Pelletstand_3 4.4
<
2014.01.08 09:39:38 5: Cmd: >setstate Pelletstand_2 5.2
<
2014.01.08 09:39:38 5: Cmd: >setstate Pelletstand 116.8
Danke und gruß,
Thomas
Hallo,
Event Monitor ist auch immer noch ein guter Geheimtipp ;)
Versuch mal
Pelletstand.*
Grüße
@Puschel74
Danke für den Hinweis, da muß ich meine perl Kentnisse mal wieder aufpolieren
Und als Doku meinte ich die "normale Anfängerdoku für fhem"
Zitatdefine HeizungFuellstandLeer notify Pelletstand {fhem("set Heizung.Fuellstand leer") if (Value("Pelletstand") < 10)}
1. Die Bedingung einleitend zu schreiben hat 2-3 Vorteile, ist aber nicht zwingend. Ich schreibe es auch immer vorne. So oder so: Ich habe das Gefühl, bei deinem Ausdruck fehlt eine Klammerebene. Gegenvorschlag weiter unten.
2. Ich habe noch nicht genau verstanden was dein Problem ist, ähnlich wie Puschel74 beklage ich eine etwas ungenaue Fomulierung: "...mit einem Notify, welches nicht reagieren mag.Die Notifys HeizungFuellstandLeer und HeizungFuellstandNormal ändern den dummy Heizung.Fuellstand leider nicht. "
Was bedeutet das bitte konkret?
- das Notify wird nicht ausgelöst? (das legt deine ERSTER Satz nahe)
- das Notify wird ausgelöst aber führt die set Anweisung nicht aus? (das legt deine ZWEITER Satz nahe)
Um uns dem Problem zu nähern, schreibe das doch bitte mal wie folgt um:
define HeizungFuellstandLeer notify Pelletstand {if (Value("Pelletstand") < 10) {fhem("set Heizung.Fuellstand leer")} }
Gehts damit?