Amazon Echo Remote Control

Moin Moin,
mir scheint es so, als ob sich die Remote-Instanz bei Updates der AlexaApp auf den Smartphones abmeldet …

Ich hätte dazu gerne den derzeit nur in der Instanzkonfiguration anklickbaren Anmeldestatus in einer sichtbaren Variablen (eine Abfrage/Aktualisierung alle 12 Stunden dürfte schon reichen) bzw. den Abfragebutton im WebFront bedienbar.
Damit auch der WAF damit umgehen kann/könnte (wenn ich nicht zu Hause bin) macht es dann Sinn auch den Button ‚anmelden‘ im WebFront bedienbar zu machen - abmelden würde IMHO nur verwirren und unnötige Fehler auslösen.

Grüße, Uwe

Das habe ich bei mir nicht beobachten können. Musstest du dich denn bei dem gestrigen Update in der AlexaApp neu anmelden?

Welche Anmeldungsart in der IOInstanz nutzt du (User/Passwort oder Cookie/CSRF)?

Hmmm - meine App wurde gestern nicht aktualsiert, das ist schon ein paar Tage her. War auch mehr ein „Gefühl“ …
Ich nutze nur User/Passwort, damit geht alles was ich benötige.
Da die Anmeldung ja auch von mehreren Systemen funktioniert kann das auch schon das vor.vor.letzte (größere?) Update gewesen sein. Heute hat mir mein ‚Testsystem‘ jedenfalls „Sie sind nicht angemeldet“ ausgegeben, das nutze ich aber auch nicht alle Tage.
Da sich die Anmeldedaten ja üblicherweise nicht ändern wäre der Anmeldebutton im WebFront eine für mich einfache Lösung.

Grüße, Uwe

Achso. unter iOS gab es wohl gestern ein Update. Habe aber auch nicht so genau hingesehen.

Wenn ich dich richtig verstehe, brauchtest du auch gar keine Anmeldungsdaten neu angeben, sondern nur den Anmeldebutton drücken.

Dann wäre es ja am einfachsten, wenn automatisch eine erneute Anmeldung erfolgen würde. Bei dem Button habe ich das Problem: wohin damit? Er gehört ja zum IO.

Du könntest dir aber auch ein simples Skript erstellen mit

EchoIO_LogIn($id)

und das ins Webfront verlinken.

Hallo,

also ich musste mich heute auch neu anmelden. Nutze CSRF und Cookie. Das mit dem Update der App könnte Zufall sein. Ich glaube heute sind ziemlich genau 14 Tage seit der letzten Anmeldung um.

Mal noch ein paar andere Dinge:
[b]

  1. Zu CSRF und Cookie[/b]
    Wieso muss man eigentlich beides angeben? CSRF ist doch im Cookie enhalten. Das könnte man sich doch direkt da raus ziehen statt die Info zweimal in der Instanz zu speichern.
    Wenn man CSRF und Cookie nutzt, benötigt man ja keinen Benutzernamen und Passwort. Wenn man aber kein Passwort eingibt, sind die I/O- und Echo-Instanzen als fehlerhaft markiert. Das könnte man vielleicht noch ändern, dass es reicht entweder Benutzername / Passwort oder Cookie einzutragen.

2. Hat jemand von euch mehrere Echos und kann folgendes Verhalten bestätigen?
Amazon scheint identische Anfragen an mehrere Geräte gleichzeitig zu limitieren. Wenn ich per TTS Meldungen an alle meine Echos ausgeben will, macht mir Amazon nach dem 3. Echo einen Strich durch die Rechnung. Es gehen immer nur drei Identische Anfragen. Die restlichen Echos sagen nichts und auch in der Alexa App sind die Befehele nur für die ersten drei Geräte im Verlauf zu sehen.
Was jedoch problemlos geht, ist den gleichen Befehl viele Male hintereinander an den selben Echo zu senden. Das führt Amazon korrekt aus und die Befehle tauchen auch entsprechend oft im Verlauf auf.

Würde mich mal interessieren, ob das bei anderen auch so ist. Dann muss ich mir mal was einfallen lassen, wie ich trotzdem mehrere Echos dazu bringe, TTS zu machen. Mit Timern habe ich schon ein wenig rum gespielt.

Gruß
Slummi

Manchmal hilft auch erneutes lesen der Anleitung :smiley:
Mit

EchoIO_CheckLoginStatus($id)

kann ich den 3-Zeiler selbst erstellen zur erneuten Anmeldung.

Danke für den Zaunpfahl und Grüße
Uwe

Guter Hinweis. Beides schau ich mir mal an.

Gruß

Burkhard

  1. Hat jemand von euch mehrere Echos und kann folgendes Verhalten bestätigen?
    Amazon scheint identische Anfragen an mehrere Geräte gleichzeitig zu limitieren. Wenn ich per TTS Meldungen an alle meine Echos ausgeben will, macht mir Amazon nach dem 3. Echo einen Strich durch die Rechnung.

Hallo.

Nein, kann ich nicht bestätigen. Das geht auch mit deutlich mehr als drei Alexa-Geräten.

Das ist ja interessant. Dann muss ich da noch mal tiefer ins Debugging einsteigen. Mal sehen, ob da irgendwelche Fehlermeldungen von den Echos kommen, die nach dem 3. folgen.

Nur zur Sicherheit. Du schickst also die gleiche EchoRemote_TTS() (nur die Instanz ID ist anders) ohne Verzögerung an mehrere Echos hintereinander und alle plappern los?

Gruß
Slummi

So ist es.

Perfekt, danke dir! Dann muss das ja bei mir auch gehen. Mal sehen, wo ich den Fehler eingebaut habe. :slight_smile:

Im nächsten Update (0.9 build 7) sind folgende Dinge:

neu:

[ul]
[li]TuneIn Liste lässt sich erweitern und kürzen
[/li][li]CSRF entfallen (in Cookie enthalten)
[/li][/ul]

korrigiert:

[ul]
[li]Statusprüfungen der IO Instanz korrigiert
[/li][/ul]

Gruß

Burkhard

@bumaas
Das ging ja echt fix. Vielen Dank fürs schnelle Umsetzen!

So, ich habe wohl das nächste Problem mit dem TTS gefunden. Augenscheinlich liegt es aber doch an Amazon. Ist nur die Frage wieso es bei kronos geht.

Ich habe mal alle Echo-Instanzen debugged, während sie einen TTS-Befehl kriegen.
Die ersten 3 Echos sprechen alles korrekt und auch das Debugging ist unauffällig.

Ab dem 4. Echo bekomme ich aber auf alle TTS-Kommandos ein HTTP 400 Bad Request von Amazon zurück mit der Message „Rate exceeded“. Das würde für meine These sprechen, dass Amazon nur drei identische TTS-Requests an unterschiedliche Geräte akzeptiert und alle weiteren blockiert. Ich kann auch die Reihenfolge der Echos umdrehen. Die ersten drei führen den Befehl in der neuen Reihenfolge aus, alle weiteren nicht mehr. Es ist also auch nicht geräteabhängig.

Jetzt stellt sich mir die Frage, wieso funktioniert es bei anderen?

Gruß
Slummi

Vielleicht als kleine Hilfestellung. Nachdem ich das Modul vorab testen durfte hatte ich die Sprachausgabe auf den Echos „husch husch“ umgesetzt. Das heisst es existiert für jeden Echo ein eigenes Ausgabeskript welches durch Variablen angetriggert wird in die ich den Durchsagetext ablege. Die Variablen heissen beispielsweise „Erdgeschoss“, „Keller“, „Obergeschoss“, „Allgemeine Durchsage“ usw. im letzteren Fall wird durch eine Änderung der Variablen also für jeden Echo ein eigenes Skript angetriggert. Nicht elegant aber für den Test war das ausreichend und umgebaut auf eine endgültige Lösung habe ich das noch nicht. Vielleicht macht es ja ein Unterschied ob die Anweisungen für die Sprachausgabe aus einem Skript kommen oder aus mehreren.

Hallo kronos,

danke für die Info. Ich werde noch mal etwas testen, wobei ich mir nicht vorstellen kann, dass das eine Rolle spielt.
Deshalb ändert sich ja nichts daran, wie das Modul die Befehle absetzt. Aber wer weiß…

Wenn man zwischen den Kommandos Wartezeiten einbaut, bekommt man es in den Griff. Leider ist das sehr unschön, da es ganz unterschiedlich ist, wie lange man warten muss, bis es wieder funktioniert. Mal reichen wenige hundert Millisekunden, mal muss man 2 Sekunden warten.

Ich nutze zum Absetzen der TTS-Befehle eine eigene Funktion, die das Ganze für mich etwas komfortabler macht und noch diverse Randbedingungen berücksichtigt. Die Funktion habe ich jetzt mal dahingehend angepasst, dass sie die Rückmeldung von Amazon auswertet und im Fehlerfall den Befehl nach unterschiedlichen Wartezeiten neu absetzt. Das scheint soweit auch zu funktionieren, auch wenn es nicht wirklich schön ist. Vielleicht finde ich ja noch einen anderen Weg das Problem zu umgehen.

Aktuell scheint Amazon eh ein Problem zu haben. Momentan funktioniert nicht ein Echo (egal ob per Modul oder Sprache). Teilweise antworten sie direkt, dass sie einen nicht verstehen, teilweise dauert es ne Minute bis sie antworten, dass sie keine Internetverbindung haben, teils sind sie als offline, teils als online gekennzeichnet.
Vielleicht updaten die gerade irgendwas wegen der neuen Echo-Geräte.

Die Befehle aus dem Modul werden von Amazon dennoch als erfolgreich ausgeführt zurückgemeldet. Auch schlau gemacht… :frowning:
Und ich dachte schon erst, dass ich jetzt das nächste Problem mit dem Modul habe.

Gruß
Slummi

Hallo zusamen,

vorgestern habe ich noch gedacht, dass es cool wäre wenn man die liste kürzen oder erweitern könnte :smiley:

Noch eine Kleinigkeit, wäre es machbar, das man die Liste „richtig“ nach Stations sortieren kann.

also 1, 2, 3, 4, 5, 6

im Moment ist es ja so 1, 10, 11, 12, 2, 20, 21, 22, 3, 31, 32, 33

Viele Grüße
Markus

Hi Markus,

dann verwendest du sicher die Legacy-Konsole.
Den Fehler hatte ich bereits festgestellt und mit bumaas diskutiert. Wir denken, dass das ein Fehler in der Konsole und nicht im Modul selbst ist. Die Legacy-Konsole stelt auch einen falschen Inhalt in der Liste dar, falls du Stationen selbst geändert hast.

Die Web-Konsole verhält sich hingegen korrekt.

Gruß
Slummi

Hi Slummi,

es scheint als wenn ich mich mal an die Web-Console gewöhnen sollte :smiley:

ich schau es mir mal an, danke für den Hinweis!

Viele Grüße

Markus

Hallo,

hier wurde ja des Öfteren vermutet, dass sich die I/O-Instanz nach einem Update der Alexa-App ausloggt und man das Cookie aktualisieren muss.

Ich habe das jetzt mal die letzten Tage beobachtet und kann das nicht bestätigen. Ich hatte jetzt mehrfach Updates der App (teilweise auch größere, wo relativ viel geändert wurde) und Echo Remote Control blieb trotzdem eingeloggt.

Ich will nicht ausschließen, dass es doch mal vorkommen kann, dass man raus fliegt, wenn Amazon ihre gute Alexa einer kompletten „Gehirnwäsche“ unterzieht, aber die bisherigen Beobachtungen dahingehend scheinen wohl eher Zufall gewesen und mit dem 14-tägigen Rhythmus zusammengefallen zu sein.

Gruß
Slummi

@bumaas:

Grad eben war ich wieder „raus“!

Mir ist beim wiederherstellen der Funktion (nach grade exakt 14 Tagen) aufgefallen, dass die Tasten (Anmelden, Abmelden, … testen ) in der Instanzkonfiguration von AmazonEchoIO nicht mehr reagieren. Blitzen nur kurz auf ?

Hatte vor dem letzten Update funktioniert !

Gruß
lueralba