Nachdem ja viele einen Echo oder Dot besitzen und mit IP-Symcon nutzten, wollte ich auch gerne den Echo / Dot Befehle von IP-Symcon aus schicken.
Leider gibt es zur Zeit nur zwei Möglichkeiten einem Echo einen Befehl zu geben. Die erste ist logischerweise über Spracheingabe mit Benutzung des Wakewords. Die zweite ist über die Alexa Seite bzw. die Alexa App.
Dank der Analyse von Thorsten Gehrig, vielen Dank an der Stelle noch mal, hat er sich das näher angeschaut was da passiert und was verschickt wird.
Dank seiner Idee habe ich das zunächst per Skript von IP-Symcon aus gesteuert und das Ganze jetzt mal in ein kleines PHP Modul zusammengefasst.
Voraussetzungen:
[ul]
[li]IP-Symcon 4.1[/li][li]Amazon Echo / Dot mit verknüpften Amazon Account[/li][/ul]
Einrichtung:
Zunächst muss etwas Vorarbeit geleistet werden und mann muss Werte ermitteln und aufschreiben, die wir später zum Schalten benötigen.
Zunächst ist er notwendig Werte aus einer Browser Session zu ermitteln.
In dem Beispiel nutzten wir die Entwicklertools von Chrome andere Browser verfügen aber über ähnliche Werkzeuge. Die Bilder und Anleitung orientiert sich jetzt aber an Chrome.
Wie öffnen also zunächst die Webseite
https://alexa.amazon.com
und melden uns dort mit dem Amazon Account an auf den auch der Echo / Dot registriert ist.
Nun wechslen wir unter Musik und Bücher und wählen TuneIn aus. Jetzt öffnen wir die Entwicklertools mit STRG+Umschalt+I es öffnet sich auf der rechten Seite ein weiteres Fenster.
Nun wählen wir einen Radiosender bei TuneIn mit Doppelklick aus. Der Radiosender sollte nun das Abspielen auf dem Echo beginnen. Gleichzeitig sehen wir im Fenster der Entwicklertools einen Eintrag mit queue-and-play.
Wir öffnen jetzt den Eintrag queue-and-play (linke Spalte) mit einem Doppelklick und es öffnen sich ein weiters Fenster (rechte Spalte).
In dem Fenster können wir nun die Werte einsehen, die wir für das Modul benötigen. Diese markieren wir jeweils mit der Maus und kopieren diese mit STRG+C in die Zwischenablage und setzten den Wert dann z.B. in ein Textdokument zur Zwischenspeicherung um diese dann im Modul ergänzen zu können.
Es wird jeweils der Wert hinter dem Parameter und dem : kopiert.
Zum Beispiel wäre den Eintrag bei CSRF
csrf:-123456789
wir bräuchten dann -123456789 als Wert fü das Modul.
Im Block Request Headers findet man
Cookie: entspricht dem Eintrag Cookie im Modul (Der Cookie ist ziemlich lang und muss komplett kopiert werden)
csrf: entspricht dem Eintrag CSRF im Modul
Im Block Query String Parameters findet man
deviceSerialNumber: entspricht Devicenumber im Modul
deviceType: entspricht Devicetype im Modul
guideId: entspricht Station ID im Modul
mediaOwnerCustomerId: entspricht Customer ID im Modul
Installation IP-Symcon
Laden des Moduls
In IP-Symcon (ab Ver. 4.1) unter Kerninstanzen über Modules -> Hinzufügen das Modul ergänzen mit der URL:
https://github.com/Wolbolar/IPSymconEchoRemote
Anschließend erstellt man an der passenden Stelle im Objekt Baum eine neue Instanz (Ctrl + 1) als Hersteller gibt man Amazon ein und wählt Amazon Echo Remote aus.
In der Instanz trägt man nun die Werte ein die vorher über die Anleitung (s.o.) ermittelt worden sind
und anschließend mit Übernehmen im Modul abspeichern.
Jetzt sollte man wenn die Werte denn stimmen dem Echo Befehle schicken können.
Siehe auch Dokumentation
Zur Zeit sind die Befehle Play, Pause, Next, Previous, Rewind 30s, Forward 30s verfügbar
Ist noch experimentell aber bei mir funktioniert es zumindest.