Alexa aktualisiert Temperaturen unregelmäßig

Begonnen von dieter114, 22 Juli 2026, 10:16:38

Vorheriges Thema - Nächstes Thema

dieter114

Hallo Zusammen,
ich habe ein Problem mit dem Alexa FHEM Connector.
Das System wurde vor ca 3 JJahren eingerichtet und funktioniert eigentlich prima.
Seit der Umstellung auf die "Neue" Alexa von Amazon sind die Ansagen anders aber auch m.E. besser auf dei Deutsche Sparache angepasst.
Ich übertrage Temperaturwerte von zwei Dummys an Alexa.
Dies lief sehr gut bisher. Die Daten werden regelmäßig aktualisiert und wurden auch dementsprechend "richtig" bei Abfragen angesagt.
Seit dieser Umstellung gehr das irgendwie nicht mehr.
Entweder werden Werte genannt die von genau 0.00 Uhr sind oder auch mal nichts.
Also "Ich kann die Temperatur vom Pool nicht erkennen" oder so.
Hier ein Auszug vom Alexa-Log:
2026-07-22 09:03:56 caching: pool.water2-temperature: 26.1
[22/07/2026, 09:03:56] [FHEM]     caching: CurrentTemperature: 26.1 (as number; from '26.1')
  2026-07-22 09:07:48 caching: BresserTemeo_Hoftemp-temperature: 14.6
[22/07/2026, 09:07:48] [FHEM]     caching: CurrentTemperature: 14.6 (as number; from '14.6')
  2026-07-22 09:09:46 caching: BresserTemeo_Hoftemp-temperature: 14.7
[22/07/2026, 09:09:46] [FHEM]     caching: CurrentTemperature: 14.7 (as number; from '14.7')
  2026-07-22 09:11:47 caching: BresserTemeo_Hoftemp-temperature: 14.8
einmal Pool, dreimal Hoftemperatur.
Die Daten werden also gesendet, aber Alexa erkennt die irgendwie nicht mehr.

Jemand ne Idee was das sein könnte?
Liebe Grüße WDS

RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

Navigator

Das Problem habe ich auch. Die Sensorwerte werden aus irgendeinem Grund nicht mehr an Alexa übermittelt oder besser gesagt, der Prozess stoppt dann einfach irgendwann. Ich verwende aber noch die Standart Alexa. Den Connector hatte ich schon mal gelöscht und neu aktiviert, keine Änderung. Auch im Log findet sich kein Fehler oder ein Hinweis auf diese Fehlverhalten.
Gruß aus Sachsen. FHEM auf Cubietruck. Vormals EZControl XS1 User.

errazzor

Hallo,

ich habe genau das gleiche Problem.
Alex aktualisiert die Temperaturen nicht mehr von meinen Homematic-Sensoren. Es werden immer alte Werte angesagt.

Wenn ich manuell die Alexa-App öffne und auf einen der Sensoren klicke, wird die Temperatur sofort aktualisiert.
Nur eben von alleine passiert das nicht mehr.

Hat jemand einen Tipp/Lösung zur Fehlerbehebung?

TomLee

#3
ZitatIch verwende aber noch die Standart Alexa.

Hallo,

sieht so aus, als würde Amazon bei der Frage nicht mehr live per ReportState nachfragen, sondern aus dem Cache antworten. Der wird nur ab und zu aufgefrischt, z. B. beim Öffnen der App.
Und alexa-fhem schickt von sich aus keine Änderungen, solange proactiveEvents aus ist (Default).

Bei mir hat das geholfen:

  • in der alexa-fhem.cfg unter connections "proactiveEvents": true ergänzen, dann set alexa restart
  • Skill in der App neu verknüpfen, dann gibt's ein .eventToken ("got event token" im Log)
  • Geräte neu suchen


Seitdem steht bei jeder Änderung "posted skill event: 202" im Log, und Alexa sagt den aktuellen Wert.

Warum es jetzt nur noch so geht: alexa-fhem meldet jedes Gerät bei der Discovery als "retrievable": true und "proactivelyReported": false. Für Amazon hieß das bisher: das Gerät meldet sich nicht von selbst, also bei jeder Frage per ReportState nachfragen. So lief das jahrelang, ganz ohne Event-Token.

