FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fredi69 am 23 November 2021, 08:15:41

Titel: DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 08:15:41
Ich habe ein DOIF gebastelt welches soweit funktioniert, ich aber gerne erweitern würde:

Zwischen Sonnenuntergang und WeihnachtsbeleuchtungAusUm schalte die Beleuchtung ein
([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]])
(set Weihnachtsbeleuchtung on)


Ausserhalb dem Zeitraum Sonnenuntergang und WeihnachtsbeleuchtungAusUm schalte deie Beleuchtung aus aber nur wenn TV aus ist
DOELSEIF ((!([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]])
and [EG.Wz.TV.UE46C8790] eq "disconnected"))
(set Weihnachtsbeleuchtung off)


Ist niemand zu Hause oder im Urlaub schalte die Beleuchtung aus
DOELSEIF  ([Anwesenheitsstatus] eq "abwesend"
or [Anwesenheitsstatus] eq "Urlaub"
or [Adventszeit] eq "off")
(set Weihnachtsbeleuchtung off)


Was mir jetzt fehlt ist die Option, dass wenn im Zeitraum zwischen Sonnenuntergang und WeihnachtsbeleuchtungAusUm der TV eingeschaltet wurde, soll beim ausschalten des TV die Beleuchtung auch vorzeitig ausgeschaltet werden, auch wenn der Zeitpunkt WeihnachtsbeleuchtungAusUm noch nicht erreicht wurde.

Hat da einer eine smarte Idee wie man das in DOIF integriert?

Danke

Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Adimarantis am 23 November 2021, 08:33:58
Einfach ausgedrückt:
Wenn der Fernseher ausgeht, soll eigentlich IMMER die Weihnachtsbeleuchtung ausgeschaltet werden, oder?
Nimm doch einfach die Fernseherbedingung aus dem einen Zweig raus und mach einen neuen Zweig nur mit Fernseher aus - oder übersehe ich einen Fall?
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 08:46:45
Danke für die Antwort, ich blicke es aber irgendwie nicht.
Ich müsste ja einen Zweig haben der prüft ob im Zeitraum zwischen Sonnenuntergang und WeihnachtsbeleuchtungAusUm der Fernseher eingeschaltet wurde und diesen Zweig dann nur beenden wenn der Fernseher ausgeschaltet wird.
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Adimarantis am 23 November 2021, 11:59:44
Wenn der Fernseher ausgeht dann Beleuchtung aus - ob sie wirklich bereits an war ist doch nicht relevant - eine bereits abgeschaltete Beleuchtung nochmal abzuschalten tut ja nicht weh.
Der Trigger ist ja die Zustandsänderung "Fernseher geht aus"
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 12:15:49
Die beiden Zeitbereiche sind in dem Konstrukt sowieso problematisch, das macht man eigentlich wenn der zweite Zweig DOELSE ist. Du machst jetzt z.B. immer on und "im Sommer" gleich wieder off  ::)

Ich würde nur zwei Zweige machen, Ausführungsteil orientiert -> on -> off
Mal anhand Deiner bisherigen Bedingungen umgestellt
Der on Teil
([[Sonnenuntergang]] and [Adventszeit] ne "off" and [Anwesenheitsstatus] ne "Urlaub")
(set Weihnachtsbeleuchtung on)

Der off Teil
DOELSEIF ([[WeihnachtsbeleuchtungAusUm]] and [EG.Wz.TV.UE46C8790] eq "disconnected" or [Anwesenheitsstatus] eq "abwesend" )
(set Weihnachtsbeleuchtung off)


Was bei deinem Fernseher an und aus ist habe ich nicht verstanden ;)
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 13:00:00
Herzlichen Dank für Eure Unterstützung.

Zitat von: Otto123 am 23 November 2021, 12:15:49...
Der on Teil
([[Sonnenuntergang]] and [Adventszeit] ne "off" and [Anwesenheitsstatus] ne "Urlaub")
(set Weihnachtsbeleuchtung on)

Der off Teil
DOELSEIF ([[WeihnachtsbeleuchtungAusUm]] and [EG.Wz.TV.UE46C8790] eq "disconnected" or [Anwesenheitsstatus] eq "abwesend" )
(set Weihnachtsbeleuchtung off)
Muss dann aber and [Anwesenheitsstatus] eq "Urlaub" nicht auch in den unteren "off Teil"?

