[alexa-fhem / alexa] Alexa-Routinen funktionieren nicht mehr

Begonnen von MarcoEig, 15 März 2022, 16:54:17

Vorheriges Thema - Nächstes Thema

MarcoEig

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!

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MarcoEig

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

MadMax-FHEM

#3
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)