[gelöst] "Wait for device state" in Notify?

Begonnen von dwi, 18 Mai 2018, 20:25:24

Vorheriges Thema - Nächstes Thema

dwi

Hi,

Ich bräuchte einmal ein paar Wörter zu meinem Problem, die ich in der Commandref nachschlagen kann.
Und zwar habe ich ein Notify, das mehrere Aktionen durchführt. Unter anderem auch eine Steckdose schalten, an der ein Device hängt. Dieses Device ist auch in FHEM und jetzt soll meine NOTIFY Aktion solange pausiert werden, bis das Device hochgefahren ist.

Im konkreten Fall: Schalte Harmony Hub zu und wenn es state "connencted" hat, schicke diese IR Befehle ab.
Wie mache ich so etwas am Besten in FHEM?

Viele Grüße

MadMax-FHEM

2tes Notify auf harmony hub connected und da dann die IR Befehle senden...

Kurz da nur Handy...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

dwi

Wenn ich jetzt ein Notify nur auf mein Harmony Hub:connected mache, reicht das ja aber nicht.
Wie kann ich denn in dem neuen Notify den Status aus dem alten Notify abrufen?
Dort habe ich ELSIFs (die auf ein Dummy zugreifen (setList)) und müsste dann den Pfad in der Aktion nutzen um zu wissen, welche IR Commands gesendet werden müssen.
Oder würde ich direkt auf HarmonyHub:connected und dummy:item das notify machen und dann die Commands setzen. Wie kann ich dann aber die Kommandos des Notifys, das nur auf den Dummy horcht und das, das auf Dummy und Harmony Hub horcht synchronisieren?

Oder wäre das richtige Vorgehen: Ein Notify auf den Dummy, dieser schaltet NUR den Harmony Hub an und dann ein zweiter Notify, der auf Harmony Hub:Connected und Dummy horcht und der macht dann die eigentliche Arbeit? Beamer/Reciever an, Leinwand runter, Licht einstellen etc pp?

Wie kann ich denn im Notify auf zwei Bedingungen überprüfen,die beide WAHR sein müssen? Oder horche ich nur auf HarmonyHub:Connected und mache den Rest mit IF/ELSIF?

Ich kenne die Kniffe leider noch überhaupt nicht.

MadMax-FHEM

#3
Du kannst im Notify auf harmony:connected per ReadingsVal Readings anderer Devices abfragen und dann entsprechend entscheiden und schalten.

Am besten wenn du im Notify eine Sub in myUtils aufrufst und dort dann entsprechend vorgehst...

https://wiki.fhem.de/wiki/99_myUtils_anlegen

Was vielleicht auch geht ist ein DOIF mit wait, nutze ich aber nicht...

Und vielleicht auch mittels MSwitch:
https://forum.fhem.de/index.php/topic,86199.msg786438.html#msg786438

Kurz, da immer noch nur Handy...
...wenn ich nachher zuhause bin, poste ich mal ein Beispiel (sofern ich richtig verstanden hab was du genau willst)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

dwi

#4
Ich habe das jetzt soweit hinbekommen mit dem Notify.

(hub:Connected) {Log 1, "newnotify: $EVENT"; my $r1 = Value("SceneMM") ; if ($r1 eq "Youtube") {Log 1, "newnotify: Youtube";fhem("sleep 1 ; set hub activity Youtube ; IF ([IT_1527x9cfdc] eq 'off') (set IT_1527x9cfdc on) ; set huegateway scene Vmsu7VznXphjclL ; set huegateway scene CFc2kEeh1pciUks")} elsif ($r1 eq "DVD") {Log 1, "newnotify: DVD";fhem("sleep 1 ; set hub activity DVD ; IF ([IT_1527x9cfdc] eq 'off') (set IT_1527x9cfdc on) ; set huegateway scene Vmsu7VznXphjclL ; set huegateway scene CFc2kEeh1pciUks")}}

Der Ablauf funktioniert soweit, jetzt habe ich nur noch Probleme mit dem Event, auf das ich eigentlich warten müssten. Wenn ich "connected" bin zum Harmony Hub, kann es nämlich immer noch keine Befehle verschicken, weil die Config fehlt. Das Hub ist erst 10-15sec später sendebereit. Ich suche noch nach einem geeigneten Event, sonst mache ich es mit sleep. (Und ja, ich sollte nicht in das FHEM log debuggen, aber das geht einfach schnell :/ )

Danke für den input mit dem anderen Notify. Man muss in FHEM/Perl die Probleme tatsächlich immer gut zerlegen und die Einzelteile umsetzen.