DOIF: Auslösen entweder zu Zeitpunkt oder durch Trigger in Zeitraum

Begonnen von heikoh81, 15 März 2016, 19:20:06

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo zusammen,

wenn mein TV eingeschaltet wird (presence-Funktion), soll ein Aktor eingeschaltet werden, aber nur, wenn ein bestimmter Zeitpunkt erreicht ist (sprich Dämmerung).
Tagsüber brauche ich die Akzentbeleuchtung nicht.

Andererseits kann es aber auch vorkommen, dass der Fernseher schon nachmittags an ist und der Dämmerungszeitpunkt erreicht wird.
Dann soll de Aktor durch das Eintreten der Uhrzeit getriggert werden.

Ich hatte zuerst folgendes DOIF, was aber nicht funktioniert hat (attr do always).

(
([{sunset_abs(-3000,"16:00:43","22:30:43")}-23:59:00] and [TVWohnzimmer] eq "present")
and [?TVWohnzimmerSteuertVitrine] eq "on"
)
(set NAME=PollinWohnzimmerVitrine:FILTER=STATE=off on)
DOELSEIF ([TVWohnzimmer:"absent"] and [?TVWohnzimmerSteuertVitrine] eq "on")
(set NAME=PollinWohnzimmerVitrine:FILTER=STATE=on off)
DOELSE ()



Erst dieses DOIF hat die gewünschte Wirkung.

(
([{sunset_abs(-3000,"16:00:43","22:30:43")}-23:59:00] and [?TVWohnzimmer] eq "present")
or ([?{sunset_abs(-3000,"16:00:43","22:30:43")}-23:59:00] and [TVWohnzimmer] eq "present")
and [?TVWohnzimmerSteuertVitrine] eq "on"
)
(set NAME=PollinWohnzimmerVitrine:FILTER=STATE=off on)
DOELSEIF ([TVWohnzimmer:"absent"] and [?TVWohnzimmerSteuertVitrine] eq "on")
(set NAME=PollinWohnzimmerVitrine:FILTER=STATE=on off)
DOELSE ()



Geht es auch irgendwie einfacher?
Viele Grüße,
Heiko

Sirel

Hallo Heiko,

Dein erstes Beispiel war schon gut, glaube nur ein paar Klammern zu viel. Probier mal so:

([{sunset_abs(-3000,"16:00:43","22:30:43")}-23:59:00] and [TVWohnzimmer] eq "present" and [?TVWohnzimmerSteuertVitrine] eq "on") (set...)

Do always brauchst Du bei diesem Ansatz nicht.

Zum ausschalten passt der rest Deines Codes...

Viele Grüße,
Max

heikoh81