HomeMatic CCU2 bei ELV bestellen

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

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

Werbung


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

Beitragvon fantasticn » 02.04.2017, 08:55

Hallo Leute,

ich habe eine CCU2 und dank einiger Anleitungen und Tipps hier im Forum schon einige nette Projekte damit lösen können (Waschmaschinen-Benachrichtigung, Schaltung meines Onkyo-Receivers, Benachrichtigung auf meinen Kodi-Media-Center etc.). Trotzdem bin ich leider alles andere als ein "Experte" in dieser Thematik. Aktuell versuche ich meinen Amazon Echo Dots Befehle mit CURL zu senden (CuxD ist auf der CCU2 installiert). So soll bei Auslösung eines bestimmten Ereignisses oder bei einer bestimmten Uhrzeit der Echo Dot einen bestimmten Radiosender abspielen.

Der Befehl dafür sieht nun so aus (meine Zugangsdaten und Gerätenummern habe ich mit XXX getauscht):

Code: Alles auswählen
curl "https://layla.amazon.de/api/tunein/queue-and-play?deviceSerialNumber=XXXXXXXXXXXXXXXX&deviceType=XXXXXXXXXXXXXX&guideId=s223993&contentType=station&callSign=&mediaOwnerCustomerId=XXXXXXXXXXXXXX" -X POST -H "Origin: http://alexa.amazon.de" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: de" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3053.3 Safari/537.36" -H "Content-Type: application/json; charset=UTF-8" -H "Accept: application/json, text/javascript, */*; q=0.01" -H "Referer: http://alexa.amazon.de/spa/index.html" -H "csrf: -XXXXXXXXX" -H "Cookie: x-amzn-dat-gui-client-v=1.24.1837.0; x-wl-uid=1XWqRlX555joaQVJuFPBsHvRvpHa6OCtH0QtkmYURb0DwIGKl6zdyVJtZMAMSO42psBfuEKOgBdurevCV45Q24I47G9FXJYhSlTaUc5G2lzuy2WZbATOefyeJq4MaLMMrjFvftrP2msQ=; AMCV_69C78985561E42B67F000101%40AdobeOrg=283337926%7CMCIDTS%7C17170%7CMCMID%7C36908078956851579490100616601931278352%7CMCAAMLH-1484036062%7C6%7CMCAAMB-1484036062%7CNRX38WO0n5BH8Th-nqAG_A%7CMCAID%7C2BB7CA3F8530D255-40000306C005C3F5; s_getNewRepeat=1483431714451-New; s_vnum=1894446732970%26vn%3D10; s_nr=1491035878848-Repeat; s_dslv=1491035878849; lc-acbde=de_DE; csrf=-278072885; session-id=252-4392109-2867543; session-id-time=2121772066l; ubid-acbde=277-8128891-9759763; session-token=\"q122ff9VOEACrdKgr/sS8gQgJBpZvNM3lNyHN6OfOAjkvavPAnAo69Yg4sT4Ox4y3njmnrGFQf9A5RB3uAgv3QUQw4me5KDquiPfaXLuTyMKcB0YbEfsTQLA4Mx6KVmBlUeNCaZMzoBkBMgNoN2vGL3ywPLMr6ByNanO/BItU0olPSv5H3/nCehxgbRV2uXHoCd4mmthAzmBKyo6FnZWjxaBlsOUbDmPeFzmNWWxNPw=\"; x-acbde=\"hz1QY8YzbAces@WHIF?HTVtYMj3QYUQP\"; at-acbde=Atza|IwEBICPdOTiv_Xv7YjcTAW1Gm5rMFKP55PIiURY8lyrsP-AywJEDzZ3KVTmRZj0BR-SNFiaTwcDbBZsvpJEzDpZQS8Cf1S6r6s3L0-GVizipPRl4kDfh8zTZumwSJwDep-Cm8hR7ypXuqV_OqMJk2fdJ9Ylzdo0b5N4ntGdNvgtBniU_tJfkYYZFEoLZtINzv8SzRN1qU60EXizmmeXKjKWhgsZnepRFqRTBtYWdpKr61o9edWcjlczqgVPwU-qDGT4kNtLHiHm0oUrvfv3nkmiVs4Hjv9-ujobqzNJMTKYC_GeM1Y8VPqIx1ByG9I2hU_d7bML0KlqTCK5Jrb5QqMYDs2f8NsCTHq9LDQmN3dVqpYsvVAf8XdRHtLQXsxKJpSVCcRYf_OqhJ-rXaLCeCUSrQECj; sess-at-acbde=\"eO9fGMk29JwaLOVRtGXHww6J7i4tDRkvcgRnQCU1IvI=\"" -H "Connection: keep-alive" -H "Content-Length: 0" -H "DNT: 1" --compressed


Sende ich den Befehl mit CURL.exe aus Windows heraus, klappt es auch einwandfrei. Aber all meine Versuche, das in ein Skript für die CCU2 zu verpacken, sind bislang gescheitert. Ich vermute, es liegt an den vielen Anführungszeichen und Leerzeichen. Ich habe da noch nie durchgeblickt, wie man eine solche Befehlszeile in einem Skript richtig verpackt. Kann mir dabei jemand helfen?

Ach ja: Wer sich persönlich auch für das Thema CURL-Steuerung des Amazon Echo/Echo Dot interessiert, kann hier lesen wie es funktioniert:
Code: Alles auswählen
https://www.gehrig.info/alexa/Alexa.html


Vielen Dank vorab!
Zuletzt geändert von fantasticn am 07.04.2017, 17:30, insgesamt 2-mal geändert.
fantasticn
 
Beiträge: 41
Registriert: 15.03.2016, 15:34

Re: Brauche Hilfe für CURL

Beitragvon Hubobel » 02.04.2017, 11:57

Du musst vor jeden " einen \ setzen, außer beim aller ersten " und dem letzten ".
Es könnte aber auch über einen URl-Shortener gehen (z.Bsp.bit.ly) was aber in Sachen Datenschutz eher suboptimal sein dürfte.
Gruß, Carsten
--------------------------------------------
RaspberryMatic 2.27.8.20170501 @ RPi3
--------------------------------------------
102 Kanäle in 39 Geräten und 4 CUxD-Geräten
Programme: 59 - Skripte: 67 - Variabelnamen: 30
--------------------------------------------
Benutzeravatar
Hubobel
 
Beiträge: 115
Registriert: 10.05.2016, 11:49
Wohnort: Exilplauner in Oggersheim

Re: Brauche Hilfe für CURL

Beitragvon fantasticn » 02.04.2017, 14:20

Hallo Carsten,

vielen Dank für die Antwort. Ich habe jetzt wieder etliche Versuche gestartet und "\" vor die Anführungszeichen gesetzt (teilweise waren schon welche vorhanden). Ich habe sie mal nur vor die öffnenden Anführungszeichen gesetzt, dann auch vor die schließenden. Aber nichts hat etwas gebracht.

Mein Skript sieht nun so aus (mit allen Anführungszeichen):

Code: Alles auswählen
string stdout;
string stderr;
dom.GetObject(„CUxD.CUX2801001:1.CMD_EXEC“).State(„LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl \"https://layla.amazon.de/api/tunein/queue-and-play?deviceSerialNumber=XXXXXXXXXXXXXXXX&deviceType=XXXXXXXXXXXXXX&guideId=s223993&contentType=station&callSign=&mediaOwnerCustomerId=XXXXXXXXXXXXXX\" -X POST -H \"Origin: http://alexa.amazon.de" -H \"Accept-Encoding: gzip, deflate, br\" -H \"Accept-Language: de\" -H \"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3053.3 Safari/537.36\" -H \"Content-Type: application/json; charset=UTF-8\" -H \"Accept: application/json, text/javascript, */*; q=0.01\" -H \"Referer: http://alexa.amazon.de/spa/index.html\" -H \"csrf: -XXXXXXXXX\" -H \"Cookie: x-amzn-dat-gui-client-v=1.24.1837.0; x-wl-uid=1XWqRlX555joaQVJuFPBsHvRvpHa6OCtH0QtkmYURb0DwIGKl6zdyVJtZMAMSO42psBfuEKOgBdurevCV45Q24I47G9FXJYhSlTaUc5G2lzuy2WZbATOefyeJq4MaLMMrjFvftrP2msQ=; AMCV_69C78985561E42B67F000101%40AdobeOrg=283337926%7CMCIDTS%7C17170%7CMCMID%7C36908078956851579490100616601931278352%7CMCAAMLH-1484036062%7C6%7CMCAAMB-1484036062%7CNRX38WO0n5BH8Th-nqAG_A%7CMCAID%7C2BB7CA3F8530D255-40000306C005C3F5; s_getNewRepeat=1483431714451-New; s_vnum=1894446732970%26vn%3D10; s_nr=1491035878848-Repeat; s_dslv=1491035878849; lc-acbde=de_DE; csrf=-XXXXXXXXX; session-id=252-4392109-2867543; session-id-time=2121772066l; ubid-acbde=277-8128891-9759763; session-token=\"q122ff9VOEACrdKgr/sS8gQgJBpZvNM3lNyHN6OfOAjkvavPAnAo69Yg4sT4Ox4y3njmnrGFQf9A5RB3uAgv3QUQw4me5KDquiPfaXLuTyMKcB0YbEfsTQLA4Mx6KVmBlUeNCaZMzoBkBMgNoN2vGL3ywPLMr6ByNanO/BItU0olPSv5H3/nCehxgbRV2uXHoCd4mmthAzmBKyo6FnZWjxaBlsOUbDmPeFzmNWWxNPw=\"; x-acbde=\"hz1QY8YzbAces@WHIF?HTVtYMj3QYUQP\"; at-acbde=Atza|IwEBICPdOTiv_Xv7YjcTAW1Gm5rMFKP55PIiURY8lyrsP-AywJEDzZ3KVTmRZj0BR-SNFiaTwcDbBZsvpJEzDpZQS8Cf1S6r6s3L0-GVizipPRl4kDfh8zTZumwSJwDep-Cm8hR7ypXuqV_OqMJk2fdJ9Ylzdo0b5N4ntGdNvgtBniU_tJfkYYZFEoLZtINzv8SzRN1qU60EXizmmeXKjKWhgsZnepRFqRTBtYWdpKr61o9edWcjlczqgVPwU-qDGT4kNtLHiHm0oUrvfv3nkmiVs4Hjv9-ujobqzNJMTKYC_GeM1Y8VPqIx1ByG9I2hU_d7bML0KlqTCK5Jrb5QqMYDs2f8NsCTHq9LDQmN3dVqpYsvVAf8XdRHtLQXsxKJpSVCcRYf_OqhJ-rXaLCeCUSrQECj; sess-at-acbde=\"eO9fGMk29JwaLOVRtGXHww6J7i4tDRkvcgRnQCU1IvI=\"" -H \"Connection: keep-alive\" -H \"Content-Length: 0\" -H \"DNT: 1\" --compressed“)
Zuletzt geändert von alchy am 05.04.2017, 11:22, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
fantasticn
 
Beiträge: 41
Registriert: 15.03.2016, 15:34

Re: Brauche Hilfe für CURL

Beitragvon Hubobel » 03.04.2017, 09:10

Ohne das ich eine URL jetzt im Detail überprüfen konnte, das Script sollte so aussehen:

Code: Alles auswählen
string tmpB = "extra/curl curl -k https://layla.amazon.de/api/tunein/queue-and-play?deviceSerialNumber=XXXXXXXXXXXXXXXX&deviceType=XXXXXXXXXXXXXX&guideId=s223993&contentType=station&callSign=&mediaOwnerCustomerId=XXXXXXXXXXXXXX\" -X POST -H \"Origin: http://alexa.amazon.de" -H \"Accept-Encoding: gzip, deflate, br\" -H \"Accept-Language: de\" -H \"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3053.3 Safari/537.36\" -H \"Content-Type: application/json; charset=UTF-8\" -H \"Accept: application/json, text/javascript, */*; q=0.01\" -H \"Referer: http://alexa.amazon.de/spa/index.html\" -H \"csrf: -XXXXXXXXX\" -H \"Cookie: x-amzn-dat-gui-client-v=1.24.1837.0; x-wl-uid=1XWqRlX555joaQVJuFPBsHvRvpHa6OCtH0QtkmYURb0DwIGKl6zdyVJtZMAMSO42psBfuEKOgBdurevCV45Q24I47G9FXJYhSlTaUc5G2lzuy2WZbATOefyeJq4MaLMMrjFvftrP2msQ=; AMCV_69C78985561E42B67F000101%40AdobeOrg=283337926%7CMCIDTS%7C17170%7CMCMID%7C36908078956851579490100616601931278352%7CMCAAMLH-1484036062%7C6%7CMCAAMB-1484036062%7CNRX38WO0n5BH8Th-nqAG_A%7CMCAID%7C2BB7CA3F8530D255-40000306C005C3F5; s_getNewRepeat=1483431714451-New; s_vnum=1894446732970%26vn%3D10; s_nr=1491035878848-Repeat; s_dslv=1491035878849; lc-acbde=de_DE; csrf=-XXXXXXXXX; session-id=252-4392109-2867543; session-id-time=2121772066l; ubid-acbde=277-8128891-9759763; session-token=\"q122ff9VOEACrdKgr/sS8gQgJBpZvNM3lNyHN6OfOAjkvavPAnAo69Yg4sT4Ox4y3njmnrGFQf9A5RB3uAgv3QUQw4me5KDquiPfaXLuTyMKcB0YbEfsTQLA4Mx6KVmBlUeNCaZMzoBkBMgNoN2vGL3ywPLMr6ByNanO/BItU0olPSv5H3/nCehxgbRV2uXHoCd4mmthAzmBKyo6FnZWjxaBlsOUbDmPeFzmNWWxNPw=\"; x-acbde=\"hz1QY8YzbAces@WHIF?HTVtYMj3QYUQP\"; at-acbde=Atza|IwEBICPdOTiv_Xv7YjcTAW1Gm5rMFKP55PIiURY8lyrsP-AywJEDzZ3KVTmRZj0BR-SNFiaTwcDbBZsvpJEzDpZQS8Cf1S6r6s3L0-GVizipPRl4kDfh8zTZumwSJwDep-Cm8hR7ypXuqV_OqMJk2fdJ9Ylzdo0b5N4ntGdNvgtBniU_tJfkYYZFEoLZtINzv8SzRN1qU60EXizmmeXKjKWhgsZnepRFqRTBtYWdpKr61o9edWcjlczqgVPwU-qDGT4kNtLHiHm0oUrvfv3nkmiVs4Hjv9-ujobqzNJMTKYC_GeM1Y8VPqIx1ByG9I2hU_d7bML0KlqTCK5Jrb5QqMYDs2f8NsCTHq9LDQmN3dVqpYsvVAf8XdRHtLQXsxKJpSVCcRYf_OqhJ-rXaLCeCUSrQECj; sess-at-acbde=\"eO9fGMk29JwaLOVRtGXHww6J7i4tDRkvcgRnQCU1IvI=\"" -H \"Connection: keep-alive\" -H \"Content-Length: 0\" -H \"DNT: 1\" --compressed";
 
dom.GetObject("CUxD.CUX2801001:5.CMD_SETS").State(tmpB);
dom.GetObject("CUxD.CUX2801001:5.CMD_QUERY_RET").State(1);
string tmpC = dom.GetObject("CUxD.CUX2801001:5.CMD_RETS").State();


in tmpC wird dir die Antwort zurückgeliefert, sollte der curl-Aufruf prinzipiell erfolgreich abgesetzt werden.

Weiterhin viel Erfolg!
Gruß, Carsten
--------------------------------------------
RaspberryMatic 2.27.8.20170501 @ RPi3
--------------------------------------------
102 Kanäle in 39 Geräten und 4 CUxD-Geräten
Programme: 59 - Skripte: 67 - Variabelnamen: 30
--------------------------------------------
Benutzeravatar
Hubobel
 
Beiträge: 115
Registriert: 10.05.2016, 11:49
Wohnort: Exilplauner in Oggersheim

Re: Brauche Hilfe für CURL

Beitragvon shartelt » 03.04.2017, 10:05

könntet Ihr bitte die Codes in die Code Tags packen?

Und Hubobel...bitte die Typenbezeichnungen aus Deiner Signatur nehmen ;) Danke!

Tante Edit(h) sagt: hier der entsprechende Faden dazu
shartelt
 
Beiträge: 779
Registriert: 14.01.2015, 15:59

Re: Brauche Hilfe für CURL

Beitragvon fantasticn » 03.04.2017, 20:44

Hallo Carsten,

Vielen Dank für Deine Hilfe! Ich hab gerade Dein vorgeschlagenes Skript getestet, also den Text rüberkopiert, die "XXXX"-Felder mit den jeweiligen Daten ersetzt und dann gestartet. Keine Reaktion. Der Amazon Echo Dot macht nichts (eigentlich sollte er beginnen, Hit Radio FFH abzuspielen).

Wie gesagt: Mit Curl.exe unter Windows läuft die o.g. Befehlszeile einwandfrei. Das muss doch also umsetzbar sein unter der CCU2...?
fantasticn
 
Beiträge: 41
Registriert: 15.03.2016, 15:34

Re: Brauche Hilfe für CURL

Beitragvon terny » 07.04.2017, 16:46

Hallo zusammen,

seit einigen Tagen habe ich auch einen Echo und versuche diesen nun als Radiowecker zu verwenden.
Damit könnte ich die Bose Soundtouch 10, welche ich bisher dazu verwende ausmustern.
Mit der Bose hat es nach der Anleitung schnell funktioniert diese über die CCU2+CuxD zu automatisieren:
(http://www.appproject.de/Hausautomatisi ... matic.html)

Leider kann die Alexa APP keinen Radiowecker abbilden, weswegen ich den Echo per oben genannte "Gehrig" Anleitung mittels eines Programms zeitgesteuert aus der CCU2 starten will.
In diesen Foren geht es ebenfalls darum, jedoch kann ich dort auch keine Lösung finden:
(https://www.amzecho.de/alexa-allgemein- ... -t739.html,
https://knx-user-forum.de/forum/projekt ... t%C3%A4rke)


Leider scheitere ich auch daran den ausgelesenen Curl Befehl mittels Skript durch die CCU2 zu starten.
Ist das auf diesem Weg, den auch fantasticn versucht, überhaupt technisch möglich oder nicht?
Oder liegt es einfach an der falschen Ausführung des Skripts bzw. der falschen Syntax?

Versuche wie unten haben leider nicht funktioniert.
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl "https://layla.amazon.de/api/tunein/.......6575" -H "Connection: keep-alive" -H "Content-Length: 0" --compressed");


Danke vorab für euer Hilfe.

@ fantasticn: Aufgrund des recht allgemeinen Überschrift, habe ich diesen Beitrag erst recht spät gefunden.
Vielleicht könntest du diesen noch auf z.B. "Brauche Hilfe für CURL um Alexa / Echo / Echo Dot fernzusteuern"
Bestimmt hilft es, dass mehr Nutzer mit gleichem Problem oder mit bereits fertigen Lösungen hier landen :-)
Zuletzt geändert von terny am 02.05.2017, 14:06, insgesamt 1-mal geändert.
terny
 
Beiträge: 26
Registriert: 23.10.2015, 09:08

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

Beitragvon fantasticn » 07.04.2017, 17:41

Hallo terny,

freut mich, dass ich nicht der Einzige bin, der nach einer Lösung für ein solches Skript sucht. Deinem Vorschlag folgend habe ich die Überschrift des threads mal etwas angepasst. Aber eigentlich war meine Frage tatsächlich gar nicht so Alexa spezifisch gestellt, sondern eher allgemein auf die Umsetzung von Curl-Skripts auf der CCU2 gemünzt. Denn - und damit beantwortet sich wohl auch Deine entsprechende Frage - prinzipiell habe ich die Sache mit Curl.exe unter Windows bereits laufen. Man muss nur der verlinkten Anleitung von Gehrig folgen und dann von dem aus Chrome heraus kopierten link noch alle ^-Zeichen entfernen. Aber wenn ich das mit Curl auf der CCU2 versuche, geht es leider merkwürdigerweise nicht.

Meine Vermutung ist, dass das Problem etwas mit den mehrfach geschachtelten Anführungszeichen und ggf. noch weiteren "Sonderzeichen" zu tun hat. Unter Curl.exe bei Windows wird es geschluckt, unter Curl auf der CCU2 nicht. Ich hab mir da aber schon eine Wolf getestet (\ vor jedes Anführungszeichen oder die Anführungszeichen erstezt mit ') ohne Erfolg. Wir brauchen also jemand, der uns den von mir oben verlinkten Textbaustein mal probeweise so umstellt, dass er auch mit Curl auf der CCU läuft. Wenn wir den Kniff raushaben, wissen wir, wie wir weitere Befehle (andere Radiosender, Play, Pause, Stop etc.) entsprechend umsetzen müssen.
fantasticn
 
Beiträge: 41
Registriert: 15.03.2016, 15:34

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

Beitragvon Dragonfly » 09.04.2017, 00:48

Das wird so nix - für den Aufruf in der Form muß man encoden - und das lass ich dich bei der Wurst mal machen....
Das einfachste wäre, die Shell-Dateien vom Autor zu nehmen und dann einfach den curl-Aufruf auf CUxD umschreiben;
Diese Shell-Datei dann über ein Programm aufrufen.

LG
431 Kanäle in 152 Geräten und 73 CUxD-Kanäle in 25 CUxD-Geräten

CCU-RemotePC - Befehle der CCU unter Windows empfangen und senden
Benutzeravatar
Dragonfly
 
Beiträge: 1206
Registriert: 04.01.2010, 12:40
Wohnort: Tyrol

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

Beitragvon fantasticn » 09.04.2017, 09:48

Dragonfly hat geschrieben:Das wird so nix - für den Aufruf in der Form muß man encoden - und das lass ich dich bei der Wurst mal machen....
Das einfachste wäre, die Shell-Dateien vom Autor zu nehmen und dann einfach den curl-Aufruf auf CUxD umschreiben;
Diese Shell-Datei dann über ein Programm aufrufen.

LG


Hi Dragonfly,

thanks für die Antwort. Ich hatte die SH-Scripts von Gehrig mit win-bash unter Windows getestet, aber sie liefen bei mir nicht. Meine Hoffnung, dass sie auf der CCU2 laufen würden, hält sich deshalb in Grenzen. Zudem muss ich eingestehen, dass ich nicht genau weiß, wie man sie einbinden würde. Irgendwie muss doch dieser dämliche Curl-Befehl auf der CCU umsetzbar sein...
fantasticn
 
Beiträge: 41
Registriert: 15.03.2016, 15:34

Nächste

Zurück zu CUxD

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.