FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: romakrau am 09 Juli 2026, 07:28:57

Titel: [gelöst] DOIF mit IF, Klammern setzen
Beitrag von: romakrau am 09 Juli 2026, 07:28:57
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)}}
Titel: Aw: DOIF mit IF, Klammern setzen
Beitrag von: Damian am 09 Juli 2026, 17:53:15
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
Titel: Aw: DOIF mit IF, Klammern setzen
Beitrag von: romakrau am 09 Juli 2026, 23:31:30
Danke, das ist ja einfach. Die Konstante $ymd kannte ich noch nicht.
Titel: Aw: [gelöst] DOIF mit IF, Klammern setzen
Beitrag von: Damian am 10 Juli 2026, 07:52:47
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])
Titel: Aw: [gelöst] DOIF mit IF, Klammern setzen
Beitrag von: romakrau am 11 Juli 2026, 05:34:51
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.