NEWS
[SKRIPT] Alexa über ioBroker Steuern -> Kommandos an Alexa
-
Ganz große Klasse. Super Arbeit Ruhr. 8-) :mrgreen:
Falls jemand Probleme mit den Cookies und diversen Sonderzeichen hat, der kopiert aus den Entwicklertools alles was in diesem Feld unter Cookie ist.
Das ist der fertige Cookie ohne Sonderzeichen.
Gruß Marco
-
Die aktuellen Zustände von Alexa werden nicht abgefragt. `
wäre das denn technisch möglich? -
Die aktuellen Zustände von Alexa werden nicht abgefragt.
wäre das denn technisch möglich?
Nicht mit den (mir) bisher bekannten Mitteln.
Die Kommandos sind die Kommandos, die die Alexa-Webseite schickt.
Die Alexa-Webseite bekommt allerdings eine Rückmeldung, wenn der Zustand sich, z.B. auf Grund eines Sprachbefehls, ändert.
Ein Pause Icon wird dann z.B. zum Play Icon.
Was auch unschön ist, dass der Cookie von der Gültigkeit abläuft, siehe weiter oben.
Hier überlege ich, ob es möglich ist, im POST mit Authentifizierung zu arbeiten und den Cookie dann aus dem Skript zu aktualisieren. Keine Ahnung, ob das gehen wird.
Also ideal wäre, dass man die Grundfunktionen der Webseite "nachstellen" könnte. Anmelden, Kommandos schicke, Rückmeldungen erhalten, …
Ob es geht oder nicht... überschreitet meinen Horizont.
Ich werde aber etwas spielen.
-
Die Abfrage, welcher Titel aktuell gespielt wird (tunein, Amazon Music oder Spotify) funktioniert schon einmal.
Muss allerdings proaktiv angestossen werden.
[EDIT]
aktuelle Lautstärke, Mute j/n, URL zum Coverbild, Shuffle j/n, usw.
Kann man auch abfragen. Jetzt muss man es nur noch hinbekommen, sich die Meldung schicken zu lassen, wenn sich was ändert
[EDIT]
Auch die Liste aller Amazon Geräte ist recht einfach abzufragen.
Hierüber könnte man das Skript dahingehend vereinfachen, dass alle Geräte automatisch ausgelesen werden und man die Seriennummern nicht mehr manuell abfragen muss.
-
Hallo,
könnte ich auf diese Weise Alexa auch einen speziellen Titel abspielen lassen?
Mein Gedanke ist folgender, wenn ich einen Radiosender an Alexa übergeben kann, müsste ich doch auch angeben können, das sie einen Titel aus der Bibliothek abspielen soll.
Diese Titel ( für Hinweise) würde ich vorher in meine Musik hochladen.
Wäre das über dein Script denkbar?
Gruß Mathias
-
könnte ich auf diese Weise Alexa auch einen speziellen Titel abspielen lassen?
Mein Gedanke ist folgender, wenn ich einen Radiosender an Alexa übergeben kann, müsste ich doch auch angeben können, das sie einen Titel aus der Bibliothek abspielen soll.
Diese Titel ( für Hinweise) würde ich vorher in meine Musik hochladen.
Wäre das über dein Script denkbar? `
Sorry… den Post hatte ich nicht gesehen.
Zu Deiner Frage: Bisher wüsste ich nicht, wie. Ich schau mir das aber noch einmal näher an.
-
Neue Version des Skripts: 0.3.0
Alle Geräte werden nun automatisch erkannt und ausgelesen (auch FireTV).
Nur noch Cookie und csrf müssen manuell ausgelesen und ins Skript kopiert werden.
-
Muss ich nur csrf und cookie eintragen? Hab nix anderes gemacht.
Was mit Raumbezeichnungen, wo trage ich die ein?
Hab auch mit forecreation true/false rumgespielt. Aber der javascript adapter fliegt jetzt immer raus:
host.brix-3150 2017-04-23 17:45:35.695 info Restart adapter system.adapter.javascript.0 because enabled host.brix-3150 2017-04-23 17:45:35.695 error instance system.adapter.javascript.0 terminated with code 0 (OK) javascript.0 2017-04-23 17:45:35.575 info script.js.common.BT-scanner2: Kommando Bluetooth Scanner an: true javascript.0 2017-04-23 17:45:35.574 info script.js.common.Systeminfos.hue-updates: 200 javascript.0 2017-04-23 17:45:35.574 error SyntaxError: Unexpected end of input at Object.parse (native) at dpAbfrageAlexaAnlegen (script.js.common.Alexa.Alexa:316:32) at IncomingMessage. (script.js.common.Alexa.Alexa:29 javascript.0 2017-04-23 17:45:35.574 error uncaught exception: Unexpected end of input javascript.0 2017-04-23 17:45:35.574 info script.js.common.Alexa.Alexa: ###############: null javascript.0 2017-04-23 17:45:35.574 warn State "alexa_device_command.._alexaDeviceObj" not found javascript.0 2017-04-23 17:45:35.574 info script.js.common.Alexa.Alexa: BODY: javascript.0 2017-04-23 17:45:35.574 info script.js.common.Alexa.Alexa: HEADERS: {"x-amzn-requestid":"XXYYZZ","location":"https://www.amazon.de/ap/signin?showRmrMe=1&openid.return_to=https%3A%2F%2Flayla.amazon.de javascript.0 2017-04-23 17:45:35.574 info script.js.common.Alexa.Alexa: STATUS: 302
XXYYZZ habe ich ausgetauscht gegen die richtige Nummer.
EDIT: Script läuft! Cookie hatte sich bei mir geändert!
-
Habe nun nochmal die vorherige Version getestet und da kommen auch fehler. Eventuell habe ich ein anderes Problem.
Ich schaue mal ob sich vielleicht der cookie geändert hat.
EDIT: Script läuft! Cookie hatte sich bei mir geändert!
Sensationell. Man braucht nur die beiden Angaben machen. Saubere Arbeit. Ich teste mal die Details…
-
Muss ich nur csrf und cookie eintragen? Hab nix anderes gemacht.
…
EDIT: Script läuft! Cookie hatte sich bei mir geändert! `
Ja, nur csrf und der Cookie werden gebraucht.
Deine Rückmeldung hat dazu geführt, dass es nun eine 0.3.1 gibt. Es waren noch ein paar Fehler im Skript.
Interessant wäre, warum Dein Cookie abgelaufen ist. Meiner funktioniert, seitdem es die erste Version vom Skript gibt.
Eventuell am Browser abgemeldet?
Leider konnte ich gerade ein Problem nicht fixen. Wenn der Cookie falsch ist (ich hatte den kurzen Dummen zum Test drin gelassen), kann es sein, dass das Skript abstürzt.
Jetzt muss es "nur noch" funktionieren, dass man sich den Cookie sparen kann, sondern über das Skript oder einen Adapter bei Amazon Alexa anmelden kann.
-
Muss ich nur csrf und cookie eintragen? Hab nix anderes gemacht.
…
EDIT: Script läuft! Cookie hatte sich bei mir geändert! `
Ja, nur csrf und der Cookie werden gebraucht.
Deine Rückmeldung hat dazu geführt, dass es nun eine 0.3.1 gibt. Es waren noch ein paar Fehler im Skript.
Interessant wäre, warum Dein Cookie abgelaufen ist. Meiner funktioniert, seitdem es die erste Version vom Skript gibt.
Eventuell am Browser abgemeldet?
Leider konnte ich gerade ein Problem nicht fixen. Wenn der Cookie falsch ist (ich hatte den kurzen Dummen zum Test drin gelassen), kann es sein, dass das Skript abstürzt.
Jetzt muss es "nur noch" funktionieren, dass man sich den Cookie sparen kann, sondern über das Skript oder einen Adapter bei Amazon Alexa anmelden kann. `
Schön, dann war meine Panikmache ja nicht ganz umsonst.Ich meine auch, dass es heute Morgen noch funktioniert hat. Dann habe ich später in einem Tablet die Alexa App installiert, was nicht sofort funktionierte. Keine Ahnung ob das den cookie ändern kann.
-
Ganz große Klasse. Super Arbeit Ruhr. 8-) :mrgreen:
Falls jemand Probleme mit den Cookies und diversen Sonderzeichen hat, der kopiert aus den Entwicklertools alles was in diesem Feld unter Cookie ist.
cookie.JPG
Das ist der fertige Cookie ohne Sonderzeichen.
Gruß Marco `
Irgendwie finde ich das so nicht. Bei mir ist es wieder soweit. Ich muss den neuen Cookie extrahieren. Erster Versuch war nix. -
Hey das ist ja mal ein starkes Skript. Ist es denkbar, dass damit in Zukunft auch die Bluetooth Verbindung von alexa angesprochen werden kann? Momentan muss ich zum Musik hören noch 3 Befehle ansagen "stereo Anlage an" "mit Bluetooth verbinden" "Musik spielen". Mit dem Skript lässt sich schonmal das mit der Musik in die Szene #Stereoanlage integrieren. Die automatische Verbindung mit Bluetooth wäre dann die Krönung.
-
Funktioniert super!
Mir ist aber nicht klar, wie ich eine Playlist per Script selektieren kann.
Steuern kann man ja Playlists.
Ich sehe nur die Möglichkeit verschiedene iTunes Radiosender zu selektieren.
-
Hallo.
Ich habe das script auch ausprobiert und es läuft klasse. Ich versuche mich gerade daran, meine Türklingel über Alexa auszugeben. Ich habe einen Klingelton importiert und wenn dieser die letzte abgespielte Datei war, dann funktioniert das schon mit dem Script. Hat aber jemand in der Zwischenzeit Radio gehört, dann geht beim Auslösen des PLAY-Funktion das Radio los. Ich habe schon probiert, ob es reicht den Cookie zu kopieren, der beim Start des Klingeltons erzeugt wird, reicht aber leider nicht. Gibt es da eine Möglichkeit?
-
Ich versuche mich auch gerade mal daran.
Die Objekte wurden angelegt und stehen auf Status init.
Wie kann ich denn jetzt ein Objekt benennen und dann im Skript ansprechen?
Ich würde gerne Radio auf Alexa einschalten sobald ein Bewegungsmelder anschlägt.
Wie steuere ich Alexa denn an bzw. wie benenne ich mein Alexa Objekt zB in arbeitszimmer?
alexaCommand("arbeitszimmer","radio",true);
-
Also mit dem Befehl hier startest du dein Radio per Javascript (Gerätenamen musst du entsprechend deiner Geräte/Objekte anpassen):
setState('javascript.0.alexa_device_command.devices.Echo_Dot_Schlafzimmer.radio', true);
und mit dem hier stoppst du es
setState('javascript.0.alexa_device_command.devices.Echo_Dot_Schlafzimmer.radio', false);
So Kannst du das Radio einschalten wenn der Bewegungsmelder reagiert:
on({id: "BEWEGUNGSMELDEROBJEKT", change: 'true'}, function (obj) { setState('javascript.0.alexa_device_command.devices.Echo_Dot_Schlafzimmer.radio', true); } );
-
Hab gerade mal per Script an allen Echos das Radio gleichzeitig aktiviert. Alexa ist also doch multiroomfähig dank ioBroker
Gut, ein kleiner minimaler Versatz ist leider schon zu hören. Meine beiden Dots laufen so gut wie synchron aber mein großer Echo hat ca eine halbe Sekunde unterschied zu den beiden Dots.
-
Servus, habe das script jetzt auch mal in angriff genommen und funktioniert auch sehr gut nur wo bekomme ich von den Sendern die codes her? und wie war das mit der eigenen mediathek, wie kann ich meine eigene lieder abspielen, ist das schon geplant oder funktioniert dies schon?
EDIT:
mit den Sendern hat sich so eben erledigt, wer lesen kann ist klar im Vorteil :roll:
danke euch Mit freundlichen Grüßen
-
funktioniert hervoragend
Könnte man auch bestimmte Titel aus der eigenen Musikbibliothek mit dem Script starten ?
Auf diese Weise könnte man tolle, individuelle Sprachausgaben erstellen.