Alexa Echo Remote & Cookies - der etwas andere Weg!

Guten Abend zusammen,

die Tage kam wieder einmal im Chat ein Hilferufe zum Login für das tolle Echo Remote Modul von @Fonzo hoch.

Mit 2FA gibt es ja im Gegensatz zur Cookie-Lösung eine sichere und stabile Variante.

Ich habe für mich noch eine aufwendige - dafür langlebige Lösung ohne 2FA gefunden.
Diese habe ich jetzt mal in einem langemmmmmm Blogbeitrag bei mir veröffentlicht.

Der Artikel hat den schönen Namen Alexa Cookie Monster => Alexa Cookie Monster - Wilkware

Ist wahrscheinlich nicht für jeden geeignet, aber vielleicht wandert die Lösung irgendwann mal ins Modul :slight_smile:

Viel Erfolg
Heiko

PS: Bin derzeit mit vielen Projekten am Start und kann nur bedingt Support leisten, also nur wer sich das wirklich zutraut …

Moin,

ich habe mich mal daran versucht, ob es funktioniert weiß ich nicht.
Einige Dinge waren bei mir etwas anders.

VZ

sudo apt install -y jq
musste ich auch noch nachinstallieren

Unklar ist mir noch dieses:

Moin Peter,

Danke fürs ausprobieren und somit fürs Testen meiner Anleitung. Du hast natürlich Recht - da fehlt das Subverzeichnis „user“, welches aber standardmäßig da sein sollte. Ich hab es in der Anleitung korrigiert.

Okay, mache ich nacher auch noch ein Hinweis bei der Anleitung - war wohl bei mir schon installiert :slight_smile:

Guter Punkt, bei mir sieht es so aus …

Der Eintrag Cookie ist noch ein Alter aus den Zeiten wo man immer reinkopieren musste.
Habe es bei mir gerade rausgeschmissen - geht!

Die viel wichtiger Frage - wie siehts bei DIr aus? Gehts?

VG Heiko

Moin Heiko,

im Prinzip funktioniert es.
Jedoch habe ich noch einige Ungereimtheiten:

Das Broker-Script alexa.sh legt, so wie beschrieben, in „/var/lib/symcon“ den Link „alexa_cookie.txt → /tmp/.alexa.cookie“ an.

Rufe ich das " Referesh Login Token" auf, wird in „/var/lib/symcon/scripts“ nochmals ein Link „alexa_cookie.txt → /tmp/.alexa.cookie“ angelegt.

Ist das so richtig?

MfG
Peter

Interessant, schau ich mir an! Wichtig ist das im Root der Link ist!

Freut mich das es funktioniert!

Gruß Heiko

Soo, hab den Schuldigen gefunden :slight_smile: Habs im Blog schon angepasst - Danke!

Bitte in BASH Skript folgendes ändern:

COF="$(dirname "$(readlink -e "$0")")/alexa_cookie.txt"

Das sollte helfen!

Gruß Heiko

Hallo Heiko,

vielen Dank für Deine Arbeit.
Es scheint nun alles zu funktionieren. Ich finde es sehr gut, dass du das auch alles für Laien sehr nachvollziehbar dokumentierst. Auch die Kommentare in Deinen Scripten helfen mir vieles besser zu verstehen. Da macht das Nachbasteln und Fehlersuchen auch Spaß.
Leider gibt es viele andere Beispiele, wo ein unkommentiertes Script ins Forum gehauen wird und es dann heißt fragt doch einfach hier.

Dein Support ist auch sehr schnell und gut.
Andere bauen lieber ständig an neuen Features und simple Fehler werden schon seit Jahren mitgeschleppt.

1 „Gefällt mir“

Hallo Peter,

na dass ist ja mal ein klasse Lob, da freut man sich doch gleich das man sich die Zeit genommen hat es zu dokumentieren. Danke Dir … auch für das Testen und das konstruktive Feedback! Hilft bestimmt auch anderen noch schneller und fehlerfreier durch zu kommen.

Ich freue mich immer wenn es den Leuten hilft ähnliche Problem los zu werden.

VG und schönes WE
Heiko

Vielen Dank, sehr detailiert und hilfreich!

1 „Gefällt mir“

Moin Pitti,
ich habe mich auch mal daran versucht. Leider nicht so erfolgreich. Mein Cookie sieht so aus:

# Netscape HTTP Cookie File                                                                                                                                                                           
# https://curl.se/docs/http-cookies.html                                                                                                                                                              
# This file was generated by libcurl! Edit at your own risk.                                                                                                                                          
                                                                                                                                                                                                      
