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 » 04.11.2017, 19:31

Sieht ja so aus, als gäbe es inzwischen eine Lösung, und jetzt sogar als reines Shell-Script:

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

Thread dazu:

https://www.alefo.de/alexa-allgemein-f1 ... 9-s60.html

Das müsste ja auch auf der CCU laufen. Werde ed mal testen, wenn ich wieder aus dem Urlaub zurück zuhause bin :-)

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

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

Beitrag von fantasticn » 21.11.2017, 14:08

Habe jetzt mit dem Script hier

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

herumgespielt. Ich habe die Version ohne "jq" verwendet, weil ich davon ausgehe, dass man jq nicht auf der CCU2 laufen lassen kann bzw. weil es jedenfalls meine Tests erstmal verkompliziert hätte. Wichtig ist noch zu wissen: Man muss das Script mittels rechter Maustaste und "link speichern unter ..." herunterladen. Ein copy&paste des Script-textes funktioniert merkwürdigerweise nicht, d.h. das so erstellte script verursacht lauter Fehler. Offensichtlich kommt bei copy&paste etwas durcheinander.

Unter Windows (Linux Bash-Shell) läuft das script nun auch einwandfrei. Einfach oben im Script den Amazon-Benutzernamen und das Amazon-Passwort eintragen und dann mit den angegebenen Parametern starten (Beim ersten Start "./alexa_remote_control.sh -a", um den cookie zu generieren und die Liste der Geräte abzuholen). Der Cookie wird beim Start automatisch aktualisiert und alle gefundenen Echo Dots sowie sogar Sonos Lautsprecher werden angezeigt. Gemäß den Beschreibungen unter o.g. link kann man dann Musik starten, stoppen etc. Das Cookie-Thema wäre damit also wohl - theoretisch - erschlagen. Nun habe ich also versucht, das Script auf die CCU2 zu portieren. Aber dort will es bislang nicht laufen.

Zunächst einmal musste der Pfad für den Curl-Befehl angepasst werden (ersetze "curl" durch "/usr/local/addons/cuxd/extra/curl"). Das hat noch geklappt. Beim Start indes verweigert das Script dann den Dienst mit mehreren Fehlermeldung, die sich jeweils auf den "sed"-Befehl beziehen. Augenscheinlich kommt die CCU2 mit den im Script verwendeten Parametern nicht klar

Kann sich das vielleicht mal jemand anschauen, der mehr Ahnung von der Materie (SH-Script und CCU2) hat?

VG

Fantasticn

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

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

Beitrag von fantasticn » 21.11.2017, 15:59

Nachtrag: Inzwischen habe ich herausgefunden, dass man bei sed den Parameter "-E" gegen "-r" austauschen muss. Beides steht für "Extended Regular Expression Parameter", aber die CCU2 versteht es nur unter -r, nicht unter -E.

However, das Script läuft nun zwar durch, aber als Resultat erhalte ich nur:

/usr/local/addons/user$ ./alexa_remote_control.sh -a
./alexa_remote_control.sh: line 71: getopts: not found
files do not exist. logging in ...
awk: /usr/local/addons/user/tmp/.alexa.cookie: No such file or directory
awk: /usr/local/addons/user/tmp/.alexa.cookie: No such file or directory
cookie expired, logging in again ...
awk: /usr/local/addons/user/tmp/.alexa.cookie: No such file or directory
awk: /usr/local/addons/user/tmp/.alexa.cookie: No such file or directory
no alexa command received

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

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

Beitrag von fantasticn » 21.11.2017, 16:33

Nochmals Nachtrag: Sieht so aus, als beherrscht die CCU2 auch nicht den Befehl "getopts". Zumindest kommt beim debugging des Scripts hier auch ein Fehler. Nur wie ersetze ich das jetzt im Script durch etwas passendes?

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

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

Beitrag von fantasticn » 24.11.2017, 12:26

Ok, so wie es aussieht, haben wir eine Lösung.

1. Man lädt sich das Script aus diesem Blog herunter: http://blog.loetzimmer.de/2017/10/amazo ... -echo.html
Achtung: Die Version OHNE jq Unterstützung nehmen. Außerdem mit rechter Maustaste und "link speicher unter .." runterladen, nicht das Script per Copy&Paste kopieren, da es dabei zu Transfer-Fehlern kommt und das Script so nicht läuft.

2. Man trägt oben im Script in die dafür vorgesehenen Variablen seine Amazon-Email-Adresse und das Amazon-Passwort ein.

3. Man ersetzt alle Befehle "curl" mit "/usr/local/addons/cuxd/extra/curl -k"
Hinweis: Die Pfadangabe zu Curl ist bei der CCU2 wichtig, da Curl ansonsten nicht gefunden wird. Zudem ist auf der CCU2 zwingend der Parameter "-k" zu ergänzen, damit der Curl-Aufruf funktioniert.

4. Nun auf die CCU2 kopieren in das Wunschverzeichnis (meistens wohl /usr/local/addons/user) und natürlich nicht vergessen, die Rechte zu setzen (am besten auf 0777)

Fertig.

