Hallo !
Ich habe folgendes Notify angelegt
ZitatMeinWetter if ([MeinWetter:humidity] > 80) (set push2 message Test H6 )
MeinWetter bezieht die Daten vom dem Modul Weather.
Mein Problem ich bekomme bestimmt 5 bis 10 PUSH Meldung !
Wo liegt der Fehler ?
Danke für eure Hilfe
Zitat von: heikom am 03 März 2015, 08:19:12
Wo liegt der Fehler ?
Es muss IF heißen.
if = Perl-if
IF=FHEM-IF
Das sind zwei verschiedene Dinge mit unterschiedlicher Notation.
Wenn ich IF groß schreibe gleiches Fehlerbild , immer noch mehrere Meldungen
Um so einen Fehler zu analysieren benötigen wir die ganze Definition des fehlerhaften notifies und des Devices auf dessen Events reagiert wird. Ohne das kann man idR nur raten. In diesem Fall ist allerdings ein Fehler offensichtlich: Jedes mal wenn das notify ausgelöst wird, prüfst du ob die Luftfeuchtigkeit höher als 80% ist und sendest eine Pushnachricht. D.h. sobald die Luftfeuchtigkeit die 80%-Marke überschreitet wird jedes mal wenn das notify ausgelöst wird auch eine Nachricht gesendet. notify ist für die Aufgabe nicht unbedingt geeignet, sie dir mal http://fhem.de/commandref_DE.html#THRESHOLD an.
Oder so:
define MeinWetter DOIF ([MeinWetter:humidity] > 80) (set push2 message Test H6 )
Das würde einmal eine Nachricht schicken, wenn humidity die 80 überschreitet und dann erst wieder, wenn sie zwischenzeitlich unter 81 abgesunken war.
@Brockmann Danke bist jetzt geht es :-)
@nesges Auch dir Danke , Aber mein Problem war das bei jedem auslösen des Notify ca 5 Meldungen kammen . der Rest war mir schon klar das bei dem Update der Wettermeldung eine Nachricht kommt , aber doch keine 5 Push´s
Ok noch mal DANKE
Zitat von: heikom am 03 März 2015, 09:22:39
Aber mein Problem war das bei jedem auslösen des Notify ca 5 Meldungen kammen .
Das lag dann vermutlich daran, dass die RegEx Deines notify zu allgemein war. Der Sensor erzeugt pro Messung mehr als ein Event (siehe Eventmonitor). Das musst Du entweder einschränken, so dass nur das gewünschte Event erzeugt wird. Oder Du musst das notify so definieren, dass es nur auf das gewünschte Event reagiert und die anderen ignoriert.
Aber wie schon geschrieben wurde: Es ist immer sinnvoll, die gesamte Definition zu posten, mit der man ein Problem hat. Das macht das Helfen leichter und auch in diesem Fall wäre das eigentliche Problem sicher schneller erkannt worden.
so ?
ZitatInternals:
DEF 12835328 60 de
INTERVAL 60
LANG de
LOCATION 12835328
NAME MeinWetter
NR 11
STATE T: 0 H: 88 W: 11
TYPE Weather
UNITS c
Readings:
2015-03-03 10:00:55 city Freisen, Germany
2015-03-03 10:00:55 code 32
2015-03-03 10:00:55 condition sonnig
2015-03-03 10:00:55 current_date_time 03 Mar 2015 9:00 am CET
2015-03-03 10:00:55 day_of_week Di
2015-03-03 10:00:55 fc1_code 30
2015-03-03 10:00:55 fc1_condition teilweise wolkig
2015-03-03 10:00:55 fc1_day_of_week Di
2015-03-03 10:00:55 fc1_high_c 9
2015-03-03 10:00:55 fc1_icon partly_cloudy
2015-03-03 10:00:55 fc1_low_c -2
2015-03-03 10:00:55 fc2_code 39
2015-03-03 10:00:55 fc2_condition vereinzelt Gewitter
2015-03-03 10:00:55 fc2_day_of_week Mi
2015-03-03 10:00:55 fc2_high_c 6
2015-03-03 10:00:55 fc2_icon scatteredthunderstorms
2015-03-03 10:00:55 fc2_low_c -1
2015-03-03 10:00:55 fc3_code 30
2015-03-03 10:00:55 fc3_condition teilweise wolkig
2015-03-03 10:00:55 fc3_day_of_week Do
2015-03-03 10:00:55 fc3_high_c 6
2015-03-03 10:00:55 fc3_icon partly_cloudy
2015-03-03 10:00:55 fc3_low_c -2
2015-03-03 10:00:55 fc4_code 34
2015-03-03 10:00:55 fc4_condition heiter
2015-03-03 10:00:55 fc4_day_of_week Fr
2015-03-03 10:00:55 fc4_high_c 8
2015-03-03 10:00:55 fc4_icon mostly_sunny
2015-03-03 10:00:55 fc4_low_c -1
2015-03-03 10:00:55 fc5_code 30
2015-03-03 10:00:55 fc5_condition teilweise wolkig
2015-03-03 10:00:55 fc5_day_of_week Sa
2015-03-03 10:00:55 fc5_high_c 9
2015-03-03 10:00:55 fc5_icon partly_cloudy
2015-03-03 10:00:55 fc5_low_c 1
2015-03-03 10:00:55 humidity 88
2015-03-03 10:00:55 icon sunny
2015-03-03 10:00:55 pressure 1024
2015-03-03 10:00:55 pressure_trend 1
2015-03-03 10:00:55 pressure_trend_sym +
2015-03-03 10:00:55 pressure_trend_txt steigend
2015-03-03 10:00:55 state T: 0 H: 88 W: 11
2015-03-03 10:00:55 temp_c 0
2015-03-03 10:00:55 temp_f 32
2015-03-03 10:00:55 temperature 0
2015-03-03 10:00:55 visibility
2015-03-03 10:00:55 wind 11
2015-03-03 10:00:55 wind_chill -3
2015-03-03 10:00:55 wind_condition Wind: W 11 km/h
2015-03-03 10:00:55 wind_direction 270
2015-03-03 10:00:55 wind_speed 11
Fhem:
interfaces temperature;humidity;wind
Attributes:
room Wettervorhersage
ZitatInternals:
DEF MeinWetter:humidity.* > 80 set push2 message Test H8
NAME Luftfeuchtealarm
NOTIFYDEV MeinWetter
NR 196
NTFY_ORDER 50-Luftfeuchtealarm
REGEXP MeinWetter:humidity.*
STATE 2015-03-03 10:03:00
TYPE notify
Attributes:
notify und wettermodul haben den selben namen?
Zitat von: frank am 03 März 2015, 10:20:56
notify und wettermodul haben den selben namen?
Nee, haben sie nicht.
Da passt aber trotzdem etwas nicht, das DEF vom Notify dürfte so nicht zulässig sein - Copy&Paste-Fehler?
Zitatdefine MeinWetter DOIF ([MeinWetter:humidity] > 80) (set push2 message Test H6 )
sorry, ich meinte doif, nicht notify.
das wäre mein notify:
define myNotify notify MeinWetter.humidity:.* {if($EVTPART1 > 80) {fhem("set push2 message Test H8")}}
Sorry Fehler vom mir
ZitatInternals:
CFGFN
DEF ([MeinWetter:humidity] < 90) (set push2 message Test H62 $NAME $EVENT )
NAME MeinWetter1
NR 1308
NTFY_ORDER 50-MeinWetter1
STATE cmd_1
TYPE DOIF
Readings:
2015-03-04 07:13:11 cmd_event MeinWetter
2015-03-04 07:13:11 cmd_nr 1
2015-03-04 07:14:13 e_MeinWetter_humidity 89
2015-03-04 07:13:11 state cmd_1
Condition:
0 ReadingValDoIf('MeinWetter','humidity','') < 90
Devices:
0 MeinWetter
all MeinWetter
Do:
0 set push2 message Test H62 $NAME $EVENT
Helper:
last_timer 0
sleeptimer -1
Internals:
Readings:
0 MeinWetter:humidity
all MeinWetter:humidity
State:
Timerfunc:
Trigger:
Attributes: