Netatmo in FHEM integrieren

Begonnen von FotoFieber, 26 August 2013, 09:15:06

Vorheriges Thema - Nächstes Thema

justme1968

ich weiß das es noch ein problem mit dem json parsen gibt. das sich aber nicht reproduzieren lässt sondern ab und zu auftritt. ich wollte eigentlich den fehler richtig anfangen ich baue aber jetzt erst mal ein das er in einem eval schaut ob das parsen geht oder nicht. dann gibt es keinen absturz mehr falls es schief geht.

versuch mal ob es mit dem zweiten account stabiler geht. ich hatte schon einen angelegt. ich kann auch auf den zweite account wechseln.

du soltest nur vermeiden die devices neu anzulegen. dann werden wieder die altdaten geholt. es sollte reichen nur die zugangsdaten zu ändern.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

domschl

#61
Ich habe hier leider den selben Effekt:

FHEM stürzt ab (alle 0.5 bis 2 Tage), wenn Netatmo aktiv ist. Außer der Log-meldung auf der Konsole (Timeout, s.o.) habe ich nichts außergewöhnliches finden können.

Ich mußte gestern auch Netatmo aus der Konfiguration entfernen, da FHEM einfach nicht mehr startete sobald das Modul noch im FHEM.cfg ist.
(Keine Neu-konfiguration von Modulen oder sonstige Änderungen waren erfolgt. Bisher konnte ich FHEM problemlos starten)

Ich weiß nicht, ob die FHEM-Architektur das zulassen würde: Wäre es möglich, sämtliche HTTP-requests asynchron ausführen zu lassen? Damit wäre dann nicht mehr das ganze FHEM-System den Antwort-Zeiten des Netatmo Servers "ausgeliefert", oder?

D.

justme1968

wenn es bei euch beiden nicht mehr gestartet ist würde ich eher auf ein problem auf server seite tippen als auf das mehrfachverwenden des zugangs. der ist ja sogar dafür gemacht.

der fehler den ich meine sieht man nur auf stdout. das wird normalerweise nichtmit geloggt.

das asynchron machen steht auch noch auf meiner liste. rudi hat das http modul so umgebaut das das inzwischen einfach möglich ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

domschl

Ja, der Netatmo-server war wohl etwas kaputt: hab das modul wieder aufgenommen, und FHEM startet normal.

Der Server von Netatmo scheint ein bisschen wackelig zu sein ;-)

D.

domschl

#64
Der restart hat allerdings jetzt einen anderen Bug manifestiert:

Es scheint ein Problem mit der .lastupdate Logik zu geben: Mein FHEM hat wieder angefangen Daten vom letzten Jahr zu laden... bis er wieder ins "Application usage reached"-quota von Netatmo gelaufen ist. Nach einiger Zeit wechselt "status" auf "Filter does not exists".

Damit hängen wohl auch die Berichte zusammen, daß bei manchen Leuten der FHEM zunächst nicht funktioniert hat.

Update: nach dem Neustart waren wohl einige Datenstrukturen korrupt: die "Filter does not extists" Meldung war dadurch verursacht, daß $module beim Aufruf von $agent->post undefiniert war...
Modul-Neustarts über reload hatten nichts geändert, aber nach einem komplett-Neustart des FHEM waren die Daten wieder korrekt.

Dom.

justme1968

wenn es ein fhem absturz ist dann wird das .lastupdate nicht gesichert und ist nach einem neustart nicht aktuell. wenn fhem ganz normal gestoppt und gestartet wird wird .lastupdate gesichert und ist nach dem neustart noch vorhanden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Bonzon

Ich hatte heute Nacht  (gegen 6 Uhr) ebenfalls den Vorfall, dass FHEM sich abgeschossen hat und heute morgen nicht mehr lief. Nachdem ich ihn wieder gestartet hatte, läuft jetzt alles und ich erhalte auch wieder werte von Netatmo.

Es gibt zu dem Vorfall auch keinen Logeintrag. Also nix ungewöhnliches.
Raspberry Pi Typ B, 512 MB mit CUL V3.4 (Firmware 1.57 CUL868) für Homatic und CUL V3.4 (Firmware 1.57 CUL868) für MAX!
MAX!: Heizkörperthermostate, Wandthermostat WT+
Homatic: HM-LC-SW1-FM
Netatmo Wetterstation: Indoor-Modul, Outdoor-Modul

justme1968

