NEWS
Alexa2 - Echo zum Radio ausgeben bringen
-
Hallo Leute,
ich hoffe, dass ich hier richtig bin.
Aktuell nutze ich noch Alexa Control als JS Instanz um den Badezimmer Echo anzuwerfen wenn eine Hue Lampe im Bad angeht. Das geht soweit auch, nach ein paar Stunden aber nicht mehr.
Die Idee ist jetzt, das per Alexa2 auch mit einem JS Script zu machen. Hier ein Auszug aus dem Script. Der Echo will aber partou nicht spielen. Welche Funktion in den Objekten bringt ihn dazu?
on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.controlPlay', true, true, parseInt(0, 10), true); setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.volume', 30, true, parseInt(0, 10), false); });
Stimmt an dem Aufruf was nicht?
-
Hallo Leute,
ich hoffe, dass ich hier richtig bin.
Aktuell nutze ich noch Alexa Control als JS Instanz um den Badezimmer Echo anzuwerfen wenn eine Hue Lampe im Bad angeht. Das geht soweit auch, nach ein paar Stunden aber nicht mehr.
Die Idee ist jetzt, das per Alexa2 auch mit einem JS Script zu machen. Hier ein Auszug aus dem Script. Der Echo will aber partou nicht spielen. Welche Funktion in den Objekten bringt ihn dazu?
on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.controlPlay', true, true, parseInt(0, 10), true); setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.volume', 30, true, parseInt(0, 10), false); });
Stimmt an dem Aufruf was nicht? ` ich mache es so…
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201811 ... 439480.jpg">https://uploads.tapatalk-cdn.com/20181120/d4e821e41015ade5fd0f1f11b6439480.jpg</link_text>" /> -
Ich mache es so, mit JavaScript, also ein Beispiel:
on({id: 'shelly.0.SHSW-1#XXXXX#1.Relay0.Switch', change: "ne"}, function(obj) { if(obj.state.val) { setState('alexa2.0.Echo-Devices.XXXXXXXXXXXXXXXX.Player.TuneIn-Station', 's100198'); } else { setState("alexa2.0.Echo-Devices.XXXXXXXXXXXXXXXX.Player.controlPause", true); } });
Wenn Licht an, dann fängt TuneIn an zu spielen, Station 's100198'.
Wenn Licht aus, dann geht Musik wieder aus.
-
Ja, das liegt daran das Alexa sich nur ca. 1h an den "zuletzt gespielten Titel erinnert", sodass ein einfaches Play noch geht. Auch in der Alexa-App sieht man das schön. Von daher musst Du immer starten was Du spielen willst. Ein einfaches Play geht nur bedingt.
-
Hallo Leute,
ich hoffe, dass ich hier richtig bin.
Aktuell nutze ich noch Alexa Control als JS Instanz um den Badezimmer Echo anzuwerfen wenn eine Hue Lampe im Bad angeht. Das geht soweit auch, nach ein paar Stunden aber nicht mehr.
Die Idee ist jetzt, das per Alexa2 auch mit einem JS Script zu machen. Hier ein Auszug aus dem Script. Der Echo will aber partou nicht spielen. Welche Funktion in den Objekten bringt ihn dazu?
on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.controlPlay', true, true, parseInt(0, 10), true); setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.volume', 30, true, parseInt(0, 10), false); });
Stimmt an dem Aufruf was nicht?
ich mache es so…![](https://uploads.tapatalk-cdn.com/20181120/d4e821e41015ade5fd0f1f11b6439480.jpg)~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201811 ... 439480.jpg">https://uploads.tapatalk-cdn.com/20181120/d4e821e41015ade5fd0f1f11b6439480.jpg</link_text>" />~~
Vielen Dank! Kannst du aus Blockly auch mal dein Script posten? Mich würde interessieren, welch Objekte dort angesteuert werden. -
@Mic:Ich mache es so, mit JavaScript, also ein Beispiel:
on({id: 'shelly.0.SHSW-1#XXXXX#1.Relay0.Switch', change: "ne"}, function(obj) { if(obj.state.val) { setState('alexa2.0.Echo-Devices.XXXXXXXXXXXXXXXX.Player.TuneIn-Station', 's100198'); } else { setState("alexa2.0.Echo-Devices.XXXXXXXXXXXXXXXX.Player.controlPause", true); } });
Wenn Licht an, dann fängt TuneIn an zu spielen, Station 's100198'.
Wenn Licht aus, dann geht Musik wieder aus. `
Danke! Sieht ein bisschen anders als mein Script aus. Funktioniert shelly.0 auf jeder ioBroker Installation?
-
Danke! Sieht ein bisschen anders als mein Script aus. Funktioniert shelly.0 auf jeder ioBroker Installation? `
Wenn Du die Shelly-Hardware und den Shelly-Adapter einsetzt, dann schon Ansonsten die Zeile ersetzen durch Deinen Datenpunkt, also
on({id: 'hue.0.Philips_hue.Lightify_Bad.on', change: "ne"}, function(obj) {
bzw. entsprechend anpassen…
-
Ah ok dank!
Habe es dann so:
on({id: 'lightify.0.XXXXXXXXXX.on', change: "ne"}, function(obj) { if(obj.state.val) { setState('alexa2.0.Echo-Devices.XXXXXXXXXXXXXXX.Player.TuneIn-Station', 's25946'); } else { setState("alexa2.0.Echo-Devices.XXXXXXXXXXXXXX.Player.controlPause", true); } });
Schaltet die Lampe nun ein, ertönt das Radio kurz für eine Sekunde und geht dann wieder aus. Der Status der Lightify Lampe hat sich aber nicht geändert zwischendurch.
Falls du dich wunderst, ja, die Lampe ist aktuell an am Lightify Gateway angeschlossen.
-
Ich kenne lightify nicht. Aber was macht der Datenpunkt "lightify.0.XXXXXXXXXX.on" nach einer Sekunde, ändert sich dieser etwa wieder auf false? Denn dann solltest Du die else-Bedingung (setState("alexa2.0.Echo-Devices.XXXXXXXXXXXXXX.Player.controlPause", true);) entfernen bzw. auskommentieren.
-
Der Datenpunkt "lightify.0.XXXXXXXXXX.on" ist ein switch der nur zwischen true und false wechselt. Ist die Lampe an, wird true gesetzt und eben das Gegenteil.
Es scheint so, als würde das Script durchlaufen und auch den Pause Befehl gleich verarbeiten.
-
Dann würde ich das isolieren, also ob es an was anderem liegt.:
on({id: 'lightify.0.XXXXXXXXXX.on', val:true}, function(obj) { setState('alexa2.0.Echo-Devices.XXXXXXXXXXXXXXX.Player.TuneIn-Station', 's25946'); log('Radio s25946 einschalten'); });
-
Ok, Danke! Dann muss ich nur noch den false Befehl hinzufügen, dann sollte es klappen?
-
Hallo Tommy,
dein Schnipsel müsste auch gehen, nur zwei kleine Änderungen
on({id: 'lightify.0.XXXXXXXXXX.on', change: "any"}, function(obj) { if(obj.state.val) { setState('alexa2.0.Echo-Devices.XXXXXXXXXXXXXXX.Player.TuneIn-Station', 's25946'); } else { setState('alexa2.0.Echo-Devices.XXXXXXXXXXXXXX.Player.controlPause', true); } });
Aus change "ne" hab ich "any" gemacht und im Elsezweig hab ich
beim Device aus den " einfach ein ' gemacht
Und schon sollte es funtzen.
Gruß Andreas
-
Ist zwar ein etwas anderes Thema was ich umsetzen möchte aber vielleicht kann mir jemand einen Anstoß dazu geben.
Geplant ist bei mir, in der VIS, das ich einen Button oder ähnliches habe und dann Alexa in einen bestimmten Raum einen Radiosender spielt.
Gibt es dazu hier schon was oder noch nicht? Wie kann ich das anstellen?
Also zum Beispiel das ich ein Bild von einen Echo DOT habe, dort klicken kann und dann eine Liste von Radiosender zum aktivieren gelistet wird.
Gibt es dazu irgendwas zum aufbauen???