.amazon.de      TRUE    /       FALSE   1991206793      csrf    -613914011                                                                                                                            
.amazon.de      TRUE    /       TRUE    2117005192      session-id      259-2887516-8661926                                                                                                           
.amazon.de      TRUE    /       TRUE    2117005192      ubid-acbde      262-1560081-1343806                                                                                                           
.amazon.de      TRUE    /       TRUE    2117005192      x-acbde 
"<wilde Zeichen>"                                                                                                    
#HttpOnly_.amazon.de    TRUE    /       TRUE    1675673992      at-acbde                                                                                                                             "<wilde Zeichen>"                                                                                                                                                                                                     
#HttpOnly_.amazon.de    TRUE    /       TRUE    1675673992      sess-at-acbde                                                                                                                        "<noch mehr wilde Zeichen>"

AlexaRemote meint nur „no valid CSRF in cookie“. Idee was ich falsch gemacht habe? Es sieht so aus als wenn das Modul diesen Cookie nicht nimmt. Patches habe ich gemacht.

Ralf

Moin Ralf,

hab gerade mal mit meinem Cookie verglichen - sieht absolut ähnlich aus!

Haste die ganze Anleitung durchgemacht und im IPS Verzeichnis sieht es so aus …

lrwxrwxrwx  1 root root      18 31. Mär 2022  alexa_cookie.txt -> /tmp/.alexa.cookie

Was spuckt den das Script aus wenn Du es auf der Kommandozeile ausführst …

pi:/var/lib/symcon $ sudo ./alexa.sh -r
logged in

Gruß Heiko

Moin Pitti,
alexa.sh sagt auch bei mir „logged in“. Ich glaube ich habe den Grund gefunden :grinning_face_with_smiling_eyes: Ich dachte weil ja ein Cookie benutzt werden soll muss im Modul „benutze eigenen Cookie“ angewählt sein. DAS war mein Fehler.

btw. warum refeshed Du alle 30Minuten? Reicht nicht auch weniger?

P.S. danke für diese Script-Sammlung.

Ralf

1 „Gefällt mir“

Wenn man genau weiß wann der Cookie abläuft dann kann man das trickern. Aber durch Updates, Stromausfall oder was weiß ich kann so maximal eine halbe Stunde die Alexas offline sein - das hält die Family gerade so aus :smiley:

Kann man natürlich an seine Bedürfnisse anpassen! Bei mir hat sich im letzten Jahr niemand beschwert :slight_smile:

Gruß Heiko

Moin Heiko,
ich habe jetzt mal meinen Liebling die Event-Kontrolle aktiviert. Statt alle X Minuten reagiere ich jetzt auf Event und lasse mir eine Mail schicken wenn es ausgelöst wurde. 2 Vorteile ich weiß etwa wie lange ein Cookie lebt. Und ich brauche nicht maximal X Minuten warten :innocent:

Auf was reagierst Du im Event-Control - irgendwie hab ich das noch nicht durchdrungen!

Moin Pitti,
auf „AmazonEcho IO“ natürlich, d.h. wenn die IO-Instanz einen Fehler meldet führe ich dein Script aus. Benutze ich bei meinem 5 Hubs schon fast 3 Jahre. Ich bin nicht der geduldige Typ der 30 Minuten warten kann :grinning:

Ralf

1 „Gefällt mir“

Okay, jetzt hab ich es gerafft - muss ich gleich mal umbauen :slight_smile: Danke!

Hi,
nach fast 24h musste dein Script noch nicht ausgeführt werden. Ich meine aber damals als ich den Cookie noch benutzte war die Lebensdauer bei 2-3 Wochen. Wenn ich dran denke melde ich mich wenn sich dein Script meldet.

Ralf

1 „Gefällt mir“

Hi Pitti,
das mit Event klappt so nocht nicht. Die Instanz geht nicht in Fehler wenn zwar aktiv aber nicht angemeldet. Werde ich mir vielleicht am Wochenende ansehen.

Aktuell checke ich den Cookie wenn ich Morgens den Fernseher einschalte und Nachmittags wenn ich nach Hause komme. Ich mag es nicht so sehr wenn unnötig Last entsteht.

Ralf

Bin ich voll bei Dir - mag das auch immer nicht!

Vom Mechanismus her ist das glaube ich so …

  • irgendwer/irgendein Gerät soll etwas machen
  • dann wird zuerst ein CheckLoginStatus ausgeführt (oder wie auch immer die Funktion heißt)
  • wenn okay wird Befehl ausgeführt

Schätze der Status wird da nicht korrekt gesetzt!

Gruß Heiko