NEWS
Alexa Radio ausschalten bzw. Einschalten
-
Das Skript um die Lautstärke von Alexa zu steuern:
// Alexa mit Javaskript in ioBroker steuern // Variante: Lautstärke steuern // ---------------------------------------- // 1\. cURL extrahieren, siehe // https://www.gehrig.info/alexa/Alexa.html // ---------------------------------------- // Infos und Resourcen zum Skript: // Webseiten/URLs Request mit Fehlerbehandlung, siehe: // http://forum.iobroker.net/viewtopic.php?f=21&t=4259&p=40890&hilit=request#p40880 // Alexa Steuerskripte: // https://github.com/thorsten-gehrig/alexa-remote-control var logOn = true; // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben. var https = require('https'); // Node Module https verwenden var deviceSerialNumber = 'xxxx'; // eigene Daten eintragen var deviceType = 'xxxxx'; // eigene Daten eintragen var csrf = 'xxxxx'; // eigene Daten eintragen var cookie = 'xxxxxxx sehr langer String :-)'; // eigene Daten eintragen // Lautstärke var volume = 80; // Volume: 0-100 var data ='{"type":"VolumeLevelCommand","volumeLevel":'+volume+'}'; // https Request: var options = { host: 'layla.amazon.de', path: '/api/np/command?deviceSerialNumber='+deviceSerialNumber+'&deviceType='+deviceType, method: 'POST', headers: { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36', 'Content-Type': 'text/plain', 'csrf' : csrf, 'Cookie' : cookie } }; function httpsRequest() { var req = https.request(options, function(res) { //res.setEncoding('utf8'); if(logOn) log('STATUS: ' + res.statusCode); // Statuscode if(logOn) log('HEADERS: ' + JSON.stringify(res.headers)); // Header (Rückmeldung vom Webserver) }); req.on('error', function(e) { // Fehler abfangen log('ERROR: ' + e.message,"warn"); }); if(logOn) log("Data: " + data); // write data to request body req.write(data); req.end(); } // main // ----------------------------------------------------------------------------- function main() { httpsRequest(); } // Start Skript: // ----------------------------------------------------------------------------- // Kommentar entfernen, wenn die Abfrage zum Skriptstart ausgeführt werden soll: setTimeout(main, 500);
-
Schon mal vielen Dank für Scripts!
Habe leider auch die Probleme wie MArcolotti. Der Cookie Wurm ist die Herausforderung. Das sollte das zu kopierende sein!?:
> x-amzn-dat-gui-client-v=1.24.1755.0; x-wl-uid=1h1qY12j4EGQUmsiuHicf3XNW4NDA7QWd2ppfGmWzGKJoLeJ000H6UubHmN9fs+MqLqroqTH4TK/s/3Ua61LulBC4oOgX0w75tsIM0uJPIb0UXUA6mUR9Ib/qctX0a3Ol1j8rzlAtBzI=; s_vnum=1916337938350^%^26vn^%^3D1; s_nr=1484338226680-New; s_dslv=1484338226682; csrf=774662358; lc-acbde=de_DE; session-id=261-2998010-1601047; session-id-time=2122366660l; ubid-acbde=253-1097861-8288162; session-token=^\^"l5XPt46usn7B6SoL5mOgsa6frW2nsivF7xIqUXGxoFlkBEbm3BS+dys50R/A0hB7aXFpt4U70qvgGj+MvGFzY0RnVLc3s+MxygYGCauB+3vWfAyDe6ftvPmrQ/bLOheHLGy2QV71mErCyq+xY9dLzUYi52N3NtaDcWgxx6erOtsEzd5wzfQnT0IVoIZmn1F2Qy6PRXO6myz4/vR3JzyYnM5CPrHkBHLBSWxPKublgfY=^\^"; x-acbde=^\^"evLOXLWe6Rd?yDsy3F4eISMlbXQR8lGd^\^"; at-acbde=Atza^|IwEBIDSHgaEVLVp5cRlfh0DQURirTfBOh4kwuX5JnpLID9T6-mCRAnhc2dFleVcG3cDgX4matAyOkFG-0ETggmm_YJqqwenObx7iLSgV4LuvVCNgDOvG-MxPU8zGTgMQswhaEIHk3B1Q1WXVYgs0M5JJWy3aIIRxp_uqf0ERQJ3pvX7BXAXzz1s0e6CWMVh2U6K7zmv_gGNGAeeaWqGPe76MgwQloJ5BY8UdyYOe7f9MME_tEFvB8nZSYCWaz46T8AAKydyCBvs5gK_iFHKXAe04bfIt6sztzkKt3lzRdTNx_w_X80C2yydCQhJe6B3VeIze_hnSq0WA-IYdBC1OQdkG71KLO1GIWSBOw2Mx3-D4QiyC5yAVwO4_tWJhPxEk8y9NVNkJEOlBNyHaKvYu_n6FjDc8; sess-at-acbde=^\^"f7R7cys4RjkJQm5//WSORykuJcQ3WTXkYKNbGjdda+c=^\^""
Wie wird das Script angewendet? Script Start und Radio von Alexa startet?
EDIT: ist wohl auch ein Formatierungsfehler mit drin. Bei mir ist oft:````
^^Habe es mit Win10 gemacht und Editor.
-
Das Wichtigste ist, dass Ihr den Cookie sauber ins Skript schreibt.
Der Beginn sieht bei Dir schon gut aus: x-amzn-dat-gui-client-v=
Bei mir endet der Cookie mit: csrf=xxxxxxxxxx
Das Ende scheint Ihr beide nicht mitzukopieren.
Alles in einer Zeile und am Anfang und Ende jeweils ein einfaches Hochkomma.
Das ^^ sieht in der Tat komisch aus. Nutzt Du einen Editor, der auf nur Text eingestellt ist? Ggf. noch der Zeichensatz (Codepage).
Ist das in der Chrome Debugausgabe auch schon so drin? Sonst kopier doch von Chrome direkt in den ioBroker Editor und bau da die eine Zeile zusammen.
Wenn das mit dem Cookie funktioniert, geht es weiter. Die beiden bisherigen Skripte sind nur erst einmal da, um die grundsätzlichen Funktionen Radio und Kommandos zu testen. Ich mache gerade ein komplettes Skript fertig, in dem dann alles drin ist, inkl. der Datenpunkte zum steuern.
Wichtig ist aber das eins von den kleinen Skripten bei Euch funktionieren (Cookie), sonst macht das Andere auch keinen Sinn.
-
Die Alexa-Kommandos habe ich bisher im Skript eingebaut:
// alexaCommand("volume",70); // Alle Anwendungen // alexaCommand("pause"); // Radio, Spotify, Hörbücher // alexaCommand("play"); // Radio, Spotify, Hörbücher // alexaCommand("next"); // z.B. Spotify: nächstes Lied // alexaCommand("forward"); // z.B. Hörbücher: 30 Sekunden vor // alexaCommand("rewind"); // z.B. Hörbücher: 30 Sekunden zurück // alexaCommand("shuffle",true); // alexaCommand("shuffle",false);
-
Bei mir kommt kein Fehler 401 mehr.
Läuft es nun bei mir? So sieht der log aus:
javascript.0 2017-04-08 15:16:37.513 info script.js.common.Alexa-start: BODY: javascript.0 2017-04-08 15:16:37.512 info script.js.common.Alexa-start: ARRAY Länge: 0 javascript.0 2017-04-08 15:16:37.511 info script.js.common.Alexa-start: ARRAY mit den einzelnen Zeilen: javascript.0 2017-04-08 15:16:31.472 info script.js.common.Alexa-start: HEADERS: {"x-amzn-requestid":"blabla1234567890","access-control-allow-origin":"http://alexa.amazon.de","content-encoding":"gzip","vary":"Origin","acc javascript.0 2017-04-08 15:16:31.472 info script.js.common.Alexa-start: STATUS: 0 javascript.1 2017-04-08 15:16:30.765 info Stop script script.js.common.Alexa-start javascript.0 2017-04-08 15:16:30.700 info script.js.common.Alexa-start: registered 0 subscriptions and 0 schedules javascript.0 2017-04-08 15:16:30.696 info Start javascript script.js.common.Alexa-start javascript.0 2017-04-08 15:16:30.687 info Stop script script.js.common.Alexa-start
-
Was hast du getan?
-
Was hast du getan? `
Ich habe bis einschließlich````
csrf=xxxxxxxxxDirekt kopieren von chrome in ioB war wieder dieser Formatierungsfehler dabei.
-
Bei mir kommt kein Fehler 401 mehr.
Läuft es nun bei mir? So sieht der log aus:
javascript.0 2017-04-08 15:16:31.472 info script.js.common.Alexa-start: STATUS: 0 `
Würde sagen, dass es nicht läuft.
Status sollte 200 sein.
Wenn ich beim Cookie das csrf=xxxxxxxxx; entferne bekomme ich Deine Log-Ausgabe.
Also Dein Cookie scheint noch nicht OK zu sein.
[EDIT] Kleiner Nachtrag:
Das csrf=xxxxxxxxx ist beim Cookie für die Alexa Kommandos (Play, Pause, +30 Sekunden, usw.) nicht mit dabei.
-
Würde sagen, dass es nicht läuft.
Status sollte 200 sein. ` Status 200habe ich nun… aber der Rest sieht komisch aus!?
EDIT: funktioniert! Starte ich das Script, startet Alexa!
javascript.0 2017-04-08 21:51:39.638 info script.js.common.Alexa-start: BODY: ��VJ-*�/R��+�ɩT�s javascript.0 2017-04-08 21:51:39.637 info script.js.common.Alexa-start: ARRAY Länge: 1 javascript.0 2017-04-08 21:51:39.637 info script.js.common.Alexa-start: ARRAY mit den einzelnen Zeilen: ��VJ-*�/R��+�ɩT�s javascript.0 2017-04-08 21:51:39.636 info script.js.common.Alexa-start: Zeilennummer: 1 ,Inhalt: ��VJ-*�/R��+�ɩT�s javascript.0 2017-04-08 21:51:39.636 info script.js.common.Alexa-start: HEADERS: {"x-amzn-requestid":"1234567890","access-control-allow-origin":"http://alexa.amazon.de","content-encoding":"gzip","vary":"Origin","acc javascript.0 2017-04-08 21:51:39.635 info script.js.common.Alexa-start: STATUS: 200 javascript.0 2017-04-08 21:51:38.434 info script.js.common.Alexa-start: registered 0 subscriptions and 0 schedules javascript.0 2017-04-08 21:51:38.428 info Start javascript script.js.common.Alexa-start javascript.1 2017-04-08 21:51:38.417 info Stop script script.js.common.Alexa-start javascript.0 2017-04-08 21:51:38.416 info Stop script script.js.common.Alexa-start
Der cookie sieht am Anfang und Ende folgendermaßen aus: "x-amzn-dat-gui-client-v=….YKNbGjdda+c="
Weiter würde es so gehen nach Ende des Cookies: ^^"" -H "Connection:...
Ich habe also alles genommen bis zum nächsten -H und nicht bis csrf. csrf taucht bei mir viel früher auf. Außerdem habe ich die "^" "^^" alle gelöscht.
-
Ich habe also alles genommen bis zum nächsten -H und nicht bis csrf. csrf taucht bei mir viel früher auf. Außerdem habe ich die "^" "^^" alle gelöscht. `
Bis zum nächsten -H war der richtige Ansatz
Schön, dass das jetzt funktioniert.
Ich werde zeitnah (eventuell morgen Abend) das umfangreiche Skript bereitstellen.
Da braucht man dann einen Cookie und die Seriennummern der Echos und dann kann man die Alexa-Echos entsprechend steuern.
Auszug aus den Datenpunkten, wie sie bisher erstellt werden:
-
Cool. Echos hast du ja genug
Das erste Script ist schon top. Auf die schnelle fällt mir ein weiterer Einsatz an. Bei Anruf, mach den Echo leise.
Oder TV an, Echo aus.
Da kommen bestimmt noch weitere Ideen und dafür könnten die weiteren Datenpunkte interessant werden.
-
Das fertige Skript habe ich in einem neuen Thread abgelegt, damit man sich nicht aus mehren Seiten das Richtige heraussuchen muss:
-
Guten Morgen,
ich habe jetzt einen Scene erstellt und das Radioprogramm vorgegeben. Das wird leider komplett ignoriert und das letzte Radioprogramm läuft an.
Gruß Marco
-
ich habe jetzt einen Scene erstellt und das Radioprogramm vorgegeben. Das wird leider komplett ignoriert und das letzte Radioprogramm läuft an. `
Funktioniert es denn, wenn Du die Kennung in den Objekten direkt einträgst (Admin/Objekte, unter Wert)?
Bei mir ändern sich dann jeweils die Sender.
-
Danke für das Script. Hat super geklappt. Ich hatte zuerst vergessen die Seriennummer mit an zu geben aber danach hat es funktioniert. Szenen angelegt und gut war.
Danke
-
Danke für das Script. Hat super geklappt. Ich hatte zuerst vergessen die Seriennummer mit an zu geben aber danach hat es funktioniert. Szenen angelegt und gut war.
Danke `
Welches Skriptversion hast Du denn genommen?
Das aktuelle Skript: http://forum.iobroker.net/viewtopic.php … 035#p62006 benötigt die Seriennummern nicht mehr und erkannt automatisch alle vorhandenen Devices, inkl. FireTV.
-
Also alle Geräte hat er erkannt. Ich glaube es war die letzte Version. Schaue ich nachher nochmal nach.
-
Hallo,
ich kann meine Echos bzw. echo-dots gut fernsteuern mit diesen Tipps.
AAAABER:
so etwa alle 3 Wochen ändert sich wohl etwas bei den Cookies. Dann geht nix mehr, bis ich die Cookies ausgetauscht habe.
Passiert dies bei euch auch in dieser Regelmäßigkeit?
Gruß
Seme
-
Hallo,
ich kann meine Echos bzw. echo-dots gut fernsteuern mit diesen Tipps.
AAAABER:
so etwa alle 3 Wochen ändert sich wohl etwas bei den Cookies. Dann geht nix mehr, bis ich die Cookies ausgetauscht habe.
Passiert dies bei euch auch in dieser Regelmäßigkeit?
Gruß
Seme `
Kann gut sein. Hatte ich zweimal seit dem es das Script gibt. -
Das fertige Skript habe ich in einem neuen Thread abgelegt, damit man sich nicht aus mehren Seiten das Richtige heraussuchen muss:
Hallo,
ich habe mich seit Monaten nicht mehr mit ioBroker beschäftigt und brauche mal eure Hilfe.
1. wie installiert man ein solches Script ?
2. ich brauche eigentlich nur einen Befehl, mit dem ich per KNX dem Echo Spot sagen kann, dass er die Musik ( Radio ) ausschalten soll. Wie mache ich das am besten - wie ich KNX einbinde ist kjlar… das habe ich schon. Aber den Spot noch nicht.
Danke euch vorab