Genau dieses Nachfragen ist weg. Bei meinen Testfragen kam bei alexa-fhem gar nichts an, Alexa hat den Wert vom Vortag angesagt. ReportStates kamen nur noch gesammelt für alle Geräte auf einmal, als die App offen war (im correlationToken steht dann lifeCycle "POLLING_STARTED"). Amazon behandelt "proactivelyReported": false also offenbar nicht mehr als "frag mich jedes Mal", sondern als "schau ab und zu mal vorbei" und antwortet dazwischen aus dem Cache. Den aktuell halten kann dann nur noch das Gerät selbst, eben per ChangeReport. Warum Amazon das umgestellt hat, weiß ich nicht. Ich vermute, es hängt mit der neuen Alexa zusammen (bei dieter114 fing's ja damit an) und ist inzwischen auch bei der normalen angekommen. Amazon empfiehlt proaktives Melden für Smart-Home-Skills schon länger, jetzt ist es halt praktisch Pflicht.

Zum Attribut alexaProactiveEvents, weil man da leicht drüber stolpert: Laut Commandref ist es dafür gedacht, dass Geräte Alexa-Routinen auslösen können ("devices that send proactiveEvents to amazon can be used to trigger alexa routines"). Also opt-in pro Gerät, z. B. für einen Bewegungsmelder oder Kontakt als Routinen-Auslöser, Default aus. Für Temperaturen brauchte man das bisher nicht, weil Alexa ja live nachgefragt hat.

Technisch ist es aber derselbe Weg: Ist proactiveEvents an, schickt alexa-fhem bei jeder Änderung einen ChangeReport an Amazon, und genau den braucht Alexa jetzt, um ihren Cache aktuell zu halten. Aus dem Routinen-Schalter ist damit quasi der Schalter für aktuelle Werte geworden.

Deshalb reicht attr alexa alexaProactiveEvents 1 am alexa-Device nicht:
Ob ein Gerät sendet, nimmt alexa-fhem aus dem Attribut am Gerät selbst oder, wenn das fehlt, aus proactiveEvents in der cfg (fhem.js, Konstruktor von FHEMDevice). Am alexa-Device wird es nur als Hauptschalter ausgewertet, da wirkt nur die 0 (alles aus). Wer nicht jedes Gerät einzeln anfassen will, setzt es also in der cfg.

Und beim Neuverknüpfen sind die Routinen mit FHEM-Geräten weg.

Mit dem Connector hab ich's nicht getestet, sollte aber genauso gehen.

Gruß Thomas

edit:

Nachtrag, falls jemand drüber stolpert (und vielleicht liests ja auch mal der Modulautor):

Heute liefs bei mir schon wieder nicht. Im Log stand ab Mittag nur noch "no event token available", obwohl .eventToken am alexa-Device gesetzt war. Da steckten zwei Sachen dahinter:

1. alexa-fhem stürzt bei einem Netzwerkfehler ab
Wenn der POST an api.eu.amazonalexa.com mit einem Socket-Fehler scheitert, gibt's kein httpResponse, der Fehlerzweig in postEvent liest aber trotzdem httpResponse.statusCode:
server.js:1271  log.error( 'failed to post event: '+ httpResponse.statusCode + ': ' +err);
TypeError: Cannot read properties of undefined (reading 'statusCode')
Der Prozess stirbt, FHEM startet ihn neu. Das trifft jeden, der proactiveEvents an hat. Ein Check auf httpResponse vor dem statusCode würde reichen (nicht getestet, ich hab den Code nicht angefasst).

2. Nach dem Neustart wird das Token nicht geladen
.eventToken wird nur im Handler für 'ALEXA DEVICE' gelesen. Das Event kommt aus updateAlexaDevice (fhem.js), und die Funktion parst vorher alexaMapping für den Custom Skill. Bricht das ab, gibt's kein Event und damit kein Token, obwohl das mit dem Smart-Home-Skill gar nichts zu tun hat.

Bei mir ist es abgebrochen, weil das alexa-Device selbst einen alexaName hat (ich schalte darüber per Sprache den Neustart von alexa-fhem). Dann ist es schon "published", der FHEMDevice-Konstruktor steigt vor this.mappings = {} aus, und fromHomebridgeMapping fliegt beim ersten Eintrag aus alexaMapping raus:
alexa is already published
TypeError: Cannot read properties of undefined (reading 'On')
    at FHEMDevice.fromHomebridgeMapping (fhem.js:1130)
    at ... (fhem.js:1386)
Wer am alexa-Device keinen alexaName hat, sollte das nicht haben (aus dem Code abgeleitet, nicht ausprobiert).

Workaround, bei mir getestet: clear als erste Zeile in alexaMapping
attr alexa alexaMapping clear
#Characteristic=<name>=<value>,...
On=verb=schalte,...
clear setzt mappings auf {}, das Parsen läuft durch, und das Token ist sofort wieder da ("got .eventToken", danach wieder 202).

Gefunden hab ich das wieder mit meinem Agenten. Ist alles alexa-fhem 0.5.65 und 39_alexa.pm von 2021.

azlanw

FHEM 5.7 auf Pi 4 / Fritz!Box 7330 / FRITZ!DECT 200 

CUL 868 / Intertechno IT-1500
JeeLink / TX 29 DT-HT / TX40-IT / PCA301

errazzor

Zitat von: TomLee am 03 November 2026, 19:08:43
ZitatIch verwende aber noch die Standart Alexa.

Bei mir hat das geholfen:

  • in der alexa-fhem.cfg unter connections "proactiveEvents": true ergänzen, dann set alexa restart
  • Skill in der App neu verknüpfen, dann gibt's ein .eventToken ("got event token" im Log)
  • Geräte neu suchen


Seitdem steht bei jeder Änderung "posted skill event: 202" im Log, und Alexa sagt den aktuellen Wert.


Vielen Dank für die ausführliche Erläuterung und den Fix. Bei mir scheint es jetzt wieder zu funktionieren. Top!