Hauptmenü

Bedingung im Notify

Begonnen von derchrome, 07 Januar 2018, 21:40:34

Vorheriges Thema - Nächstes Thema

derchrome

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!

Jogi

Ich würde das mit einem DOIF lösen.

derchrome

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.

KernSani

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]
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux


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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Moin Oli,

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

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KernSani

Autsch... Erwischt  ???  (Aber deshalb habe ich es ja Pseudocode genannt ;-))
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

derchrome

Danke an alle!  Ich werde es spätestens morgen mal probieren.