Zitat von: Otto123 am 23 November 2021, 12:15:49
Was bei deinem Fernseher an und aus ist habe ich nicht verstanden ;)
An ist "opened" und aus ist "disconnected"
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 13:04:22
bez. Urlaub: Wenn es im Urlaub nicht anschaltet? Muss es doch auch nicht ausgeschaltet werden?
bez. Fernseher: Ich meine in meinem Vorschlag geht das Licht aus wenn der Fernseher ausgeht, das war doch das Ziel? Es geht allerdings nicht an, wenn nach Sonnenuntergang der Fernseher an geht.
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 13:11:13
Zitat von: Otto123 am 23 November 2021, 13:04:22
bez. Urlaub: Wenn es im Urlaub nicht anschaltet? Muss es doch auch nicht ausgeschaltet werden?
Korrekt
Zitat von: Otto123 am 23 November 2021, 13:04:22
bez. Fernseher: Ich meine in meinem Vorschlag geht das Licht aus wenn der Fernseher ausgeht, das war doch das Ziel?
Ja, das war das Ziel

Ist es jetzt aber ohne die Zeitspanne nicht so, das wenn erst nach [WeihnachtsbeleuchtungAusUm] der Fernseher aus geht, das Licht an bleibt?
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 13:16:13
stimmt - Du musst and durch or ersetzen  ::)
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 13:24:08
So würde es dann nach Deinem Vorschlag aussehen:
([[Sonnenuntergang]]
and [Adventszeit] ne "off"
and [Anwesenheitsstatus] ne "Urlaub")
(set Weihnachtsbeleuchtung on)
DOELSEIF ([[WeihnachtsbeleuchtungAusUm]]
or [EG.Wz.TV.UE46C8790] eq "disconnected"
or [Anwesenheitsstatus] eq "abwesend" )
(set Weihnachtsbeleuchtung off)

Hier ist es dann aber doch so, dass das Licht nicht an bleibt wenn der Fernseher noch an ist?
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 13:53:29
Dann musst Du dann doch den Status zweimal verknüpfen:

([[WeihnachtsbeleuchtungAusUm]] and [EG.Wz.TV.UE46C8790] eq "disconnected"
or [EG.Wz.TV.UE46C8790] eq "disconnected"
or [Anwesenheitsstatus] eq "abwesend" )

Sollte ohne weiter Klammern funktionieren.
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 14:41:06
ok, vielen herzlichen Dank nochmals.
Leider fehlt zu meiner ursprünglichen DOIF Variante mit den Zeitbereichen noch die Abweseheitserkennung.
Es war ja so, dass das Licht nur bei [Anwesenheitsstatus] eq "anwesend" einschaltet und auch zwischen [Sonnenuntergang] und [WeihnachtsbeleuchtungAusUm] beim Wechsel auf [Anwesend] automatisch einschaltet, wie könnte ich denn das noch in der neuen Variante einbauen?
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 14:49:33
ZitatLeider fehlt zu meiner ursprünglichen DOIF Variante mit den Zeitbereichen noch die Abweseheitserkennung.
Naja Dir fehlt die Anwesenheitserkennung :)

Dann musst Du dort doch nochmal den Bereich hinzunehmen
( ( [[Sonnenuntergang]] and [Adventszeit] ne "off" and [Anwesenheitsstatus] ne "Urlaub" ) or ( [[Sonnenuntergang] - [WeihnachtsbeleuchtungAusUm]] and [Anwesenheitsstatus] eq "anwesend") )

Geht vielelicht auch anders?
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 14:54:46
ok, so werde ich es testen.
Herzlichen Dank nochmals.
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 16:00:15
Zitat von: Otto123 am 23 November 2021, 14:49:33
Dann musst Du dort doch nochmal den Bereich hinzunehmen
( ( [[Sonnenuntergang]] and [Adventszeit] ne "off" and [Anwesenheitsstatus] ne "Urlaub" ) or ( [[Sonnenuntergang] - [WeihnachtsbeleuchtungAusUm]] and [Anwesenheitsstatus] eq "anwesend") )

Eine Frage noch, ist damit aber nicht so, das zwischen [Sonnenuntergang] - [WeihnachtsbeleuchtungAusUm] die Beleuchtung auch eingeschaltet ist unabhängig von Adventszeit und Anwesenheitsstatus?
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 18:42:47
Na dann haben wir ja bald alle Varianten durch. Weihnachten ist ja immer wieder spannend :)
( [[Sonnenuntergang] - [WeihnachtsbeleuchtungAusUm]] and [Adventszeit] ne "off" and [Anwesenheitsstatus] eq "anwesend" and [Anwesenheitsstatus] ne "Urlaub" )

Sollte dann als Gerüst für weitere Erweiterungen gut sein ;)
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Fredi69 am 23 November 2021, 19:19:01
Danke, dann sind wir jetzt aber doch beim ursprünglichen Zeitbereich wieder gelandet.
Titel: Antw:DOIF vorzeitig beeenden
Beitrag von: Otto123 am 23 November 2021, 19:37:48
aber gaanz anders ;)