FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: derchrome am 07 Januar 2018, 21:40:34

Titel: Bedingung im Notify
Beitrag von: derchrome am 07 Januar 2018, 21:40:34
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!
Titel: Antw:Bedingung im Notify
Beitrag von: Jogi am 07 Januar 2018, 22:09:21
Ich würde das mit einem DOIF lösen.
Titel: Antw:Bedingung im Notify
Beitrag von: derchrome am 07 Januar 2018, 22:18:08
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.
Titel: Antw:Bedingung im Notify
Beitrag von: KernSani am 07 Januar 2018, 22:25:39
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]
Titel: Antw:Bedingung im Notify
Beitrag von: CoolTux am 08 Januar 2018, 09:28:22

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.
Titel: Antw:Bedingung im Notify
Beitrag von: Otto123 am 08 Januar 2018, 09:42:09
Moin Oli,

in deinem Code Beispiel fehlt eine Klammer :)
dummy:on {if (Value("dummy") eq "on") {fhem("set ...")}}

Gruß Otto
Titel: Antw:Bedingung im Notify
Beitrag von: KernSani am 08 Januar 2018, 13:38:19
Autsch... Erwischt  ???  (Aber deshalb habe ich es ja Pseudocode genannt ;-))
Titel: Antw:Bedingung im Notify
Beitrag von: derchrome am 09 Januar 2018, 18:56:35
Danke an alle!  Ich werde es spätestens morgen mal probieren.