Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuern

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

fantasticn
Beiträge: 102
Registriert: 15.03.2016, 14:34

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von fantasticn » 19.12.2017, 14:09

Ja, eine gewisse Verzögerung ist spürbar. Das ist ja schon bei Sprachbefehlen der Fall. Immerhin läuft alles über das Internet in die Amazon-Cloud und von dort wieder zurück auf den Echo. Beim vorliegenden Script kommt nun noch die Trägheit der CCU2 bei der Scriptausführung dazu.

falke69
Beiträge: 61
Registriert: 05.11.2016, 19:51

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von falke69 » 19.12.2017, 18:51

Hallo zusammen,

nochmal eine Frage von meiner Seite.
Ich bekomme es leider nicht hin, mit einem Befehl Alexa zum Handeln zu bewegen.

wenn ich den Befehl über die Console eingebe

Code: Alles auswählen

./alexa_remote_control_plain.sh -b 37:56:5F:14:7A:AB
verbindet sich Alexa mit dem Bluetooth Gerät.

Wenn ich aber über die CCU folgenden Befehl:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State("sh /usr/local/addons/alexa/alexa_remote_control_plain.sh -b 37:56:5F:14:7A:AB");
sende, schweigt Alexa.

Ein anderes Script im selben Ordner mit den selben Rechten funktioniert komischer weise.
Dabei ist es egal, ob ich "sh" vor dem Ordnerpfad stehen lasse oder entferne.

Habe ich vielleicht nochetwas übersehen :?:

Wenn ich beide Scripte über HQ WebUI starte und teste, zeigt es mir an "Scriptausführung erfolgreich".

ftpgonzo
Beiträge: 199
Registriert: 16.12.2014, 20:03

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von ftpgonzo » 01.01.2018, 18:38

Nabend, ich habe genau das gleiche problem ....

ich lese mal mit ...

ftpgonzo
Beiträge: 199
Registriert: 16.12.2014, 20:03

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von ftpgonzo » 01.01.2018, 20:37

So , durch einen blöden zufall den Fehler gefunden ....

so läuft es bei mir ,


dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/usr/local/addons/alexa/alexa_remote_control_plain.sh -d Wohnzimmer -w XXXXXXXXXXXXXXXXXXXXXXX");

den *alexa* ordner nach /addons/ habe ich erstellt also ggf anpassen.

lg

:)

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von Sweatchuck » 29.01.2018, 08:36

Hallo,

ich würde dieses Thema gerne nochmal aufgreifen.

Laut dem Blog von Lötzimmer ist es mit Befehl Option -q möglich die Abspielinformation zu bekommen. Diese würde ich gerne in eine Systemvariable zum jeweiligen Dot schreiben.

Befehl:

Code: Alles auswählen

alexa_remote_control.sh -d MEIN_DOT -q
Hierzu die Info aus dem Blog:

Für die aktuellen Abspielinformationen (Option -q) kommen prinzipiell drei URLs zum Einsatz (ab Zeile 535):
https://layla.amazon.de/api/np/player?d ... RENTDEVICE}
https://layla.amazon.de/api/media/state ... DEVICETYPE}
https://layla.amazon.de/api/np/queue?de ... DEVICETYPE}

http://blog.loetzimmer.de/2017/10/amazo ... -echo.html

Ist das möglich? Hat das jemand umsetzen können? Weiterhin würde ich mir die aktualle Lautstärke gerne in eine Systemvariable schreiben.

Beste Grüße
Sweatchuck

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von Sweatchuck » 25.05.2018, 09:32

Hallo,

hat sich jemand weiter mit diesem Thema beschäftigt?

Ich habe es nun geschaft die meinsten wichtigen Funktionen wie Lautsträke, Bluetooth, Radiosender, Raum bzw. Devicewahl und Playlisten über HM zu steuern.
Die Visualisierung erfolgt in Mediola Neo.

Sollte Intereese bestehen kann ich gerne mal meinen aktuellen Stand als Projektvorstellung posten.

Was ich aber nicht hinbekommen habe ist die abfrage der aktuellen Lautstärke damit diese immer aktuell gehalten wird.
Ich kann die Lautsträrke zwar mittels HM verändern, wenn ich aber am EchoDot selbst die Lautstärke variere wird diese nicht am Tablet bzw. in der WebUI aktualisiert.
Dier Punkt wäre noch offen. Ich müsste also bei Änderung der Lautstärke am Gerät die Info in die CCU bekommen (z.B. SysVar).
Einzige Möglichkeit die mir einfällt ist die zeitliche Abfrage der Lautsträrke über die CCU. Hier bin ich aber bislang an meinen Programmierkenntnissen gescheitert.

Zweiter und letzter Punkt den ich gerne umgesetzt hätte wäre die aktuelle Abspielinfo in die CCU zu bekommen.
Hierzu habe ich im Post vorher auf die Arbeit von Lötzimmer verwiesen. Es müsste gehen, komme aber nicht weiter...

Vielleicht hat es jemand zwischenzeitlich geschaft eine Steuerung zu programmieren oder diese zwei Punkte bereits umgesetzt. Ich würde mich freuen wenn sich jemand meldet.

