FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fredi69 am 28 Dezember 2017, 20:18:42

Titel: Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Fredi69 am 28 Dezember 2017, 20:18:42
Unsere Weihnachtsbeleuchtung wird aktuell zwischen Sonnenuntergang und einem Dummy eingeschaltet so lange jemand zu Hause ist.
Jetzt möchte ich, das die Beleuchtung aber nicht zum festgelegten Dummy ausgeschaltet wird wenn das TV noch eingeschaltet ist [EG.Wz.TV.UE46C8790] eq "opened"

Hier der Code der bisherigen DOIF
([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend")
(set Weihnachtsbeleuchtung on)
DOELSE
(set Weihnachtsbeleuchtung off)


Hat jemand eine Idee?
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Otto123 am 28 Dezember 2017, 20:23:52
Hi Fredi69,

Du ergänzt einfach Deine Bedingung, falls dein TV irgendwie als Status in FHEM vorhanden ist.
or [TV] eq "on"

Beachte http://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity

Gruß Otto
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Fredi69 am 28 Dezember 2017, 20:31:19
Zitat von: Otto123 am 28 Dezember 2017, 20:23:52
Du ergänzt einfach Deine Bedingung, falls dein TV irgendwie als Status in FHEM vorhanden ist.
or [TV] eq "on"
Gruß Otto

Danke, das ist mir schon klar.
Ich kann wie beschrieben den Status vom TV abfragen:
[EG.Wz.TV.UE46C8790] eq "disconnected" -> TV ist aus
[EG.Wz.TV.UE46C8790] eq "opened" -> TV ist an

Ich habe aber gerade keine Idee wie ich dem DOIF beibringe die Beleuchtung nicht nach "WeihnachtsbeleuchtungAusUm" auszuschalten wenn der TV noch an ist.
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Ellert am 28 Dezember 2017, 20:41:53
Statt DOELSE müsstest Du DOELSEIF mit einer Ausschaltbedingung verwenden

DOELSEIF (([WeihnachtsbeleuchtungAusUm]] and [TV] eq "disconnected" or [TV:"DISCONNECTED"]) (set ... off)
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Fredi69 am 28 Dezember 2017, 20:49:31
Zitat von: Ellert am 28 Dezember 2017, 20:41:53
Statt DOELSE müsstest Du DOELSEIF mit einer Ausschaltbedingung verwenden

DOELSEIF (([WeihnachtsbeleuchtungAusUm]] and [TV] eq "disconnected" or [TV:"DISCONNECTED"]) (set ... off)

Es muss doch aber irgendwie abgefragt werden ob es schon nach "WeihnachtsbeleuchtungAusUm" ist, oder?
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Damian am 28 Dezember 2017, 20:50:19
([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend")
(set Weihnachtsbeleuchtung on)
DOELSE (!([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend") and [EG.Wz.TV.UE46C8790] eq "disconnected")
(set Weihnachtsbeleuchtung off)


Ottos Vorschlag wird nicht gut funktionieren, denn dann würde die Beleuchtung immer angehen, wenn der Fernseher angeht.
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Fredi69 am 28 Dezember 2017, 21:10:32
Zitat von: Damian am 28 Dezember 2017, 20:50:19
([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend")
(set Weihnachtsbeleuchtung on)
DOELSE (!([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend") and [EG.Wz.TV.UE46C8790] eq "disconnected")
(set Weihnachtsbeleuchtung off)


Ottos Vorschlag wird nicht gut funktionieren, denn dann würde die Beleuchtung immer angehen, wenn der Fernseher angeht.

Muss das "DOELSE" nicht in "DOELSEIF" geändert werden?

Danke
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Damian am 28 Dezember 2017, 21:11:38
Zitat von: Fredi69 am 28 Dezember 2017, 21:10:32
Muss das "DOELSE" nicht in "DOELSEIF" geändert werden?

Danke
ja
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Fredi69 am 28 Dezember 2017, 21:32:17
Zitat von: Damian am 28 Dezember 2017, 21:11:38
ja

Danke, ich teste das und werde wieder berichten.
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Otto123 am 28 Dezember 2017, 21:45:53
Sorry, wenn ich auf sowas EG.Wz.TV.UE46C8790 blicke sehe ich eher ein regEx als einen Namen - Du hast in jedem Zimmer in jeder Etage mehrere Fernseher?  ;D :o :-\ ;D

Wenn Du meinen Vorschlag nur als Abfrage nimmst [?EG.Wz.TV.UE46C8790] eq "was auch immer" würde er zumindest nicht angehen wenn der Fernseher angeht. Kann sein, er geht dann nicht aus wenn der Fernseher ausgeht - aber war das gefordert?  ;)

Der Vorschlag mit dem Ausschaltkriterium wäre auch mein nächster Gedanke gewesen und der Vorschlag von Damian ist viel besser!

Gruß Otto
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Fredi69 am 30 Dezember 2017, 12:02:03
Zitat von: Damian am 28 Dezember 2017, 20:50:19
([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend")
(set Weihnachtsbeleuchtung on)
DOELSE (!([[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]]
and [Anwesenheitsstatus] eq "anwesend") and [EG.Wz.TV.UE46C8790] eq "disconnected")
(set Weihnachtsbeleuchtung off)


Ottos Vorschlag wird nicht gut funktionieren, denn dann würde die Beleuchtung immer angehen, wenn der Fernseher angeht.

Eine Frage zum Verständnis, wird damit nicht der Zeit inkl. des Anwesenheitsteil negiert und nicht nur der [[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]] ?
Titel: Antw:Weihnachtsbeleuchtung nicht aus so lange TV an ist
Beitrag von: Damian am 30 Dezember 2017, 12:51:52
Zitat von: Fredi69 am 30 Dezember 2017, 12:02:03
Eine Frage zum Verständnis, wird damit nicht der Zeit inkl. des Anwesenheitsteil negiert und nicht nur der [[Sonnenuntergang]-[WeihnachtsbeleuchtungAusUm]] ?
So ist es.