[37_echodevice] Amazon Echo Modul (nicht Alexa)

Begonnen von michael.winkler, 12 Januar 2018, 18:20:12

Vorheriges Thema - Nächstes Thema

mthome

#6255
Das hatte ich schon 2x probiert - leider ohne Erfolg.
Aber probiere es gerne nochmal  ;D

---Edit-----
sudo npm install --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2
-->up to date, audited 104 packages in 2s

Dann habe ich alle ECHOs gelöscht und fhem restartet
Danach autocreate devices
--> Alles war wieder connected.

Nach kurzer Zeit leider wieder connected but loginerror und unauthorized

Folgendes passiert nach dem NPM_login new:
2025.11.04 14:44:46 3: [Echo] [echodevice_NPMWaitForCookie] [NPM Login New Tue Nov  4 14:44:25 2025] wait for refreshtoken / refreshtoken unkown!! refreshtoken=null EXIST 266create-cookie.js = true
2025.11.04 14:44:47 3: [Echo] [echodevice_NPMWaitForCookie] [NPM Login New Tue Nov  4 14:44:25 2025] wait for refreshtoken / refreshtoken unkown!! refreshtoken=null EXIST 266create-cookie.js = true
2025.11.04 14:44:48 3: [Echo] [echodevice_NPMWaitForCookie] [NPM Login New Tue Nov  4 14:44:25 2025] write new refreshtoken
2025.11.04 14:44:48 3: [Echo] [echodevice_setState] to connected
2025.11.04 14:44:57 3: [Echo] [echodevice_LostConnect] JSON error = {authentication} / set loginerror to 1
2025.11.04 14:44:57 3: [Echo] [echodevice_setState] to connected but loginerror
2025.11.04 14:45:02 3: [Echo] [echodevice_LostConnect] JSON error = no content / set loginerror to 2
2025.11.04 14:45:02 3: [Echo] [echodevice_setState] to connected but loginerror


binford6000

Zitat von: mthome am 04 November 2025, 14:11:54
Zitat von: binford6000 am 04 November 2025, 14:03:20@dusti64, mthome, punker: Könnt ihr im Zustand connected but loginerror auch noch voice commands absetzen?
Was meinst Du mit voice commands? Also die Echos funktionieren normal. Aber mit dem echodevice kann ich nix mehr tun (z.B. speak oder andere Funktionen). Auch bekomme ich kein trigger über das voice reading).
Wenn ich mit echo speak ... etwas ausgeben will oder andere Befehle absetze bekomme ich "is not connected. Aborting..."
set <device> speak hallo erzeugt bei mir eine Sprachausgabe - auch im connected but loginerror Zustand.
Einzig das voice reading wurde nicht aktualisiert. Das steht noch auf dem letzten voice command ("Alexa schalte drucker ein").

Ich kann also gar keine Funktionseinschränkungen bei mir feststellen.
Ohne die Posts hier im Thread hätte ich vermutlich gar nichts mitbekommen.
Sehr strange das Ganze...

VG Sebastian

dusti64

#6257
Zitat von: michael.winkler am 04 November 2025, 14:16:47Ich würde folgende machen:
1. Update der NPM Umgebung https://www.mwinklerblog.de/modul-echodevice-npm/
npm install --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2
chown -R fhem:  /opt/fhem/cache/alexa-cookie

Falls hier Fehlerauftauchen dann noch das NMP selber aktualisieren, Anletungen findet man im Internet dafür.

2. set NPM_login new durchführen um ein neues Cookie zu erstellen.

Danach sollte alles wieder funktionieren.

Ich musste bei mir noch die 2 faktor Anmeldung aktivieren, weil die Whatsapp & SMS Codes nicht funktioniert hatten.

Das habe ich auch schon am Samstag und eben nochmal gemacht...keinerlei Verbesserung.

Einen Sprachbefehl habe ich eben mal mit set speak blabla gemacht. Wenn nicht connected ist, bekomme ich einen Fehler in FHEM (bin nicht zuhause)...
Ich habe es auch mitbekommen durch sehr viele Fehlermeldungen, weil ich den Login überwache.
2xDebian virtualisiert auf 2xPVE mit FHEM, 2x HMLAN, VCCU, CCU3, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Shelly, Home Assistant usw.

passibe

#6258
@michael.winkler wenn bei dir alles funktioniert muss an deiner Installation irgendetwas anders sein.

Ich habe es gerade in einer ganz leeren Docker-Umgebung getestet. Der Cookie wird zwar erstmals erfolgreich neu erstellt, aber nach ca. 2 Minuten fällt es auf loginerror zurück, wie hier schon mehrfach in den geposteten Logs beschrieben.

alexa-cookie2 ist die neuste Version (5.0.3) und node ist v22.21.0.

Kurioserweise fällt es nach weiteren ca. 5 Minuten nach der ersten Cookie-Erstellung wieder auf connected zurück. Im Log sieht man:
16:28:40: Cookie wird erstmals geschrieben, state = connected.
16:30:21: Erster loginerror. state = connected but loginerror. Geht so weiter, insgesamt 4x, bis
16:33:26: Loginerror reset auf 0, state = connected.

fhemtest-1  | 2025.11.04 16:28:39.147 3: [echo] [echodevice_NPMWaitForCookie] [NPM Login New Tue Nov  4 16:27:50 2025] wait for refreshtoken / refreshtoken unkown!! refreshtoken=null EXIST 45create-cookie.js = true
fhemtest-1  | 2025.11.04 16:28:40.149 3: [echo] [echodevice_NPMWaitForCookie] [NPM Login New Tue Nov  4 16:27:50 2025] write new refreshtoken
fhemtest-1  | 2025.11.04 16:28:40.151 3: [echo] [echodevice_setState] to connected
fhemtest-1  | 2025.11.04 16:30:21.108 3: [echo] [echodevice_LostConnect] JSON error = {authentication} / set loginerror to 1
fhemtest-1  | 2025.11.04 16:30:21.108 3: [echo] [echodevice_setState] to connected but loginerror
fhemtest-1  | 2025.11.04 16:30:26.038 3: [echo] [echodevice_LostConnect] JSON error = {authentication} / set loginerror to 2
fhemtest-1  | 2025.11.04 16:30:26.039 3: [echo] [echodevice_setState] to connected but loginerror
fhemtest-1  | 2025.11.04 16:31:25.913 3: [echo] [echodevice_LoginStart] connected but loginerror
fhemtest-1  | 2025.11.04 16:31:26.055 3: [echo] [echodevice_LostConnect] JSON error = no content / set loginerror to 3
fhemtest-1  | 2025.11.04 16:31:54.452 1: PERL WARNING: Use of uninitialized value in sprintf at fhem.pl line 2600.
fhemtest-1  | 2025.11.04 16:32:25.915 3: [echo] [echodevice_LoginStart] connected but loginerror
fhemtest-1  | 2025.11.04 16:32:26.089 3: [echo] [echodevice_LostConnect] JSON error = {authentication} / set loginerror to 4
fhemtest-1  | 2025.11.04 16:33:25.920 3: [echo] [echodevice_LoginStart] connected but loginerror
fhemtest-1  | 2025.11.04 16:33:26.390 3: [echo] [echodevice_ParseAuth] reset loginerror from 4 to 0
fhemtest-1  | 2025.11.04 16:33:26.390 3: [echo] [echodevice_setState] to connected

Das ganze Spiel wiederholt sich dann bis ins Unendliche. Nach wenigen Minuten fällt es wieder zurück auf connected but loginerror, das wiederholt sich dann ein paar mal bis es wieder connected ist. Dann wieder connected but loginerror, usw.

Nach etwas längerer Beobachtung mit verbose 4 scheint es, als würde es vor allem hier dran liegen (das ist nur ein Auszug, /api/bootstrap schlägt sehr häufig mit 400 oder 404 fehl):

fhemtest-1  | 2025.11.04 17:05:21.378 4: [echo] [echodevice_GetSettings] Timer INTERVAL = 60
fhemtest-1  | 2025.11.04 17:05:21.378 4: IP: layla.amazon.de -> 13.33.53.128
fhemtest-1  | 2025.11.04 17:05:21.498 4: https://layla.amazon.de/api/bootstrap: HTTP response code 400
fhemtest-1  | 2025.11.04 17:05:21.498 4: [echo] [echodevice_ParseAuth] [cookielogin6]
fhemtest-1  | 2025.11.04 17:05:21.499 4: [echo] [echodevice_LostConnect] clear CMD_QUEUE
fhemtest-1  | 2025.11.04 17:05:21.499 3: [echo] [echodevice_LostConnect] JSON error = {authentication} / set loginerror to 1
fhemtest-1  | 2025.11.04 17:05:21.499 3: [echo] [echodevice_setState] to connected but loginerror

dusti64

Hm merkwürdig alles iwie...ich habe eben nochmal ein
NPM_install durchführen wollen und habe einen Fehler bekommen:
nstallationsergebnis

Installation wird angestartet

up to date, audited 104 packages in 1s

17 packages are looking for funding
run `npm fund` for details

2 low severity vulnerabilities

To address all issues (including breaking changes), run:
npm audit fix --force

Run `npm audit` for details.

!!Installation fehlgeschlagen!!
Demzufolge bekomm ich auch einen Fehler beim Login new
Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durchMache ich einen Neustart, ist alles auf Connected und das Spiel geht von neuem los...

Ein
npm audit bringt mir
# npm audit report

