NEWS
Trigger gesucht
-
Ich will in einer Alexa Routine einen "Schalter" einbauen der alle Sonos Geräte sofern sie denn laufen ausschaltet.
Dazu habe ich einen Datenpunkt angelegt "Alle_Sonos_stoppen". Diesen will ich per Alexa einschalten auf true
Dadurch soll das Script laufen und die Sonos Lautsprecher ausschalten die an sind. Leider scheiter am Trigger. Folgendes klapppt nicht:
function func_Sonos_Stop() { //var id_Sonos_Play_Schlafzimmer = "sonos.0.root.192_168_178_47.state"; //var id_Sonos_Play_Kueche = "sonos.0.root.192_168_178_48.state"; //var id_Sonos_Play_Wohnzimmer = "sonos.0.root.192_168_178_35.state"; if(getState("sonos.0.root.192_168_178_35.state").val != 'stop'){setState("sonos.0.root.192_168_178_35.state", 'stop');} //Wohnzimmer if(getState("sonos.0.root.192_168_178_47.state").val != 'stop'){setState("sonos.0.root.192_168_178_47.state", 'stop');} //Schlafzimmer if(getState("sonos.0.root.192_168_178_48.state").val != 'stop'){setState("sonos.0.root.192_168_178_48.state", 'stop');} //Küche // Schalter wieder auf aus schalten setState("Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, false); } //bei Aufruf des Scriptes //func_Sonos_Stop(); //Änderung auf true on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true, ack: true}, func_Sonos_Stop()); //on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, change:"any"}, func_Sonos_Stop());
Verwender ich stattdessen das auskommentierte on erscheinen drei WARN im LOG State "undefined" not found. Was ich auch nicht so ganz verstehe. Führe ich das Script aus mit auskommentierten on-Trigger und stattdessen einfach so. Funktioniert das Script und ohne Fehler im Log…
Wichtig wäre halt das das Script nur reagiert wenn der Schalter auf true gestellt wird, da das Script im Anschluß die Variable wieder auf false stellt.
Aus der Doku werde ich diesmal leider nicht so richtig schlau...
-
on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true, ack: true}, func_Sonos_Stop()); ```` `
–>
on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true, ack: true}, func_Sonos_Stop);
-
das funktioniert leider nicht. Egal ob ich Alle_Sonos_stoppen über Alexa auf true setze oder direkt über den Reiter Objekte in der Admi passiert nichts
-
on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true}, function (data) { if(getState("sonos.0.root.192_168_178_35.state").val != 'stop'){setState("sonos.0.root.192_168_178_35.state", 'stop');} //Wohnzimmer if(getState("sonos.0.root.192_168_178_47.state").val != 'stop'){setState("sonos.0.root.192_168_178_47.state", 'stop');} //Schlafzimmer if(getState("sonos.0.root.192_168_178_48.state").val != 'stop'){setState("sonos.0.root.192_168_178_48.state", 'stop');} //Küche // Schalter wieder auf aus schalten setState("Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, false); });
das funktioniert jetzt??
-
Egal ob ich Alle_Sonos_stoppen über Alexa auf true setze oder direkt über den Reiter Objekte in der Admi passiert nichts `
Da auf ack: true getestet wird, muss "bestätigt" auch durch Alexa bzw. im Reiter "Objekte" auf true gesetzt werden.Wenn es mit der anonymen Funktion klappt, sollte auch das funktionieren:
on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true}, func_Sonos_Stop);