Der Aufruf des Scripts ist im oben verlinkten Blog erklärt. Das Script lädt beim ersten Start eine Liste aller erkannten Geräte herunter. Diese Geräte können nun auch mit Namen angesprochen werden (nicht nur mit der Device-ID). Auch TuneIn-Radiosender können mit Namen aufgerufen werden. Das Script aktualisiert zudem automatisch den Cookie, allerdings nur dann, wenn der alte Cookie tatsächlich abgelaufen ist (um die Gefahr zu vermeiden, dass Amazon einer zu häufigen Cookie-Aktualisierung einen Riegel vorschiebt).

Weitere Infos hier:
https://www.alefo.de/viewtopic.php?f=14 ... 255#p31255

Have fun!

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

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

Beitrag von fantasticn » 25.11.2017, 14:21

Und nochmals ein Nachtrag von mir:

Der Autor hat das Script nun so angepasst, dass man den Curl-befehl nicht mehr zu ersetzen braucht. Vielmehr hat er dafür sowie auch für den Parameter "-k" bereits Variablen angelegt. Schritt 3 meiner "Anleitung" im vorherigen Post entfällt also. Man muss nur noch im Script selbst (1.) Amazon-Mail-Adresse und Passwort eintragen, (2.) den Pfad zum Curl Befehl setzen (im Regelfall '/usr/local/addons/cuxd/extra/curl') sowie den Pfad zum tmp-Verzeichnis angeben (am besten '/usr/local/addons/user/tmp'). Wie gesagt, für der Parameter "-k" wurde jetzt auch schon standardmäßig vorgesorgt.

Erster Aufrif mit "./alexa_remote-control -a" lädt den aktuellen cookie und die Geräteliste ins tmp-Verzeichnis. Danach können dann munter Befehle an die gefundenen Alexa-Geräte (Echos/Echo Dots, Sonos Lautsprecher etc.) gesandt werden. Die Logik dafür ist - wie auch das Script selbst (Version ohne "jq" nehmen und runterladen, nicht Copy&Paste des Scrip-Textes!) - hier zu finden: http://blog.loetzimmer.de/2017/10/amazo ... -echo.html

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

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

Beitrag von ftpgonzo » 25.11.2017, 22:32

Nabend, ich bekomme ständig diesen Fehler .. hat einer eine Idee ?

Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!

was mir auch ausfällt ... er schreibt nix in die TMP Datei :roll:

mfg

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

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

Beitrag von fantasticn » 26.11.2017, 09:49

Hallo,

der Fehler sagt mir leider gar nichts. Wenn Du alles nach Anleitung gemacht hast, sollte es eigentlich laufen. Kontrollier doch mal:

1. Hast Du das Script korrekt runtergeladen (die Version OHNE jq-Unterstützung!) und nicht den Script-Text per Copy&Paste kopiert? (Das geht nämlich nicht; dann wird das Script nicht richtig übernommen).
2. Hast Du CuxD auf der CCU2 korrekt installiert und läuft Curl?
3. Befindet sich Curl unter /usr/local/addons/cuxd ?
4. Befindet sich das Script unter /usr/local/addons/user und hast Du dort auch noch ein Unterverzeichnis namens tmp angelegt?
5. Hat das Script die Recht 0777 (oder 7777)? (Bei WinSCP einfach rechte Maustaste auf das Script und dann "Eigenschaften" anwählen)
6. Hast Du im Script folgende Dinge eingetragen:
- Bei "EMAIL =" die E-Mail-Adresse des Amazon-Accounts
- Bei "PASSWORD =" das Passwort des Amazon-Accounts
- Bei "CURL = " den Pfad zu Curl ( /usr/local/addons/cuxd )
- Bei "TMP = " den Pfad zum TMP-Ordner ( /usr/local/addons/tmp )
7. Hast Du das Script zuerst mit "./alexa_remote_control.sh -a" gestartet?

Die vom Script angelegten Dateien im tmp-Verzeichnis sind übrigens "unsichtbar", weil der Name einen . davor hat. Du musst also in den Einstellungen von WinSCP den Haken setzen, dass auch unsichtbare Dateien angezeigt werden. Sonst siehst Du sie nicht. Aufgrund Deiner Fehlermeldung glaube ich jedoch, dass bislang noch nichts angelegt wurde. Für mich klingt es so, als hättest Du einen Fehler im Script (siehe oben Punkt 1).

VG

FantasticN

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

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

Beitrag von ftpgonzo » 26.11.2017, 18:27

Nabend, vorab danke für deine Hilfe :)

Neuer Anlauf ... neues Problem :roll:

Hab das Script nue runtergeladen , Bearbeitet, Dateirechte wie immer 755

Jetzt sagt der mir ich habe keine Rechte zum Schreiben siehe Screen :?:


Danke schonmal
Dateianhänge
hmforum.JPG

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

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

Beitrag von fantasticn » 26.11.2017, 19:57

Hmm, in cuxd befindet sich Curl. Und das braucht er, um die Befehle an Alexa zu senden. Eigentlich solltes es nach der Einrichtung von cuxd problemlos funktionieren. Vielleicht hast Du dabei etwas falsch gemacht?

https://www.homematic-inside.de/software/item/cuxd

und

http://www.christian-luetgens.de/homema ... lation.htm

Du kannst ja mal die Rechte für das Verzeichnis von cuxd und alle Dateien darin (vor allem curl) auf 777 (oder 755) setzen. Vielleicht kommt dann kein "permission denied" mehr.

Antworten

Zurück zu „CUxD“