Netatmo Modul - 38_netatmo.pm (Support)

Begonnen von Markus M., 17 Mai 2016, 12:37:34

Vorheriges Thema - Nächstes Thema

Floon

Hallo zusammen,

es gibt wohl eine Änderung zum Token. Jedenfalls habe ich auch seit gestern wieder ganz oft die invalid grant Meldung.

Hab das hier gefunden:
https://helpcenter.netatmo.com/hc/de/community/posts/19320250276626


Scheint, als ob im Modul dahingehend was angepasst werden muss?

Gruß Florian

tomcat.x

Laut meines Logs wurde übrigens heute um 8:30 automatisch ein neues Token erzeugt, scheint so alle 2,5 Stunden zu passieren, nach dem Neustart von fhem dann um 9:04 wieder. Zumindest wurde es versucht, da hat es dann nämlich nicht mehr funktioniert.

Nach der manuellen Erzeugung neuer Token auf der netatmo Seite hat es bis jetzt schon wieder 2 Mal funktioniert. Auch verfrüht, eins davon war ein weiterer Neustart. Mal sehen ...
FHEM: 6.3 auf Raspi 3B+, Raspbian (Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.00), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

Hanjo

Zitat von: Floon am 04 Juni 2024, 12:18:15Hallo zusammen,

es gibt wohl eine Änderung zum Token. Jedenfalls habe ich auch seit gestern wieder ganz oft die invalid grant Meldung.

Hab das hier gefunden:
https://helpcenter.netatmo.com/hc/de/community/posts/19320250276626


Scheint, als ob im Modul dahingehend was angepasst werden muss?

Gruß Florian

Das denke ich auch, "Leslie" von Netatmo schreibt dazu ja:

ZitatWe just did a modification on the token retrieval process :

When you refreshed an access_token using the associated endpoint https://api.netatmo.com/oauth2/token, Netatmo servers responded with a couple of tokens : an access_token and a refresh_token. If the previous access_token was still valid, the refresh_token value was never renewed

Starting from yesterday, this behavior changed to be compliant with the recommendations of the RFC of the OAuth2 Authorization Framework (section 10.4) and improving the security of the data of our users

When refreshing tokens, access_token and refresh_token values will be automatically renewed and former tokens invalidated

So, if you do not update and use the new refresh_token value when refreshing your access_token, your users will be disconnected after 3 hours and you will retrieve an "invalid_grant" error

To fix it, you need to update the tokens value as soon as you get the newly generated ones. If the process is correctly followed, you don't need anymore to redo the /authorize process at each tokens change

Der Access Token wird vom Modul jetzt ja schon automatisch aktualisiert, der Refresh Token aber nicht, dieser ist in der Definition fest eingetragen. Das muss also berücksichtigt werden...

tomcat.x

#1458
Das Modul speichert beides und ändert die Definition. Kann man auch an den in den Internals gespeicherten Token sehen.

Sonst dürfte auch die erste Aktualisierung nach 3 Stunden schon nicht mehr funktionieren.

Was bei mir heute morgen schief gegangen ist, kann ich nicht mehr nachvollziehen. Der Neustart hat nur Minuten gedauert und das Refresh-Token hätte da noch länger gültig sein sollen.

Nachtrag:
Das geänderte Refresh-Token aus der Definition landet aber nur durch ein "Save config" in der fhem.cfg. Das dürfte das Problem sein. Dann wäre ein Workaround, vor einem Restart ein "Save config" zu machen.
FHEM: 6.3 auf Raspi 3B+, Raspbian (Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.00), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

m.zielinski

Zitat von: tomcat.x am 04 Juni 2024, 11:36:28Hallo Markus,

hatte das ...

Zitat von: Markus M. am 10 Dezember 2023, 11:33:41Kannst du den Anhang mal bei dir ausprobieren?
Damit sollte bei invalid_grant recht schnell alles länger pausieren

... eigentlich schon den Weg ins Modul gefunden?


Ich bin zwar nicht Markus - aber die aktuelle Modulversion und die aus dem Foreneintrag unterscheiden sich - und gestern erst hat auch bei mir wieder alles verrückt gespielt, so dass die Weboberfläche nur nach nem Neustart kurzzeitig erreichbar war . die angepasste Version sollte also gerne übernommen werden...

aski71

Mir ist soeben auch aufgefallen, dass bei mir nichts mehr funktioniert:
Authentication Failed und: invalid_grant

Ich krieg es auch nicht mehr durch Erstellung eines neuen Tokens und Neueingabe der Credentials in fhem zum Laufen.
Pflegt noch jemand das Modul und guckt sich das an?

Hanjo

Zitat von: tomcat.x am 04 Juni 2024, 15:58:29Das Modul speichert beides und ändert die Definition. Kann man auch an den in den Internals gespeicherten Token sehen.

Sonst dürfte auch die erste Aktualisierung nach 3 Stunden schon nicht mehr funktionieren.

Was bei mir heute morgen schief gegangen ist, kann ich nicht mehr nachvollziehen. Der Neustart hat nur Minuten gedauert und das Refresh-Token hätte da noch länger gültig sein sollen.

Nachtrag:
Das geänderte Refresh-Token aus der Definition landet aber nur durch ein "Save config" in der fhem.cfg. Das dürfte das Problem sein. Dann wäre ein Workaround, vor einem Restart ein "Save config" zu machen.

Oh wow, das ist mir nicht aufgefallen, da das rote Fragezeichen neben "Save Config" nicht auftaucht. Das erklärt die Problematik im Zusammenhang mit einem Restart natürlich...

aski71

Was besonders ärgerlich ist: Seit ich das Authentication Problem habe, scheint mir das netatmo Modul auch immer wieder komplett fhem zu blockieren. :-(

Raimund Scheiber

#1463
Ich hatte das selbe Problem.
Ich hab dann unter https://dev.netatmo.com/ eine neue App angelegt und RefreshToken generiert und in FHEM dann ein neues Modul mit den entsprechenden Credentials angelegt - damit war einmal das Thema mit invalid_grant etc. weg.

Allerdings bekomme ich zwar Batteriestatus etc. von den Sensoren geliefert, aber keine Temperatur und Humidity...

PS das mit dem blockierenem fhem hatte ich auch, aber nachdem ich dann das Modul mit dem fehlerhaften Zugang gelöscht hatte, gings wieder flott..

PS2 nach einem FHEM-Neustart funktioniert jetzt wieder alles.

aski71

Bei mir läuft's jetzt scheinbar auch wieder.
Ich habe wie Du, Raimund, eine neue App angelegt und neue Token generiert.
Dann habe ich die Credentials bei gestopptem fhem in die fhem.cfg einetragen und fhem gestartet. Das ging.
Bis zum nächsten Reboot der Maschine. Dann ging es wieder nicht.

fhem gestoppt. Neues Refreshtoken auf der bestehenden App unter dev.netatmo.com erzeugt.
Manuelle Credentials neu in fhem.cfg geschrieben.
fhem gestartet.
Geht wieder

Hanjo

Bei mir gleiches Problem nach einem Neustart. Ich habe nun zwei Maßnahmen ergriffen, mal sehen, ob es was bringt:

  • Vor shutdown restart wird ein save ausgeführt. Dazu sicherstellen, dass attr global autosave 1 gesetzt ist.

  • Dieses DOIF definiert:
    defmod Netatmo_Disable DOIF ([Netatmo:active] eq "invalid_grant")\
    (attr Netatmo disable 1)\
    (save)
    attr Netatmo_Disable DbLogExclude .*
    attr Netatmo_Disable do always
    attr Netatmo_Disable wait 0,1

1. sollte das Problem hoffentlich beheben und 2. verhindern, dass FHEM nicht mehr reagiert, falls es doch noch zum Fehler kommt...

m.zielinski

Zitat von: Hanjo am 05 Juni 2024, 09:48:45
  • Dieses DOIF definiert:
    defmod Netatmo_Disable DOIF ([Netatmo:active] eq "invalid_grant")\
    (attr Netatmo disable 1)\
    [/list]

    1. sollte das Problem hoffentlich beheben und 2. verhindern, dass FHEM nicht mehr reagiert, falls es doch noch zum Fehler kommt...
    [/quote]

    Kontest du das schon testen?
    Als es bei mir auftrat habe ich erst netatmo disabled - das half nicht.
    Dann sogar das netatmo-device gelöscht (die Sensoren noch gelassen) -> fhem blockierte wieder
    Erst das löschen aller Devices hat fhem wieder nutzbar gemacht.

    zu 1) das ist aber etwas woran du immer denken musst vor dem restart ?




Gisbert

Hallo zusammen,

heute hatte ich die Credentials und den Refresh Token erneuert und kurzfristig lief Netatmo wieder.
Jetzt ist es wieder soweit, dass das Reading active auf invalid_grant steht.

Gibt es noch eine Hoffnung außer die Credentials und Refresh Token immer wieder zu erneuern, um Netatmo am Leben zu halten?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

tomcat.x

@ Gisbert: Hast Du das mit dem "save" vor einem Neustart berücksichtigt? Solange ich das mache, habe ich keine Probleme. Es lässt sich auch eindeutig erklären, warum das sonst nicht funktioniert.

@ all (einschließlich mich): Das "save" auch bei einem mehrmaligen Neustart kurz hintereinander nicht vergessen. Selbst wenn das Token noch ganz frisch ist, versucht das Modul nach einen Neustart ein neues zu generieren, das es das Alter nicht kennt. Ohne das save vorher geht das schief. Hatte ich gestern 2 Mal ...
FHEM: 6.3 auf Raspi 3B+, Raspbian (Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.00), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

Hanjo

Zitat von: m.zielinski am 05 Juni 2024, 11:51:28Kontest du das schon testen?
Als es bei mir auftrat habe ich erst netatmo disabled - das half nicht.
Dann sogar das netatmo-device gelöscht (die Sensoren noch gelassen) -> fhem blockierte wieder
Erst das löschen aller Devices hat fhem wieder nutzbar gemacht.
Ja, hatte das Problem gerade im laufenden Betrieb wieder (also ohne Neustart) und das DOIF hat Netatmo zuverlässig deaktiviert. Bedeutet jetzt natürlich trotzdem, dass ich händisch einen neuen Token genieren muss, um das Modul wieder in Betrieb zu nehmen...