Sofern ich alles umsetzten konnte will ich eine kleine Projektvorstellung ins Netz stellen.

Gruß
Sweatchuck

Fonzo
Beiträge: 6687
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von Fonzo » 27.05.2018, 08:33

Sweatchuck hat geschrieben: Vielleicht hat es jemand zwischenzeitlich geschaft eine Steuerung zu programmieren oder diese zwei Punkte bereits umgesetzt. Ich würde mich freuen wenn sich jemand meldet.
Wie man das mit der CCU und NEO löst kann ich nicht im Detail weiterhelfen, da ich die CCU Sprache nicht nutzte. Ich selber nutzte dafür IP-Symcon und NEO. Dazu läuft einfach pro Echo ein zyklischer Timer im Hintergrund der regelmäßig eine State Abfrage an den Echo schickt.
Die URL dazu ist

Code: Alles auswählen

https://alexa.amazon.de/api/media/state?deviceSerialNumber=<DEVIVCE_SERIAL>&deviceType=<DEVICETYPE>
Mit dem Response bekommst Du dann alles zurück was Du brauchst, Titel, Station, Interpret, Playstatus und auch die Lautstärke, diese kannst Du dann wiederum in Variablen ablegen und die Variablen einzeln in NEO platzieren und visualisieren. Die Grafik lege ich selber in einem Medienelement in IP-Symcon ab und binde das dann wiederum über ein Webseiteneement in NEO ein.
Analog müsstest Du wohl auch nur mit einer CCU vorgehen können, einfach zyklisch eine State Abfrage setzten und in Variablen ablegen, wie man dann die Grafik nur mit einer CCU in NEO bekommt bin ich überfragt.

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von Sweatchuck » 28.05.2018, 08:38

Hallo Fonzo,

erstmal vielen Dank für deine Rückmeldung.

So wie es sich anhört konntest du deinen Echo gut in Mediola einbinden. Das wäre auch mein Ziel.

Was hast du bei DEVIVCE_SERIAL und deviceType eingetragen? Wo finde ich diese Information? Wie würde der Link dann aussehen.

Ich würde danach probieren die Informationen aus der Webseite auszulesen und in SysVar. zu schreiben. Skripte hierzu habe ich bereits im Forum gefunden, müsste ich halt entsprechend anpassen. Mal sehen ob es funktioniert da ich keinerlei Programmiererfahrung habe :(

Da "Cover-Bild" werde ich vieleicht später integrieren. :P

Gruß
Patrick

Fonzo
Beiträge: 6687
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von Fonzo » 28.05.2018, 09:06

Sweatchuck hat geschrieben:So wie es sich anhört konntest du deinen Echo gut in Mediola einbinden. Das wäre auch mein Ziel.
Ja der ist in Neo eingebunden, mit Titel, Interpret und Cover Anzeige und Steuerung, läuft bei mir über das NEO Plugin IP-Symcon und das Cover in NEO über ein Webseitenelement mit IPSymconWebbox wird aus einem Medienelement in IP-Symcon ausgelesen.
Sweatchuck hat geschrieben:Was hast du bei DEVIVCE_SERIAL und deviceType eingetragen? Wo finde ich diese Information? Wie würde der Link dann aussehen.
Die kannst du z.B. in Chrome mit Entwicklertools (STRG+Umschalt+I) auslesen und ist z.B. unter Amazon Echo Remote Control beschrieben wie Du dazu im Detail vorgehst. Alternative ist Du legst den Cookie lokal ab und greifst dann mit dem Cookie die Daten direkt über die Amazon Webseite ab und speicherst diese Werte in einer Variable. Die Device-Serial oder der Devicetype sind fest und ändern sich nicht, nur der Cookie und CSRF läuft ab und zu aus. Den musst Du entweder ergänzen oder mit einem Skript in einem Intervall automatisch neu auslesen.

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Brauche Hilfe für CURL um Amazon Echo/Alexa fernzusteuer

Beitrag von Sweatchuck » 28.05.2018, 19:30

Hallo Fonzo,

habe, sofern mir möglich, alles probiert. Komme aber aufgrund meiner mangelhaften Programmierkünste nicht weiter! Schade.

Habe versuch über die JSON Ausgabe - Script executer mit dem folgenden Skript (natürlich mit richtiger Device Serial und Devicetype) auszuwerten und in SysVar. zu schreiben.

Bekomme aber keine Rückmeldung. Wenn ich den Link direkt eingebe sind fast alle benötigen Infos abgreifbar. Ich finde aber in der Ausgabe ein "Now playing" nicht. Also was gerade gespielt wird. Nur das gerade etwas wiedergeben wird und auch alle Infos zur Playlist etc. aber eben nicht den Titel der gerade jetzt wiedergeben wird.

Code: Alles auswählen

var url = "https://alexa.amazon.de/api/media/state?deviceSerialNumber=<DEVIVCE_SERIAL>&deviceType=<DEVICETYPE>";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q  --auth-no-challenge -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
Ich denke das Thema übersteigt meine Können :roll:

Trotzdem Danke!

Antworten

Zurück zu „CUxD“