DOIF Außenbeleuchtung dimmen

Begonnen von C_hris, 07 Februar 2020, 13:05:48

Vorheriges Thema - Nächstes Thema

C_hris

Hi zusammen,

folgendes habe ich implementiert. Es ist noch nicht 100% durchgetestet aber es sollte ganz gut funktionieren. Ein DOIF, das meine Außenbeleuchtung anhand des Twilightmoduls (Reading "light") zu den gewünschten Zeiten (abends zwischen 17:00 und 23:00 und morgens zwischen 06:30 und 08:00) auf den gewünschten Wert dimmt. Also je dunkler es draußen wird, desto dunkler/dezenter (und umgekehrt) wird meine Außenbeleuchtung am Haus.

Ich bin kein Programmierer und ein Freund von lesbarem Code, den ich auch nach einem Jahr noch verstehe. Daher habe ich das so gemacht:

([tl_twilight:light] eq 0 and ([17:00-23:00] or [06:30-08:00]))
(set po_Pushover_Client msg 'Twilight' 'Außenbeleuchtung auf 25' '' 0 ''; set out_Licht_Hauswand_Dim 25)

DOELSEIF ([tl_twilight:light] eq 1 and ([17:00-23:00] or [06:30-08:00]))
(set po_Pushover_Client msg 'Twilight' 'Außenbeleuchtung auf 50' '' 0 ''; set out_Licht_Hauswand_Dim 50)

DOELSEIF ([tl_twilight:light] eq 2 and ([17:00-23:00] or [06:30-08:00]))
(set po_Pushover_Client msg 'Twilight' 'Außenbeleuchtung auf 75' '' 0 ''; set out_Licht_Hauswand_Dim 75)

DOELSEIF ([tl_twilight:light] eq 3 and ([17:00-23:00] or [06:30-08:00]))
(set po_Pushover_Client msg 'Twilight' 'Außenbeleuchtung auf 100' '' 0 ''; set out_Licht_Hauswand_Dim 100)

DOELSEIF (([tl_twilight:light] eq 4 or [tl_twilight:light] eq 5 or [tl_twilight:light] eq 6) and ([08:01-16:59] or [23:01-06:29]))
(set po_Pushover_Client msg 'Twilight' 'Außenbeleuchtung aus' '' 0 ''; set out_Licht_Hauswand_Dim 0)


Nun aber meine Frage an euch Profis. Ist das irgendwie megaumständlich oder unperformant für den Compiler? Ist DOIF überhaupt das richtige hier? Mir kommt es passend dafür vor.
Bin einfach nur neugierig wie eure Meinungen so sind.

VG,
Chris

flummy1978

Hallöchen,

ich hänge mich mal als Mitleser dran, weil mich die Antworten auch interessieren. Für mich sieht das interessant und gut aus. Ob es performant ist, müssen die Profis entscheiden.

Damit ich aber was zum Thema beitragen kann, habe ich mal etwas gesucht (Stichwort Vergleichsoperatoren), da ich keine Ahnung von DOIF hab, ist mein Tipp mit Vorsicht zu genießen  ::)

Zitat von: C_hris am 07 Februar 2020, 13:05:48
DOELSEIF (([tl_twilight:light] eq 4 or [tl_twilight:light] eq 5 or [tl_twilight:light] eq 6) and ([08:01-16:59] or [23:01-06:29]))
(set po_Pushover_Client msg 'Twilight' 'Außenbeleuchtung aus' '' 0 ''; set out_Licht_Hauswand_Dim 0)

Zitat von: Damian
Wie du der Liste entnehmen kannst, kannst du ebenfalls Operatoren ><=nehmen, aber nur bei Zahlen
Sprich, Du kannst DOELSEIF (([tl_twilight:light] >= 4) ... nehmen um es noch kürzer zu fassen (damit hast Du die 2 oder oder Abfragen weniger drin ;)

Nur meine bescheidenen 2Cent.

Grüße
Andreas

C_hris