[gelöst]Einfachstes DOIF funktioniert nicht

Begonnen von mumpitzstuff, 25 April 2017, 00:14:29

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Ich probiere nun schon seit Tagen ein inzwischen völlig abgespecktes DOIF zum laufen zu kriegen und es will einfach nicht klappen. Kann mir jemand bitte einen Hinweis geben?

defmod BLUMEN_GIESSEN_DI DOIF ([09:00-01:00] && [":stateSoilMoisture:"] eq "ok")\
(\
  set PUSHBULLET message Blumen gießen\
)
attr BLUMEN_GIESSEN_DI cmdState send notifications|notifications pending
attr BLUMEN_GIESSEN_DI do always
attr BLUMEN_GIESSEN_DI room FLOWERS

setstate BLUMEN_GIESSEN_DI initialized
setstate BLUMEN_GIESSEN_DI 2017-04-25 00:05:07 Device Yucca
setstate BLUMEN_GIESSEN_DI 2017-04-25 00:04:32 cmd 0
setstate BLUMEN_GIESSEN_DI 2017-04-25 00:05:07 matched_event_c1_1 stateSoilMoisture: ok
setstate BLUMEN_GIESSEN_DI 2017-04-25 00:04:32 state initialized
setstate BLUMEN_GIESSEN_DI 2017-04-25 00:04:32 timer_01_c01 25.04.2017 09:00:00
setstate BLUMEN_GIESSEN_DI 2017-04-25 00:04:32 timer_02_c01 25.04.2017 01:00:00



Das Ding soll mir einfach nur eine Nachricht schicken, wenn eine meiner Blumen gegossen werden muss. Das Reading stateSoilMoisture muss dann eigentlich auf low stehen, zu Testzwecken habe ich aber ok abgefragt. Ein Match gibts auch irgendwie, aber eine Nachricht wird nicht verschickt. Nur wenn ich den Zweig manuell triggere, erhalte ich eine Nachricht.

supernova1963

Auf den ersten laienhaften Blick, würde ich versuchen das Ereignis auszulösen z.B. Batterie des Feuchtigkeitssensors innerhalb des vorgegebenen Zeitraums entfernen und nach 10 sec wieder einsetzen.

Mir haben bei komplexen DOIF's die DOIFTOOLS geholfen. Mittlerweile setze ich für weniger komplexe Steuerungen jedoch NOTIFY ein.

LG

Gernot

Thorsten Pferdekaemper

Hi,
ich glaube, Du meinst...

defmod BLUMEN_GIESSEN_DI DOIF ([?09:00-01:00] && ...

Das Fragezeichen ist laut Commandref wichtig.
Gruß,
   Thorsten
FUIP

CoolTux

Ein list vom Device könnte eventuell Aussagekräftiger sein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Damian

[":stateSoilMoisture:"]

ist keine korrekte Readingdefinition der Art: [<devicename>:<readingname>]

siehe: https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mumpitzstuff

Zitat von: supernova1963 am 25 April 2017, 05:47:01
Auf den ersten laienhaften Blick, würde ich versuchen das Ereignis auszulösen z.B. Batterie des Feuchtigkeitssensors innerhalb des vorgegebenen Zeitraums entfernen und nach 10 sec wieder einsetzen.

Mir haben bei komplexen DOIF's die DOIFTOOLS geholfen. Mittlerweile setze ich für weniger komplexe Steuerungen jedoch NOTIFY ein.

LG

Gernot

Ich habe ein notify mit watchdog bereits am laufen. Ich wollte mich nur mal mit DOIF beschäftigen und habe deshalb ein vermeintlich einfaches Beispiel gewählt.

mumpitzstuff

Zitat von: Thorsten Pferdekaemper am 25 April 2017, 07:55:51
Hi,
ich glaube, Du meinst...

defmod BLUMEN_GIESSEN_DI DOIF ([?09:00-01:00] && ...

Das Fragezeichen ist laut Commandref wichtig.
Gruß,
   Thorsten

Hatte ich auch schon mal probiert, es scheint aber an der anderen Bedingung zu hängen und nicht an der Zeit.

mumpitzstuff

([09:00-01:00] && [":stateSoilMoisture: ok"])

Mit dieser Bedingung scheint es irgendwie zu gehen. Man findet leider in den Foren, im Wiki usw. verschiedenste Informationen und Varianten und es ist deshalb nicht wirklich einfach das entsprechend Richtige raus zu suchen. Ich habe jetzt zumindest mal einen Startpunkt und kann jetzt schrittweise weiter machen. Die Wiki Seite könnte vielleicht mal aktualisiert werden in diesem Zusammenhang, denn dort habe ich zuerst nachgesehen und man wird am wenigsten schlau daraus (genauso wie aus den x Varianten aus dem Forum). Commandref lesen wäre an dieser Stelle tatsächlich besser gewesen.