Hallo zusammen, ich sehe den Wald vor lauter Klammern mal wieder nicht. Könnte mir jemand helfen das zu verstehn?
([07:22]) (IF ([Gartenventil:heute] eq {strftime("%Y-%m-%d",localtime())}) ({fhem "set DY_Gartenventil ".ReadingsVal("Gartenventil","daily_irrigation_volume",0)}))
Die Fehlermeldung dazu:
2026.07.09 07:28:00 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 6818874) line 1.
2026.07.09 07:28:00 3: eval: {if(ReadingValIf('Gartenventil','heute','') eq {strftime("%Y-%m-%d",localtime())}){fhem "set DY_Gartenventil ".ReadingsVal("Gartenventil","daily_irrigation_volume",0)}}
Die geschweiften Klammern in der IF-Bedingung sind zu viel.
So etwas löst man allerdings ohne IF:
([07:22] and [?Gartenventil:heute] eq $ymd) ({fhem "set DY_Gartenventil ".ReadingsVal("Gartenventil","daily_irrigation_volume",0)})
in Gartenventil:heute muss dann stehen: jj-mm-tt jeweils als zweistellige Zahl
Danke, das ist ja einfach. Die Konstante $ymd kannte ich noch nicht.
Zitat von: romakrau am 09 Juli 2026, 23:31:30Danke, das ist ja einfach. Die Konstante $ymd kannte ich noch nicht.
Noch einfacher ist es mit:
([07:22] and [?Gartenventil:heute] eq $ymd) (set DY_Gartenventil [Gartenventil:daily_irrigation_volume])
Zu früh gefreut. Die Kurzform hat nicht funktioniert. Diese Version erzielt das gewünschte Ergebnis:
([05:32]) (IF ([Gartenventil:heute] eq strftime("%y-%m-%d",localtime())) ({fhem "set DY_Gartenventil ".ReadingsVal("Gartenventil","daily_irrigation_volume",0)}))
Gewünscht war ein Event um den Wert des täglichen Verbrauchs in ein log-File zu schreiben.