Hallo zusammen,
bei mir funktionieren seit einiger Zeit die Routinen nicht mehr, die auf etwas reagieren sollen, was in FHEM passiert.
Schalten von Alexa ist kein Problem und funktioniert weiterhin (Also bspw "Fernseher aus" und TV wird von FHEM ausgeschaltet).
Was ich mache, bzw was passiert / nicht passiert:
- Dummy erstellen, als "contact" und Wechsel zwischen open/closed
- Wird in der App auch hervorragend erkannt
- Ich schalte in FHEM zwischen open/closed hin und her
- In der Alexa App sehe ich den Status-Wechsel
- Was nicht passiert: Eine Routine wird gestartet, die zB auf ein "open" reagieren soll
- Routine manuell starten macht genau das was es soll: zB eine Sprachausgabe
Seit wann das nicht mehr geht weiß ich nicht. Ich habe das nur selten genutzt (Routinen gingen früher, waren deaktiviert), habe jetzt aber einen Anwendungsfall, bei dem ich das eigentlich gerne einsetzen möchte.
Ich weiß, dass es wohl kein Problem von alexa-fhem ist, aber ich hoffe auf eure Erfahrungen :)
Vielen Dank vorab!
Also du hast eine bestehende Routine wieder aktiviert oder eine neue angelegt?
Wenn eine alte reaktiviert: was passiert, wenn du eine neue anlegst? Wird dir der "Sensor" angeboten als Auslöser?
Ansonsten:
list vom dummy und Einträge aus dem alexa-fhem Log, wenn du open/closed ausführst...
Was ist denn die Anwendung wo du "unbedingt" eine Routine in Alexa/Amazon brauchst?
Für Sprachausgaben (und auch sonst so einiges: Sprachkommandos :) ) gibt es das echodevice-Modul:
https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482
https://www.mwinklerblog.de/smarthome/eigene-module/echodevice/
(GENAU LESEN!!! "Fake-Account" nutzen zum define! Und npm_install / npm_login nutzen!!)
Gruß, Joachim
Danke für die Links, ich habe mal "drübergelesen" und es scheint ja nicht ganz trivial das Modul einzurichten :D
Ich habe aber mal die Einträge aus dem log und das list gemacht, vielleicht fällt dir ja etwas auf. Wie gesagt, in der Alexa App sehe ich, dass der Sensor seinen Status ändert. Leider wird aber die Routine nicht ausgeführt.
Und der Anwendungsfall ist, dass ich für einen Raum, der momentan nicht mit einem Gong versorgt ist, eine Notification haben möchte, wenn jemand klingelt ;)
Log:
2022-03-23 19:52:45 caching: alexa_klingel-state: open
[23/03/2022, 19:52:45] [FHEM] caching: ContactSensorState: CONTACT_NOT_DETECTED (as string; from 'open')
[23/03/2022, 19:52:45] [FHEM] caching: ContactSensorState: CONTACT_NOT_DETECTED (as string; from 'open')
[23/03/2022, 19:52:45] refreshing token
[23/03/2022, 19:52:45] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
2022-03-23 19:52:47 caching: alexa_klingel-state: closed
[23/03/2022, 19:52:47] [FHEM] caching: ContactSensorState: CONTACT_DETECTED (as string; from 'closed')
[23/03/2022, 19:52:47] [FHEM] caching: ContactSensorState: CONTACT_DETECTED (as string; from 'closed')
[23/03/2022, 19:52:47] refreshing token
[23/03/2022, 19:52:47] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
list
Internals:
FUUID 622c5f9f-f33f-3241-7a9f-404bc9d5efd14200
NAME alexa_klingel
NR 3250
STATE closed
TYPE dummy
Helper:
DBLOG:
state:
logdb:
TIME 1648061567.74556
VALUE closed
READINGS:
2022-03-23 19:52:47 state closed
hmccu:
Attributes:
alexaName Klingel
alexaProactiveEvents 1
alias Klingel
genericDeviceType contact
homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED
room Logik->Alexa
setList open closed
Was ich sehe:
Zitat
[23/03/2022, 19:52:47] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
Und noch mal die Frage:
wenn du eine neue Routine anlegst/anlegen willst und dann als "Auslöser" in deinen Geräten "suchst" (also in der Alexa-App) wird dir dann da der Kontakt angeboten?
Wenn ja: wenn du eine neue Routine anlegst, geht die dann? Dann ist evtl. irgendwie die "Verknüpfung" ziwschen der bestehenden Routine und dem Kontakt "verloren" gegangen (-> Amazon Support?)
Wenn nein: dann erkennt Alexa den Kontakt nicht (mehr) als "Auslöser"...
Dann evtl. mal rausfinden, warum du die "Fehlermeldung" hast...
EDIT: eine Suche nach dem Fehler liefert ja einige Treffer. Hab jetzt nicht alle durch, um zu sehen was am besten passt. Aber erst mal klären, ob das überhaupt der Grund ist... Bzw. steht da ja sogar im Wiki zu alexa-fhem Connector was drin: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa (suche nach "failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'")
Zitat von: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa
Fehlersuche:
Der Push setzt ein intaktes Push-Token voraus. Sollte im Alexa-Logfile Folgendes erscheinen:
failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
so ist das Push-Token nicht aktuell. Weil die Auswirkung lange nur war, dass Geräteänderungen nicht aktiv an Amazon gemeldet wurden, gibt es noch keine umfassende Analyse des Problems. Es lässt sich lösen, indem eine oder beide folgenden Aktionen ausgeführt werden:
Löschen des ".eventToken" im Alexa-Device über "deletereading"
"FHEM-Connector"-Skill auf "alexa.amazon.de" einmal deaktivieren und dann neu verbinden
Das echodevice-Modul einzurichten ist nicht kompliziert.
Man muss es halt (gleich) richtig machen!
Also ein möglichst aktuelles System haben (mind. Buster, besser Bullseye / Debian 10 oder 11).
Dann eben per apt nodejs/npm installieren.
(kurzzeitig) den Eintrag in der sudoers (RICHTIG! machen, also z.B. eine Kopie einer bestehenden sudoers Datei, z.B. vom User pi /etc/sudoers.d/ und da dann eben anpassen auf User fhem).
Dann das Device anlegen per define. Da halt wichtig: den FAKE-ACCOUNT nehmen!!
Dann beim Device ein set Devicename npm_install und danach ein set Devicename npm_login new
Bei Amazon einloggen und fertig.
Danach kann man dann per set Devicename autocreate_devices seine Echos anlegen lassen.
Wichtig: manche Dinge sind/gehen nur beim "Account-Device", das ist das ERSTE was du manuell anlegst/angelegt hast. Das entspricht KEINEM! deiner Echo-Geräte, sondern eben deinem "Amazon-Account" (daher: Account-Device ;) ) und andere Dinge gehen halt nur bei dem entsprechenden Echo-Device und damit dann eben beim zugehörigen echten Echo-Gerät...
Gruß, Joachim