echodevice: wait for refreshtoken im sekundentakt

Begonnen von matze1999, 04 Juni 2026, 08:26:32

Vorheriges Thema - Nächstes Thema

michael.winkler

Leider gibt es noch keinen offiziellen Patch für das Problem. Aber ich kann euch schon mal einen Workaround Bereitstellen.

Wichtig ist, dass bei einem "get status" am Account Device hier bei "NPM Cookie Version Reading"=5.0.3 steht. Wenn Ihr nicht die Version 5.0.3 habt. Dann müsst Ihr zuerst eine Aktualisierung machen! Doku: https://www.mwinklerblog.de/modul-echodevice-npm/

Wenn die Version passt, müsst Ihr folgende Datei anpassen: /opt/fhem/cache/alexa-cookie/node_modules/alexa-cookie2/alexa-cookie.js

Ich würde euch empfehlen vorab eine Kopie von der Datei anzufertigen

Suche dort nach der Zeile "        loginData.deviceSerial = deviceSerial;" (Müsste Zeilennummer 423 sein)

direkt danach dann bitte folgende Code einfügen:
if (loginData.accessToken) {
return callback(null, loginData);
}

Nach der Änderung die Datei speichern. Ich würde Euch dann empfehlen der FHEM Server einmal neu zu starten. Danach sollte das ganze wieder normal laufen.

Snocksman

Habe ich gerade mal durchgeführt. Jetzt mal ein paar Stündchen abwarten, ob FHEM wieder langsam wird, oder obs damit wirklich wieder funktioniert. Danke auf jeden Fall für deine Mühe !

punker

LG

Dieter

The truth is out there!

stefanru

Danke Michael,
habe den Patch mal angewendet sieht gut aus.
Ich warte mal ab und beobachte.

Gruß,
Stefan
FHEM: Raspberry PI 400+SSD Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, Authelia, Caddy, Gerbera, Paperless NGX
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

Peter_Listig

@Michael

Vielen Dank für die schnelle Abhilfe.
Habe Deine Änderung gegen 15.00 Uhr
Umgesetzt - seitdem läuftdad echodevice
wieder problemlos.
Werde weiter beobachten ...

Grüße
Peter
Raspi4 / Debian Bullseye / FB 7490 / FHEM 6.x / CUL433 / CUL868 / aculfw / FrtizFon / DECT200 / IT / Homematic / ZigBee (Raspbee) /  Rademacher / HE / km200  / DS214+

punker

@Michael
Sieht alles weiterhin gut aus.
Keine erhöhte Systemlast.
Danke
LG

Dieter

The truth is out there!

Snocksman

Kurze Rückinfo: FHEM läuft auch heute morgen noch wie es soll. Der Workaround scheint also zu funktionieren.  8)

Burny4600

ZitatSuche dort nach der Zeile "        loginData.deviceSerial = deviceSerial;" (Müsste Zeilennummer 423 sein)

direkt danach dann bitte folgende Code einfügen:
        if (loginData.accessToken) {
            return callback(null, loginData);
        }

Habe ich gemacht, ohne vorher irgendetwas zu verändern. Nach dem Neustart des Pis kehrte wieder Ruhe ein.

Getestet mit:
Trixie Lite - Linux ccs-ht-rasp01 6.18.33+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.33-1+rpt1 (2026-06-01) aarch64

cd /opt/fhem/cache/alexa-cookie
npm list

alexa-cookie@ /opt/fhem/cache/alexa-cookie
└── alexa-cookie2@5.0.3

node --version
v25.9.0

npm --version
11.16.0

which npm
/usr/bin/npm

which node
/usr/bin/node

