Hauptmenü

IsDay und DOIF

Begonnen von Per, 07 Dezember 2016, 11:58:23

Vorheriges Thema - Nächstes Thema

Per

Nachdem ich mich eine Weile mit isday rumgeärgert habe (z.B. "real"), löste ich das Ganze mit einer DOIF-konformen Variante:
define isdayreal DOIF (sunset_rel("real")) DOELSEIF (sunrise_rel("real"))
attr isdayreal cmdState night|day


Vorteile:
- nur ein Timer für alle Abfragen (ich brauch das an verschiedenen Stellen)
- ggü. isday es wird ein Ereignis erzeugt (ich muss nicht mehr zwei Abfragen für Helligkeit und Zeit mache, wenn ich beides als Auslöser brauche, und ja, ich kenne die Parameter für sunrise/sunset)
- ggü. sunrise/sunset wird nur ein Ereignis erzeugt (Last geht runter, wenn ich es mehrfach brauche)
- saubere Reaktion auf "real", was mir mit isday("real") nicht gelungen ist
- ich bekomme das Ergebnis im Frontend angezeigt
- zu Testzwecken kann ich es ändern (muss nicht auf den Zeitpunkt warten und kann nur einmal pro Tag testen)
- arbeitet auf Fhem-Ebene (muss mich also nicht mit Perl-Klammern "rumärgern")

Nachteile:
- nicht wirklich: für abweichende Zeitpunkte benötigt man zwar weiterhin separate Abfragen, aber das ist zumindest nicht mehr Aufwand als vorher, da man diese vorher auch brauchte

Braucht man zusätzliche

Superrakete

Leider funktioniert das nicht mehr so.

Mit ein paar Klammern geht`s dann wieder:

define isdayreal DOIF ([{sunset("REAL")}]) DOELSEIF ([{sunrise("REAL")}])
attr isdayreal cmdState night|day

Mr.1000V

Geht bei mir so nicht.....
mMn muss aus dem DOELSEIF ein DOELSE gemacht werden.

define isdayreal DOIF ([{sunset("REAL")}]) DOELSE ([{sunrise("REAL")}])

dann funzt es.
;)

Per

Nein, DOIELSIF ist richtig. Du fragst ja was ab und führst nix aus.

kumue

Zitat von: Per am 15 Januar 2020, 16:34:21
Nein, DOIELSIF ist richtig. Du fragst ja was ab und führst nix aus.

DOIELSIF  :o

Mr.1000V

Hallo,
ja ok.... was soll mein dummes Geschwätz von gestern?
War mein Fehler, sorry für die Aufregung.