Hallo zusammen,
ich stehe gerade irgendwie auf dem Schlauch. Ich habe die folgende Konstellation:
Der Fernseher und der AV Receiver hängen an schaltbaren Steckdosen. Die Steckdosen werden über eine HA Brigde per Sprache (Alexa) geschaltet. Die HA Brigde schaltet einen Dummy ein. Ein Notify reagiert dann auf den Dummy und schaltet erst die Steckdosen ein und dann nach einem Sleep den Receiver und den Fernseher an (DEF vom notify):
Fernseher:on set TV_Wohnzimmer on;set Musikanlage on;sleep 10.0;set AV_Receiver on;sleep 2.0;set AV_Receiver input hdmi1;set minBroad commandSend Sky_on;set minBroad commandSend TV_on;
Wenn TV_Wohnzimmer und Musikanlage (beides Funksteckdosen) breits eingeschaltet sind, müssen sie ja nicht nochmal extra eingeschaltet werden und die 10 Sekunden Wartezeit kann ich mir dann auch sparen. Die Frage ist nur wie setze ich das am besten um?
Vielen Dank schon mal im Voraus!
Ich würde das mit einem DOIF lösen.
Da hatte ich auch schon drüber nachgedacht. Aber wie? Nur in Abhängigkeit des Schaltzustands der Steckdose geht nicht, weil ja erst eingeschaltet werden soll wenn der Dummy kommt. Und evtl. ändert sich der Zustand von Dummy nicht mal (wenn der schon vorher an war).Deswegen habe ich bis dato ein notify verwendet.
spielt eigentlich keine Rolle, ob DOIF oder notify, in beiden Fällen kann der Status abgefragt werden.
Im DOIF direkt (mit vorangestelltem ?), im notify mit einem perl-if.
Pseudocode-DOIF
DOIF ([dummy] eq "on" && [?TV] ne "on"])(set TV on; ...)
Pseudocode-notify
dummy:on {if (Value("dummy" eq "on") {fhem("set ...")}}
Grüße,
Oli
[/code]
Fernseher:on { my $cmd = "";
$cmd .= "set (TV_Wohnzimmer|Musikanlage) on;set on;sleep 10.0;" if( Value('TV_Wohnzimmer') eq 'off' and Value('Musikanlage') eq 'off';
$cmd .= "set AV_Receiver input hdmi1;set minBroad commandSend Sky_on;set minBroad commandSend TV_on";
fhem("$cmd");
Schau mal bitte, hoffe ich habe da nichts vergessen.
Moin Oli,
in deinem Code Beispiel fehlt eine Klammer :)
dummy:on {if (Value("dummy") eq "on") {fhem("set ...")}}
Gruß Otto
Autsch... Erwischt ??? (Aber deshalb habe ich es ja Pseudocode genannt ;-))
Danke an alle! Ich werde es spätestens morgen mal probieren.