ich habe vorhin das modul fast komplett auf noblocking umgestellt. für das sessionticket muss ich mir noch was überlegen und es gibt noch eine offene frage ob die nonblocking Implementierung in fhem korrekt ist. sobald beides geklärt ist gibt es eine neue version.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

#68
anbei eine version die komplett von lwp auf die fhem routinen HttpUtils_BlockingGet und HttpUtils_NonblockingGet umgestellt ist.

das initiale holen des ticket und der ticket refresh der zur zeit alle drei stunden nötig ist sind noch blockierend, das holen der readings ist nicht mehr blockierend.

ich habe auch versucht den sporadischen absturz abzufangen. der hatte damit zu tun das ab und zu kein gültiges json vom server zurück kommt.

wie oben schon kurz erwähnt kann es sein das es mit dem nonblocking get noch probleme gibt. wenn es noch ein paar tester gibt würde das sicher nicht schaden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

domschl

#69
Hi Andre,

super das Du an einer so gründlichen Lösung arbeitest.

Leider klappt es bei mir noch nicht. FHEM geht nach dem start auf meinem RASPI in hohe CPU last und hängt dann, und die letzte Log message ist:

2014.02.11 22:25:02 2: Netatmos: http request failed: https://api.netatmo.net/oauth2/token: Select timeout/error:
2014.02.11 22:25:05 3: netatmo_D70:ee:55:11:66:7e: I/O device is Netatmos

Dom.

justme1968

die cpu last kann ich bei mir nicht reproduzieren wenn ich kein token bekomme.

bitte setz mal global verbose auf 5 und schaue ob du mehr siehst.

vielleicht kannst du auch mal ein strace an den fhem prozess hängen und schauen was genau passiert.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Borkk

#71
Hi Andre,

hab dein neues Modul eben eingesetzt, die CPU last geht auch bei mir hoch.
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)

justme1968

bitte mal ein strace an den fhem prozess hängen und schauen was genau passiert.

danke
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

domschl

#73
Hi,

das sollte vielleicht helfen:

...
Use of uninitialized value in addition (+) at ./FHEM/38_netatmo.pm line 433.    (ist:  $hash->{expires_at} += $json->{expires_in};)
Use of uninitialized value in addition (+) at ./FHEM/38_netatmo.pm line 433.
Use of uninitialized value in addition (+) at ./FHEM/38_netatmo.pm line 433.
Use of uninitialized value in addition (+) at ./FHEM/38_netatmo.pm line 433.
Use of uninitialized value in addition (+) at ./FHEM/38_netatmo.pm line 433.
Deep recursion on subroutine "main::netatmo_getDevices" at ./FHEM/38_netatmo.pm line 438.
Deep recursion on subroutine "main::netatmo_refreshToken" at ./FHEM/38_netatmo.pm line 251.
Deep recursion on subroutine "main::netatmo_getToken" at ./FHEM/38_netatmo.pm line 164.
Deep recursion on subroutine "main::netatmo_dispatch" at ./FHEM/38_netatmo.pm line 155.
Deep recursion on subroutine "main::netatmo_parseToken" at ./FHEM/38_netatmo.pm line 360.

strace per pm gesendet.

hier noch der log level 5:
2014.02.11 23:30:23 4: HttpUtils url=https://api.netatmo.net/oauth2/token
2014.02.11 23:30:23 4: https://api.netatmo.net/oauth2/token: HTTP response code 400
2014.02.11 23:30:23 4: HttpUtils https://api.netatmo.net/oauth2/token: Got data, length: 27
2014.02.11 23:30:23 4: Netatmos: {"error":"invalid_request"}
2014.02.11 23:30:23 4: HttpUtils url=https://api.netatmo.net/oauth2/token
2014.02.11 23:30:23 4: https://api.netatmo.net/oauth2/token: HTTP response code 400
2014.02.11 23:30:23 4: HttpUtils https://api.netatmo.net/oauth2/token: Got data, length: 27
2014.02.11 23:30:23 4: Netatmos: {"error":"invalid_request"}
2014.02.11 23:30:23 4: HttpUtils url=https://api.netatmo.net/oauth2/token
2014.02.11 23:30:24 4: https://api.netatmo.net/oauth2/token: HTTP response code 400

dom.

justme1968

#74
danke.

ich habe das symptom behoben und die version oben ausgetauscht. bitte setze mal entweder global verbose auf 4 oder verbose für das ACCOUNT device.

gruss
  andre

edit: arggg... ich habe natürlich das wichtigste vergessen ... damit das ganze geht muss man noch den patch aus diesem thread verwenden: http://forum.fhem.de/index.php/topic,20068.0.html
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968