tar  7.5.1
Severity: moderate
node-tar has a race condition leading to uninitialized memory exposure - https://github.com/advisories/GHSA-29xp-372q-xqph
fix available via `npm audit fix`
node_modules/npm/node_modules/tar
  npm  7.21.0 - 8.5.4 || >=11.6.1
  Depends on vulnerable versions of tar
  node_modules/npm

2 moderate severity vulnerabilities

To address all issues, run:
  npm audit fix
Wenn ich das tue, bekomme ich npm warn audit fix tar@7.5.1 node_modules/npm/node_modules/tar
npm warn audit fix tar@7.5.1 is a bundled dependency of
npm warn audit fix tar@7.5.1 npm@11.6.2 at node_modules/npm
npm warn audit fix tar@7.5.1 It cannot be fixed automatically.
npm warn audit fix tar@7.5.1 Check for updates to the npm package.

Und nun weiß ich auch nicht weiter...hat jemand ne Idee?

Gruß Dusti
2xDebian virtualisiert auf 2xPVE mit FHEM, 2x HMLAN, VCCU, CCU3, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Shelly, Home Assistant usw.

passibe

Diese audit-Geschichte kannst du ignorieren.

Wieso der Installer bei dir fehlschlägt, keine Ahnung. Müsstest vielleicht mal verbose hochstellen und im Log schauen.

Kannst es auch mal manuell mit
sudo -u fhem npm install --unsafe-perm --production --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2 && sudo -u fhem npm cache clean --forceversuchen. Keine Garantie, dass das funktioniert, aber eigentlich sollte es dann immerhin alexa-cookie2 an den richtigen Ort packen ...

Falls das nicht klappt, die Befehle nur mit sudo ausführen (ohne -u fhem) und dann
chown -R fhem: /opt/fhem/cache/alexa-cookie
Dann set <device> NPM_login new und es sollte funktionieren.

dusti64

#6261
Vielen Dank...
Leider komme ich nicht weiter, im Log steht folgendes:

2025.11.05 06:44:58 4: [echo] [echodevice_SendLoginCommand] [cookielogin6]
2025.11.05 06:44:58 5: HttpUtils url=https://layla.amazon.de/api/bootstrap NonBlocking via https
2025.11.05 06:44:58 4: IP: layla.amazon.de -> 99.86.233.126
2025.11.05 06:44:58 4: [echo] [echodevice_LoginStart] [enable] set next internal timer start in 60 seconds.
2025.11.05 06:44:58 5: HttpUtils request header:
GET /api/bootstrap HTTP/1.1
Host: layla.amazon.de
Accept-Encoding: gzip,deflate
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Cookie: session-id=261-8361422-5767728; session-id-time=2392994234l; ubid-acbde=259-6399075-4676729; session-token=xxx; csrf=xxx

2025.11.05 06:44:58 4: https://layla.amazon.de/api/bootstrap: HTTP response code 400
2025.11.05 06:44:58 5: HttpUtils https://layla.amazon.de/api/bootstrap: Got data, length: 71
2025.11.05 06:44:58 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 71
Connection: keep-alive
Server: Server
Date: Wed, 05 Nov 2025 05:44:58 GMT
Strict-Transport-Security: max-age=0; includeSubDomains;
x-amz-rid: QD31VQ8ADZYA4GA2H4T7
x-amzn-ErrorType: ThrottlingException:http://internal.amazon.com/coral/com.amazon.coral.availability/
x-amzn-RequestId: xxx
Vary: Content-Type,Accept-Encoding,User-Agent
X-Cache: Error from cloudfront
Via: 1.1 b6e5215e9cbb193bb12a684806a73004.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: HAM50-P5
X-Amz-Cf-Id: xxx
2025.11.05 06:44:58 4: [echo] [echodevice_ParseAuth] [cookielogin6]
2025.11.05 06:44:58 5: [echo] [echodevice_ParseAuth] [cookielogin6] DATA Dumper=$VAR1 = '{"message":"Rate Limit exceeded gizmo policy","throttlingReasons":null}';

2025.11.05 06:44:58 4: [echo] [echodevice_LostConnect] clear CMD_QUEUE
2025.11.05 06:44:58 3: [echo] [echodevice_LostConnect] JSON error = {authentication} / set loginerror to 2
2025.11.05 06:44:58 3: [echo] [echodevice_setState] to connected but loginerror