list Amazon.Account
Internals:
   CFGFN      /media/hdd/fhem/mycfg/alexa/alexa_rasp01.cfg
   DEF        xxx@xxx.xx xxx
   FUUID      677fff36-f33f-f4d2-f267-ba8d7c2b104758a7
   IODev     
   LOGINMODE  NPM
   NAME       Amazon.Account
   NR         935
   NTFY_ORDER 50-Amazon.Account
   STATE      connected
   TYPE       echodevice
   eventCount 9
   model      ACCOUNT
   OLDREADINGS:
   READINGS:
     2026-06-13 11:03:28   BrowserLanguage de,de-DE
     2026-06-13 11:03:28   BrowserUserAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/134.0
     2026-06-13 11:00:19   COOKIE_MODE     NPM
     2026-06-13 11:03:25   COOKIE_STATE    OK
     2026-06-13 11:01:25   COOKIE_TYPE     READING_NPM
     2026-06-13 11:03:28   alarm_count     0
     2026-06-13 10:50:33   amazon_refreshtoken vorhanden
     2026-06-13 11:01:25   autocreate_devices stop
     2026-06-13 11:03:25   config_address_between -
     2026-06-13 11:03:25   config_address_from -
     2026-06-13 11:03:25   config_address_to -
     2026-06-13 11:03:27   list_SHOPPING_ITEM
     2026-06-13 11:03:27   list_TASK      
     2026-06-13 11:03:28   musicalarm_count 0
     2026-06-13 11:03:28   parse_error     OK
     2026-06-13 11:03:28   reminder_count  0
     2026-06-13 11:03:25   state           connected
     2026-06-13 11:03:28   timer_count     0
     2026-06-13 11:03:28   timer_id        -
     2026-06-13 11:03:28   timer_remainingtime 0
     2026-06-13 11:01:25   version         0.2.34
   helper:
     CMD_QUEUE_NUMBER 150
     DEVICETYPE ASQZWP4GPYUT7
     RUNLOGIN   0
     RUNNING_REQUEST 0
     SERVER     layla.amazon.de
     TWOFA     
     VERSION    35334210436
     echodevice_refreshvoice 0
     echodevice_refreshvoice_lastdate 1781341285.32598
     Alarm:
       G8M2DB064446001P:
         5a6e9ee1-e333-4126-8894-deb886776d16:
           alarmTime  0
           musicAlarmId null
           musicEntity null
           originalDate 2026-06-13
           originalTime 18:45:00.000
           provider   null
           recurringPattern P1D
           remainingTime 0
       GN42ML0540430403:
         31e0f0bd-e871-49b2-b8ca-c7b15e9273d3:
           alarmTime  0
           musicAlarmId null
           musicEntity null
           originalDate 2026-06-15
           originalTime 07:00:00.000
           provider   null
           recurringPattern XXXX-WD
           remainingTime 0
         8821e9db-38d8-4aba-99af-3f3d892a3717:
           alarmTime  0
           musicAlarmId null
           musicEntity null
           originalDate 2026-06-13
           originalTime 08:00:00.000
           provider   null
           recurringPattern XXXX-WE
           remainingTime 0
     CMD_QUEUE:
     getbehavior:
       amzn1.alexa.automation.1a3e52aa-8b7b-4d0a-9ccb-393cfb1c2e36:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.6e7d826e-a325-4310-83c3-f3cfbbaf33fb
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name      
             nodeState 
             presentationDataList
             primitiveId zCl6fIWcYQoRRFtCcmpsgiz6n_gTx4yGHDyGD7aqqlqrsnzSQo-nXMgAiyE7ry3l
             skillId    amzn1.ask.1p.saysomething
             tag       
             type       Alexa.Speak
             operationPayload:
               customerId A1RZGI2HDW33QJ
               deviceSerialNumber G8M2DB064446001P
               deviceType ASQZWP4GPYUT7
               locale     de-AT
               textToSpeak Zeit fürs Bett!
         triggers:
           HASH(0x555660e0b078)
       amzn1.alexa.automation.21c4a36e-607c-4077-a5dc-2077f852f690:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.c17bbed6-618a-4410-b4af-37c1e3568095
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name      
             nodeState 
             presentationDataList
             primitiveId gp2IjuP-uffubMKs1gEmcANNW3Qg9u_-Ih_ujiDr9UG-yTx_d-hVXxf9ItX-yoqE
             skillId    noop
             tag       
             type       DoNothing
             operationPayload:
               doNothing:
         triggers:
           HASH(0x5556609daff8)
       amzn1.alexa.automation.28254299-f3f2-4fe1-8020-40b71a9399f6:
         status     DISABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.6afe5b8d-4510-435b-a6c4-b85a760a8d0a
           startNode:
             @type      com.amazon.alexa.behaviors.model.SerialNode
             name      
             nodesToExecute:
               HASH(0x555662221590)
         triggers:
           HASH(0x5556609da578)
       amzn1.alexa.automation.3ac0ac7d-c2b1-4e14-bf0c-6998b8fb2394:
         status     DISABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.28bba785-e28b-4227-aa12-5cb9cebb1a95
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name      
             nodeState 
             presentationDataList
             primitiveId gp2IjuP-uffubMKs1gEmcANNW3Qg9u_-Ih_ujiDr9UG-yTx_d-hVXxf9ItX-yoqE
             skillId    noop
             tag       
             type       DoNothing
             operationPayload:
               doNothing:
         triggers:
           HASH(0x555660bbac70)
       amzn1.alexa.automation.54fe2cc9-fa65-401a-a1f8-923f0c767ac3:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.c8000f05-ee26-435d-a634-e1ccfeba1de1
           startNode:
             @type      com.amazon.alexa.behaviors.model.SerialNode
             name      
             nodesToExecute:
               HASH(0x555661a611b8)
         triggers:
           HASH(0x555660eeafb8)
       amzn1.alexa.automation.5d651311-f087-4c6a-9532-4ae53603cfb2:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.025c582d-c2aa-47eb-9fbb-b5a79fcaa03c
           startNode:
             @type      com.amazon.alexa.behaviors.model.SerialNode
             name      
             nodesToExecute:
               HASH(0x555663d97e28)
               HASH(0x55566063cda0)
         triggers:
           HASH(0x555663f67760)
       amzn1.alexa.automation.7432ae70-57fd-44bd-904d-e780fdda5d9e:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.b2274176-be5c-46e3-a953-1fc39d17c8eb
           startNode:
             @type      com.amazon.alexa.behaviors.model.SerialNode
             name      
             nodesToExecute:
               HASH(0x555664afc418)
         triggers:
           HASH(0x555660c97e48)
       amzn1.alexa.automation.833a7a0e-fe39-4993-88e3-cea3a4f9e7f9:
         status     DISABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.11586db4-c7cd-4ae0-815c-f995fd6ec400
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name      
             nodeState 
             presentationDataList
             primitiveId gp2IjuP-uffubMKs1gEmcANNW3Qg9u_-Ih_ujiDr9UG-yTx_d-hVXxf9ItX-yoqE
             skillId    noop
             tag       
             type       DoNothing
             operationPayload:
               doNothing:
         triggers:
           HASH(0x55566186b088)
       amzn1.alexa.automation.e202bba7-fb8d-436c-8f9f-4cd67e683ab4:
         status     DISABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.1e957d57-cace-4f5f-a5ec-19f459d23b1f
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name      
             nodeState 
             presentationDataList
             primitiveId gp2IjuP-uffubMKs1gEmcANNW3Qg9u_-Ih_ujiDr9UG-yTx_d-hVXxf9ItX-yoqE
             skillId    noop
             tag       
             type       DoNothing
             operationPayload:
               doNothing:
         triggers:
           HASH(0x555662123988)
     getsettingstraffic:
       between   
       from      
       to        
     notifications:
       G8M2DB064446001P:
         5a6e9ee1-e333-4126-8894-deb886776d16 Alarm_18:45:00.000
       GN42ML0540430403:
         31e0f0bd-e871-49b2-b8ca-c7b15e9273d3 Alarm_07:00:00.000
         8821e9db-38d8-4aba-99af-3f3d892a3717 Alarm_08:00:00.000
       _G070VM1392640AAF:
       _G071R20721550LPE:
       _G8M2DB05419602J3:
       _G8M2DB064446001P:
         alarm_aktiv 0
         count_Alarm 1
       _GN42ML0540430403:
         alarm_aktiv 1
         count_Alarm 2
       _account:
       _ec35e2eb2a2842168f922236c6b68f37:
Attributes:
   TTS_Voice  German_Female_Vicki
   TTS_normalize 5
   alias      Amazon Konto
   autocreate_refresh 1
   browser_language de,de-DE
   browser_useragent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/134.0
   devStateIcon connected:alexa@0CFB0C connected.but.loginerror:alexa@orange disconnected:alexa@red
   devStateStyle style="text-align:left;;font-weight:bold;;"
   event-on-change-reading .*
   group      Alexa Verteilung
   icon       alexa
   npm_bin    /usr/bin/npm
   npm_bin_node /usr/bin/node
   npm_proxy_port 3002
   npm_refresh_intervall 6000
   room       _AMAZON,_RxTx
   sortby     01.01
LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Davis, Eastron, FS20, Homematic, IT, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, SkyWind, TEK603

dusti64

Mir hat der Workaround auch geholfen (y) herzlichen Dank dafür!

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

Peter_Listig

@Michael

Läuft mit Deinenm workaround seit 4 Tagen stabil ..

Danke nochmals

Gruß
Peter
Raspi4 / Debian Bullseye / FB 7490 / FHEM 6.x / CUL433 / CUL868 / aculfw / FrtizFon / DECT200 / IT / Homematic / ZigBee (Raspbee) /  Rademacher / HE / km200  / DS214+

