NEWS
[SKRIPT] Alexa über ioBroker Steuern -> Kommandos an Alexa
-
Manuell ist quasi kein Problem allerdings halt sone Arbeit, welche wenn sie sich vermeiden lässt, die nicht so spannend ist
Auto war da schon angenehmer
Und @haeselchen,
das geht bei mir nicht.
Erti
-
sehr frustrierend dieses thema - bei mir lief es wieder ein oder 2 wochen und nun geht wieder nichts. habe mal von hand cookie und csrf eingetragen und damit geht es wieder (thanx to @pocky) siehe: https://www.gehrig.info/alexa/Alexa.html - ist aber sehr umständlich!
für linux user: habe eine exec()-script lösung mit https://github.com/thorsten-gehrig/alexa-remote-control gebastelt - damit kann ich wenigstens radio ein aus und bluetooth verbindung momentan benutzen - einen langzeit test habe ich leider noch nicht. für die, die das script kennen - es ist eine neue version auf github! die alte funktionierte auch nicht mehr.
mal sehen was in ein oder 2 wochen passiert.
leider bin ich kein programmierer - aber vielleicht kann ja jemand mit dem github file etwas anfangen und in das javascript (iobroker) integrieren. in dem github file werden die ganzen curl-abfragen benutzt - vielleicht kann man die in ein javascript verwandeln und ein neues loginscript erstellen, welches csrf und cookie setzt? ich selbst habe ein wenig herumprobiert - aber ohne kenntnisse komme ich da nicht weit!
-
#live-in-sky,
kannst du mal einen Newbie zeigen wie es per Hand gemacht wird mit dem Script habe da absolute Probleme. Habe meine Vis mit dem AlexaLogon gemacht und jetzt geht es nicht mehr.
Grüße helfi9999
-
hi helfi,
1- momentan funktioniert das script (bei mir seit 4 tagen)- aber mal abwarten, was in 2 wochen ist - vielleicht gibt es dann auch probleme
2 - alles zu erklären ist etwas viel - ich weiß nicht welches level du hast? kannst du auf ein terminal zugreifen und auf der linux-console arbeiten - das ist nötig um das script einzurichten und zu testen (das script ist für linux programmiert- erst im zweiten teil wird es in iobroker selbst aufgerufen - wobei brauchst du hilfe?
siehe mal unter: viewtopic.php?f=37&t=15024&p=157153#p157153 nach - dabei geht es zwar um "Alexa redet eigenen text" aber das benutzt das selbe script. dort wird zumindest mal erklärt, wie man das script unter linux installiert (2te seite 4.ter eintrag)
3. ob das script mit 2fa funktioniert weiß ich nicht
-
Hi…ich habe immer das Problem das sobald ich das Script startet "JavaScript" abstürzt !
Warum auch immer. Es werden keine Datenpunkte unter Objekte angelegt.
Mit diesem Script:
! // Alexa mit Javaskript in ioBroker steuern
! // Skript arbeitet unabhängig vom Cloud Adapter
! //
! // Version: v0.3.3
! // Author: ruhr70
! //
! // Skript im ioBroker Forum: http://forum.iobroker.net/viewtopic.php … and#p62006
! //
! // -----------------------------------------------------------------------------
! // alexaCommand("küche","volume",70); // Alle Anwendungen
! // alexaCommand("küche","pause"); // Radio, Spotify, Hörbücher
! // alexaCommand("küche","play"); // Radio, Spotify, Hörbücher
! // alexaCommand("küche","next"); // z.B. Spotify: nächstes Lied
! // alexaCommand("küche","previous"); // z.B. Spotify: vorheriges Lied
! // alexaCommand("küche","forward"); // z.B. Hörbücher: 30 Sekunden vor
! // alexaCommand("küche","rewind"); // z.B. Hörbücher: 30 Sekunden zurück
! // alexaCommand("küche","shuffle",true); // z.B Amazon Music, Shuffle ein in der aktuellen Playlist
! // alexaCommand("küche","shuffle",false); // z.B Amazon Music, Shuffle aus in der aktuellen Playlist
! // alexaCommand("küche","radio",true); // schaltet den Default tunein Radiosender an
! // alexaCommand("küche","radio",false); // setzt Radio auf Pause
! // alexaCommand("küche","tunein","s100198"); // setzt tunein Radio auf "s100198" (Einslive)
! // Die Steuerung kann über die für jedes Gerät angelegten Datenpunkte erfolgen, z.B. über VISLog:
! 22:25:32.526 [info] javascript.0 Start javascript script.js.Alexa_Device_Command
! 22:25:32.526 [info] javascript.0 script.js.Alexa_Device_Command: –- Alexa Kommandos - Skript gestartet ---
! 22:25:32.526 [warn] javascript.0 script.js.Alexa_Device_Command: Forcecreation ist eingeschaltet. Wenn nicht mehr benötigt, bitte im Skript auf false setzen
! 22:25:32.526 [info] javascript.0 script.js.Alexa_Device_Command: registered 0 subscriptions and 0 schedules
! 22:25:32.709 [error] Caught by controller[0]: at dpAbfrageAlexaAnlegen (script.js.Alexa_Device_Command:245:32)
! 22:25:32.709 [error] Caught by controller[0]: at IncomingMessage. (script.js.Alexa_Device_Command:214:81) -
Hi…da hier scheinbar NIEMAND helfen kann sondern man nur ließt "Bei mir läuft es noch..." und " Bei mir läuft es nicht..." lohnt es sich nicht weiter zu hoffen das es ja vernünftig läuft. Der Entwickler hat sich ja bisher auch nicht zu den JAVA Problemen gemeldet.
Entwerder kein Interesse oder er ist einfach raus aus dem Thema !
Ich lösche die Scripts jetzt einfach und such nach etwas neuen...
S C H A D E !!!
-
Der `Entwickler´ wird sich dieses Skript für seine privaten Zwecke geschrieben haben.
Er hat es dann Euch zur Verfügung gestellt. Ohne Verpflichtungen.
Wahrscheinlich haben sich seine Prioritäten bezüglich dieses Skriptes geändert. Aus welchen Gründen auch immer.
Ob Du nun dieses Skript löscht oder sonstwas damit anstellst, interessiert den `Entwickler´ und auch der
Mehrzahl der hier lesenden User wohl gar nichts.
Lasst das Jammern sein und zeigt selbst Initiative.
Alles immer auf einem Silbertablett gereicht zu bekommen hilft einem , wie Du siehst, nicht immer weiter
Es gibt eine Lösung für das Logon.
Cookie selber schreiben.
Wichtig ist ein Browser der Entwicklertools anbietet.
Firefox und Chrome bietet das.
Lies hier https://www.gehrig.info/alexa/Alexa.html wie Du den Cookie manuell schreibst.
Der Cookie fängt mit "session-id=" an und endet HINTER =" und VOR ; sst-acbde (So habe ich das zumindest bei mir so geschrieben.)
Kann im ganzen Stück so kopiert werden.
Selbst das CSRF befindet sich in der ersten Zeile schon im ausgelesenen Cookie.
Diesen kopierst Du auch noch raus aus dem Cookie raus und trägst ihn im csrf ein.
Überschreibe den alten Cookie mit dem neuen.
Voilà, Skript läuft wieder ohne Fehler.
~~![](</s><URL url=)https://united-websites.org/Cookie.png" />
Übrigens, das eigentliche Skript vom Threadersteller läuft von Anfang an vorzüglich.
Lediglich das Cookie Skript hier viewtopic.php?f=37&t=9237&p=98626&hilit … gOn#p98493
ist das Problem.~~
-
Moin… Das mit dem Entwickler ist mir schon klar. Bin selbst in der Branche tätig. Auch das lesen vom Cookie und der Csr Nummer ist kein Problem. Das läuft wunderbar und stellt kein Problem für mich, ob über Script oder manuell über Entwickler Modus.
Es lief ja auch wunderbar und dann kam ein Update und seitdem stürzt JavaScript immer komplett ab, wenn ich nur das Script starte. Alle anderen laufen. Dazu bräuchte ich und andere User Hilfe. Liest man oft genug die Frage im Thread.
Zum Thema "Silbertablett" nur ein Forum lebt vom Geben und Nehmen. Und es gibt Starke und Schwache User, also bleib mal gelassen.
Also bleib ich einfach am Thread dran und beobachtet mal locker weiter. Möchte auch nicht Diskutieren was ein Entwickler darf und kann, sondern benötige nur ein Hilfe Ansatz so wie andere auch!
In dem Sinne abwarten und Tee trinken <emoji seq="1f601"></emoji>
-
Was für ein Update kam?
In welchem aktivem Verwahrungsort bist Du?
Im default oder latest?
-
@Pocky:Was für ein Update kam?
In welchem aktivem Verwahrungsort bist Du?
Im default oder latest? `
Hi.. erst das einfache " Verwahrungsort ist latest ".
Welche Update ?! Es fing damit an das ich merkte das die Log Uhrzeiten nicht stimmten, also habe ich im laufenden Betrieb unter meinen Docker die Systemzeit eingestellt. Danach gab es ein JavaScript Update und von da an kamen die Fehler. Auch eine Version zurück hat das Problem nicht beseitigt. Immer wenn ich das Script starte gibt es die Java-Errors !
Log:
! host.iobroker 2018-07-03 21:06:24.965 info Restart adapter system.adapter.javascript.0 because enabled
! host.iobroker 2018-07-03 21:06:24.965 error instance system.adapter.javascript.0 terminated with code 0 (OK)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at process._tickCallback (internal/process/next_tick.js:104:9)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at _combinedTickCallback (internal/process/next_tick.js:80:11)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at endReadableNT (_stream_readable.js:978:12)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at IncomingMessage.emit (events.js:185:7)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at emitNone (events.js:91:20)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at IncomingMessage. <anonymous>(script.js.Alexa:990:81)
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at script.js.Alexa:523:34
! Caught 2018-07-03 21:06:24.965 error by controller[0]: at Object.parse (native)
! Caught 2018-07-03 21:06:24.964 error by controller[0]: SyntaxError: Unexpected end of JSON input
! javascript.0 2018-07-03 21:06:24.942 error at process._tickCallback (internal/process/next_tick.js:104:9)
! javascript.0 2018-07-03 21:06:24.942 error at _combinedTickCallback (internal/process/next_tick.js:80:11)
! javascript.0 2018-07-03 21:06:24.942 error at endReadableNT (_stream_readable.js:978:12)
! javascript.0 2018-07-03 21:06:24.942 error at IncomingMessage.emit (events.js:185:7)
! javascript.0 2018-07-03 21:06:24.942 error at emitNone (events.js:91:20)
! javascript.0 2018-07-03 21:06:24.942 error at IncomingMessage. <anonymous>(script.js.Alexa:990:81)
! javascript.0 2018-07-03 21:06:24.942 error at script.js.Alexa:523:34
! javascript.0 2018-07-03 21:06:24.942 error at Object.parse (native)
! javascript.0 2018-07-03 21:06:24.942 error SyntaxError: Unexpected end of JSON input
! javascript.0 2018-07-03 21:06:24.941 error uncaught exception: Unexpected end of JSON input</anonymous></anonymous> -
Hast Du noch zusätzlich den Alexa Adapter installiert?
-
@Pocky:Hast Du noch zusätzlich den Alexa Adapter installiert? `
Hatte ich Probiert, aber bereits wieder deinstalliert.
-
Nachdem ich nun mehrere Monate ohne mein Alexa-Wecker-Script gelebt habe und mich wie so viele andere hier auch nicht dazu motivieren konnte, selbst am Skript zu arbeiten, habe ich mich dazu entschlossen, die Skripte (Logon + Commands) zu entsorgen.
Ich verwende nun diesen Adapter: https://github.com/soef/ioBroker.alexa - er funktioniert einwandfrei. Hoffentlich hält er etwas länger durch als die Skripte. Ich habe ihn eben erst eingerichtet und getestet, daher kann ich noch keinen Langzeitbericht liefern.
-
wichtig ist , das du den alexa2 adapter benutzt - der ist neu und sehr gut
> [viewtopic.php?p=163478#p163478](https://forum.iobroker.net/viewtopic.php?p=163478#p163478)
gruß
-
> [viewtopic.php?p=163478#p163478](https://forum.iobroker.net/viewtopic.php?p=163478#p163478)
`Danke für den Hinweis, noch gar nicht gesehen. Apollon77 hat von dem geforkt, den ich mir geholt habe. Ich wechsle mal zu dem von Apollon77…
-
unbedingt - supertolle arbeit von appollon - der arbeit seit 2-3 wochen daran - vorallem wegen den einlog-script-fehlern
-
Also für die Kandidaten welche das LoginScript nicht verwenden können weil es Faild oder was auch immer…
Dieses Script funktioniert auch mit Alexa2
dort ist auch Cookie und CRSF vorhanden welches ja zur authentifizierung benötigt wird
Grüsse Schweiz
-
Hallo!
Habe ioBroker auf einer Diskstation am laufen. Adapter sind JS, Hue, Alexa. Scripte habe ich AlexaControl und ein Steuerscript das den Badezimmer Echo auf Radio stellen soll wenn eine Bewegung im Bad erkannt wird. Es kommen auch Befehle am Echo an, zu sehen am Lautstärken Ring der kurz aufleuchtet. Aber, es kommt kein Ton aus dem Gerät.
Ich erhalte diesen Fehler aus dem AlexaControl:
script.js.common.AlexaControl: Negative Rückmeldung von Alexa: 400: Fehler
Und obwohl der Echo eine Lautstärkenänderung empfängt, kommt auch dieser Hinweis:
****script.js.common.AlexaControl: HEADERS: {"server":"Server","date":"Thu, 15 Nov 2018 06:46:56 GMT","content-type":"application/json","content-length":"16","connection":"close","x-amzn-requestid":"3e29
script.js.common.AlexaControl: Alexa Volume: keine Lautstärke angegeben. Parameter fehlt.****
Hat jemand eine Idee wo hier der Fehler liegen kann?
-
Hallo!
Habe ioBroker auf einer Diskstation am laufen. Adapter sind JS, Hue, Alexa. Scripte habe ich AlexaControl und ein Steuerscript das den Badezimmer Echo auf Radio stellen soll wenn eine Bewegung im Bad erkannt wird. Es kommen auch Befehle am Echo an, zu sehen am Lautstärken Ring der kurz aufleuchtet. Aber, es kommt kein Ton aus dem Gerät.
Ich erhalte diesen Fehler aus dem AlexaControl:
script.js.common.AlexaControl: Negative Rückmeldung von Alexa: 400: Fehler
Und obwohl der Echo eine Lautstärkenänderung empfängt, kommt auch dieser Hinweis:
****script.js.common.AlexaControl: HEADERS: {"server":"Server","date":"Thu, 15 Nov 2018 06:46:56 GMT","content-type":"application/json","content-length":"16","connection":"close","x-amzn-requestid":"3e29
script.js.common.AlexaControl: Alexa Volume: keine Lautstärke angegeben. Parameter fehlt.****
Hat jemand eine Idee wo hier der Fehler liegen kann? `
Hi,
zeig mal dein script
Gruß Thorsten
-
Hi!
Ich habe das Script von Damnich aus einem anderen Thread genommen und an meine Umgebung angepasst.
Mit diesem Script funktioniert es manchmal. Zusätzlich existiert das Problem, dass nicht der von mir vorgegebene Radiosender verwendet wird sondern immer NDR.
if (compareTime("08:00", "23:30", "between")) { //zwischen 08:00 und 23:30 Uhr wird Alexa eingeschalten } on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: true}, function (obj) { //trigger per Lampe -> Datenpunkt anpassen var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('javascript.0.AlexaControl.Devices.Bad.control.play', true, true, parseInt(0, 10), true); // Play | Datenpunkt anpassen setStateDelayed('javascript.0.AlexaControl.Devices.Bad.control.volume', 30, true, parseInt(0, 10), false); //Lautstärke beim Einschalten | Datenpunkt anpassen }); on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: false}, function (obj) { //trigger per Lampe -> Datenpunkt anpasse var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('javascript.0.AlexaControl.Devices.Bad.control.pause', true, true, parseInt(0, 10), false); //Pause | Datenpunkt anpassen });
Ich habe auch versucht die Datenpunkte auf den Alexa2.0 Adapter anzupassen. Damit tut sich aber gar nichts. Wäre doch eigentlich die "bessere" Lösung? So könnte man sich das AlexaControl Script sparen?
if (compareTime("08:00", "23:30", "between")) { //zwischen 08:00 und 23:30 Uhr wird Alexa eingeschalten } on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: true}, function (obj) { //trigger per Lampe -> Datenpunkt anpassen var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.controlPlay', true, true, parseInt(0, 10), true); // Play | Datenpunkt anpassen setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxx.Player.volume', 30, true, parseInt(0, 10), false); //Lautstärke beim Einschalten | Datenpunkt anpassen }); on({id: 'hue.0.Philips_hue.Lightify_Bad.on', val: false}, function (obj) { //trigger per Lampe -> Datenpunkt anpasse var value = obj.state.val; var oldValue = obj.oldState.val; setStateDelayed('alexa2.0.Echo-Devices.xxxxxxxxxxxx.Player.controlPause', true, true, parseInt(0, 10), false); //Pause | Datenpunkt anpassen });