Die Meldung 2 low severity vulnerabilities bringt mich zu der Geschichte mit tar (https://github.com/npm/cli/issues/8715). Kann es manchmal damit zusammenhängen? sind es falsche Abhängigkeiten?

Ich hab von dem ganzen Thema leider zu wenig Ahnung...

EDIT:
Ich habe einen Snapshot von letzter Wocher hergestellt und jetzt kann ich npm wieder installieren beim echodevice und auch einen neuen Login durchführen.
Der Snapshot wurde gemacht vor einem Nodejs Update bei Homebridge, also vermute ich mal, dass meine ganzen Probleme damit zusammenhängen...
Jetzt: nodejs Version = 22.20.0 und npm = 11.6.1

Das "connected but loginerror" bleibt allerdings bestehen.

2xDebian virtualisiert auf 2xPVE mit FHEM, 2x HMLAN, VCCU, CCU3, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Shelly, Home Assistant usw.

passibe

Zitat von: dusti64 am 05 November 2025, 07:32:032 low severity vulnerabilities
Das sagt einfach nur, dass es da irgendwelche bekannten Sicherheitslücken gibt und die Abhängigkeiten mal aktualisiert werden sollten. Ist für die Funktionalität egal.



Naja, das was du da jetzt siehst ist doch genau das, was alle anderen hier und ich vorhin beschrieben haben. 400er-Fehler beim Aufruf von https://layla.amazon.de/api/bootstrap. Das Modul ist grade einfach kaputt.

Dir wird nicht viel mehr übrig bleiben als zu warten, bis das gefixt wird, oder du steigst auf das HACS-Plugin "Alexa Media Player" von Home Assistant um und bindest das über MQTT in FHEM ein. Gibt bestimmt noch andere Optionen (Node-RED, vermutlich?).

dusti64

Zitat von: passibe am 05 November 2025, 08:48:43Naja, das was du da jetzt siehst ist doch genau das, was alle anderen hier und ich vorhin beschrieben haben. 400er-Fehler beim Aufruf von https://layla.amazon.de/api/bootstrap. Das Modul ist grade einfach kaputt.

Ja das vermute ich nun auch, dass es schlicht defekt ist. Home Assistant werde ich mir anschauen...

Hab vielen Dank für deine Hilfe (y)

Gruß Dusti
2xDebian virtualisiert auf 2xPVE mit FHEM, 2x HMLAN, VCCU, CCU3, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Shelly, Home Assistant usw.

KölnSolar

Morjen,
wie manche wissen, nutze ich node.js für das "Auffrischen" des Cookies nicht, sondern einmal wöchentlich manuelle Aktualisierung.

Auch ich hatte "komische" Verhaltensweisen mit login error.
Seit gestern scheint es aber wieder stabil zu laufen.

Wenn Ihr immer noch Probleme habt, dann liegt es wohl an der node.js-Methode.

Grüße
Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

mthome

#6265
Zitat von: KölnSolar am 05 November 2025, 10:05:14wie manche wissen, nutze ich node.js für das "Auffrischen" des Cookies nicht, sondern einmal wöchentlich manuelle Aktualisierung.
@KölnSolar, hättest Du mir bitte nochmal kurz die Stichpunkte wie ich es ohne NPM nutze - hab' es verdrängt und finde es nicht mehr. Evtl. würde ich es als schnellen Workaround auch so nutzen bis es gefixt ist.
  • define Echo echodevice <account> <pwd>
  • dann cookie z.B. aus Browser holen und in Attribut cookie kopieren?
  • dann login? wie mache ich das mit 2FA?

KölnSolar

2FA habe ich nicht.
Das define verstehe ich nach den vielen Jahren selber nicht mehr.  :o Sollte aber nicht bedeutsam sein.
Funktioniert Michaels www nicht mehr ? Ich komm zumindest gerade nicht drauf...
Also muss ich tippen:
Das Cookie holt man über die Entwicklungstools bei MSEdge. Es funktioniert nach meinen Erkenntnissen nur noch auf Seiten zu den Datenschutzeinstellungen z.B. https://www.amazon.de/alexa-privacy/apd/rvh
Und seit gut einem Jahr muss man das https://forum.fhem.de/index.php?msg=1309988 noch machen.
Nach dem Setzen des cookie-Attributs geht das Device auf Initialized, dann noch ein set Device login und läuft für eine Woche.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

dusti64

2xDebian virtualisiert auf 2xPVE mit FHEM, 2x HMLAN, VCCU, CCU3, Homatic Heizung+Licht+Rollläden, Alexa, Homebridge, Hue, Shelly, Home Assistant usw.

KölnSolar

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

mthome

#6269
@KölnSolar, danke für die Hilfe.

Aber bei mir klappt das iwie nicht. Hab es wie beschrieben durchgeführt aber auch hier wieder cookie error und unauthorized

define Echo echodevice <account> <pwd>
Cookie eingetragen und "; csrf=123456789" angehängt
login

Dann habe ich noch login2FACode mit dem richtigen Code probiert - danach kam kurz ein connect.

Nach kurzer Zeit leider auch wieder cookie error und unauthorized. Ich stelle mal wieder auf NPM um - da geht es zumindest teilweise.

Trotzdem nochmals Danke für die Hilfe.