matze1999

Hallo,

ich hab nicht aufgepasst und ein Fhem update gemacht, da wurde auch das echodevice wieder eingespielt:

37_echodevice.pm           30527 2025-11-14 15:49:25Z michael.winkler
der o.g. Patch war raus, den hab ich jetzt wieder in alexa-cookie.js eingetragen, und Fhem neu gestartet.

Jetzt habe ich das "wait for refreshtoken" wieder im sekundentakt.

Was muss ich tun?

matze


eckonator

Hey, ich weis nicht ob es hilft, aber unabhängig diesen Forums, habe ich vor ca. einer Woche auch bemerkt, dass mein FHEM immer träger wurde und dann irgendwann gar nicht mehr reagierte. Dies hatte ich dann debuggt und durch das Event log schnell den Übeltäter gefunden: unzählige ,,refresh Token" Meldungen im Sekunden-Takt. Diese hatten meinen Server überlastet.

Meine Lösung war dann einfach das setzten diesen Attributs auf das Echodevice.

attr alexa-account-service event-on-update-reading state
Dadurch wurden die Fehler im Hintergrund vermutlich zwar immer noch ausgelöst, aber es hat FHEM nicht mehr gejuckt und wurde im event log nicht mehr angezeigt.

So läuft mein FHEM mit alexa nun eigentlich seither stabil und meine alexa Geräte sind connected.

Ist es besser den Workaround-Patch von Michael einzubauen oder so lassen bis es ein offizielles Update zum node Module gibt?
FHEM 6.2 | PiHole | MagicMirror2 | Fritz!Box 7590 (Basis) + 3x Fritz!Box 4040 (IP-Client) | Amazon DOT | HomeBridge | Max!Cube (geflasht) + Max Komponenten | Harmony Hub | YeeLight Bulbs | G-Homa und Fritz!DECT Steckdosen

Sidey

Hallöchen,

diejenigen, die manuelle Patch-Vorgänge vermeiden möchten oder sich unsicher fühlen, biete ich eine alternative Lösung an.

Ich habe einen container erstellt, der die Aktualisierung der Cookies übernimmt.
Dieser Dienst wird als Container-Image zur Verfügung gestellt und liefert per HTTPMOD die Daten an echodevice.

Mehr Infos dazu hier:
https://forum.fhem.de/index.php?topic=144449.msg1361818#msg1361818

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp