Netatmo Modul - 38_netatmo.pm (Support)

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

Vorheriges Thema - Nächstes Thema

Markus M.

Was tut es denn mit
event-on-change-reading .*
?
Aktuell weder Smarthome noch FHEM vorhanden

wolfgang

#1081
Danke Markus, das löst mein Problem, mit event-on-change-reading .* werden Events gesendet und Logeinträge geschrieben!

Nur zu meinem Verständnis:
Aber wenn ich dieses Attribut gänzlich lösche, hätte ich auch Events erwartet, aber werden diese offenbar nicht erzeugt.
Verstehe ich das falsch?


Edit: Nun werden auch ganz ohne event-on-change-reading Attribut Events erzeugt.

Eigenartige Beobachtungen:

Auszug aus dem Eventmonitor zeigt zur selben Uhrzeit unterschiedliche Werte zB für temperature
2020-04-28 15:33:10 netatmo Wetter active: ok
2020-04-28 15:33:10 netatmo Wetter active: ok
2020-04-28 15:33:10 netatmo Wetter temperature: 24.0
2020-04-28 15:33:10 netatmo Wetter humidity: 41
2020-04-28 15:33:10 netatmo Wetter windstrength: 2
2020-04-28 15:33:10 netatmo Wetter windangle: 7
2020-04-28 15:33:10 netatmo Wetter guststrength: 5
2020-04-28 15:33:10 netatmo Wetter gustangle: 142
2020-04-28 15:33:10 netatmo Wetter pressure: 1004
2020-04-28 15:33:10 netatmo Wetter temperature: 24.2
2020-04-28 15:33:10 netatmo Wetter humidity: 40
2020-04-28 15:33:10 netatmo Wetter windstrength: 2
2020-04-28 15:33:10 netatmo Wetter windangle: 337
2020-04-28 15:33:10 netatmo Wetter guststrength: 9
2020-04-28 15:33:10 netatmo Wetter gustangle: 181
2020-04-28 15:33:10 netatmo Wetter pressure: 1004
2020-04-28 15:33:10 netatmo Wetter active: ok
2020-04-28 15:33:10 netatmo Wetter rain: 0
2020-04-28 15:33:10 netatmo Wetter rain: 0
2020-04-28 15:33:10 netatmo Wetter active: ok


Und im File-Log finden sich die Einträge UNSORTIERT (meist rain), da bin ich nicht sicher, ob es am Filelog Modul liegt:
2020-04-28_15:10:39 Wetter active: ok
2020-04-28_15:10:39 Wetter active: ok
2020-04-28_14:52:41 Wetter temperature: 23.4
2020-04-28_14:52:41 Wetter humidity: 42
2020-04-28_14:53:26 Wetter windstrength: 2
2020-04-28_14:53:26 Wetter windangle: 0
2020-04-28_14:53:26 Wetter guststrength: 6
2020-04-28_14:53:26 Wetter gustangle: 326
2020-04-28_14:53:26 Wetter pressure: 1004.4
2020-04-28_14:57:49 Wetter temperature: 23.5
2020-04-28_14:57:49 Wetter humidity: 42
2020-04-28_14:58:28 Wetter windstrength: 3
2020-04-28_14:58:28 Wetter windangle: 11
2020-04-28_14:58:28 Wetter guststrength: 8
2020-04-28_14:58:28 Wetter gustangle: 109
2020-04-28_14:58:28 Wetter pressure: 1004.4
2020-04-28_15:02:56 Wetter temperature: 23.6
2020-04-28_15:02:56 Wetter humidity: 42
2020-04-28_15:03:28 Wetter windstrength: 3
2020-04-28_15:03:28 Wetter windangle: 342
2020-04-28_15:03:28 Wetter guststrength: 8
2020-04-28_15:03:28 Wetter gustangle: 304
2020-04-28_15:03:28 Wetter pressure: 1004.3
2020-04-28_15:08:03 Wetter temperature: 23.7
2020-04-28_15:08:03 Wetter humidity: 41
2020-04-28_15:08:29 Wetter windstrength: 3
2020-04-28_15:08:29 Wetter windangle: 354
2020-04-28_15:08:29 Wetter guststrength: 7
2020-04-28_15:08:29 Wetter gustangle: 324
2020-04-28_15:08:31 Wetter pressure: 1004.2
2020-04-28_15:10:39 Wetter active: ok
2020-04-28_14:53:20 Wetter rain: 0
2020-04-28_14:58:28 Wetter rain: 0
2020-04-28_15:03:21 Wetter rain: 0
2020-04-28_15:08:29 Wetter rain: 0


Kann es sein, dass das Netatmo Modul Werte intern speichert und erst später als Event sendet?


LG Wolfgang
Fhem auf RaspberryPI und Windows
CULv3; HM; IT; Shelly; PRESENCE; Sonos; IPCAM; Calender; Mail ;Netatmo;

mimue

#1082
Hallo Markus M.

ich versuche einen Webhook einzurichten. Allerdings bekomme ich auf die Eingabe

define NAcallback netatmo WEBHOOK

zurück

Netatmo webkook already defined as myHome

Der Typo "webkook" ist im Quellcode enthalten.

Ansonsten passiert nichts.

$Id: 38_netatmo.pm 20799 2019-12-22 09:05:53Z moises $

Eingerichtet habe ich 38_netatmo.pm mit

define Surveillance netatmo ACCOUNT <username> <password> <client_id> <client_secret>

Nach set Surveillance autocreate_homes werden meine 4 Presence Kameras eingerichtet, wie erwartet.

Was ist zu tun ?

update:

Wenn ich define blabla netatmo webhook verwende (keyword _klein_) scheint es zu funktionieren. In der commandref steht allerdings ausdrücklich define <name> netatmo WEBHOOK

update 2:

Nachdem ich 38_netatmo.pm komplett entfernt und neu installiert habe, kann ich auch WEBHOOK großgeschrieben verwenden. Was bleibt ?

Ein Typo (webkook) und die unterschiedliche Behandlung von webhook vs WEBHOOK beim define.

Ansonsten (derzeit) alles im grünen Bereich, Danke für das Modul.

update 3:

Nach frischer installation fällt auf, daß bei dem angelegten "home" das Attribut stateFormat auf "status" gesetzt ist. "status" ist aber kein "reading" sondern ein "internal". Soll der Wert übernommen werden muß das Attribut auf {InternalVal("$name","status","")} gesetzt werden, sonst steht in der Kopfzeile ewig nur der Text "status"

Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

mimue

#1083
Nochmals Danke für das Modul.

Ich habe inzwischen den Webhook aktiviert. Da Netatmo nur sichere Verbindungen über Port 443 und 80 unterstützt, habe ich der Einfachheit halber auf dem Gerät das FHEM bereitstellt im Apache Webserver ein PHP-Skript vorgeschaltet, das die empfangenen Push-Nachrichten mit CURL an FHEM weiterleitet.

Mir fiel auf, daß FHEM bei Erhalt einer Nachricht {"status":"ok"} zurückgibt, wenn es was nicht versteht einfach NO, beides ist weder nötig noch an irgendeinem Standard orientiert. Netatmo erwartet lediglich das normale HTTP/1.1 200 OK

Es gibt ein PHP-API von Netatmo, das zwar nicht ganz aktuell ist, aber man sieht ganz gut was sie sich gedacht haben.https://github.com/Netatmo/Netatmo-API-PHP

Für die Darstellung der Kameras in der Übersicht habe ich das stateFormat angepasst. {fhem "attr $name webCmd light_mode:auto,on,off"; my $a=fhem"get $name snapshot"; my $b="<a href=$a>Live Bild</a>"; my $x=fhem"get $name timelapse"; my $y="<a href=$x>Zeitraffer</a>"; "Status: " . ReadingsVal("$name","status","") . "; " .$y . "; " . $b . "; <a href=" . ReadingsVal("$name","last_snapshot","") . ">Letztes Bild</a>:  " . ReadingsVal("$name","event","") . " -  " . ReadingsVal("$name","event_time","") . ";  Flutlicht: "}

Es macht die Darstellung etwas übersichtlicher, vielleicht kann's jemand gebrauchen.

Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

mimue

Zitat von: mimue am 29 April 2020, 11:04:52
Netatmo webkook already defined as myHome

Der Typo "webkook" ist im Quellcode enthalten.

Ansonsten passiert nichts.

$Id: 38_netatmo.pm 20799 2019-12-22 09:05:53Z moises $

Eingerichtet habe ich 38_netatmo.pm mit

define Surveillance netatmo ACCOUNT <username> <password> <client_id> <client_secret>

Nach set Surveillance autocreate_homes werden meine 4 Presence Kameras eingerichtet, wie erwartet.

Was ist zu tun ?

update:

Wenn ich define blabla netatmo webhook verwende (keyword _klein_) scheint es zu funktionieren. In der commandref steht allerdings ausdrücklich define <name> netatmo WEBHOOK

update 2:

Nachdem ich 38_netatmo.pm komplett entfernt und neu installiert habe, kann ich auch WEBHOOK großgeschrieben verwenden. Was bleibt ?

Ein Typo (webkook) und die unterschiedliche Behandlung von webhook vs WEBHOOK beim define.

Nachdem sich hier nichts tut, habe ich das Modul in Zeile 98 eigenständig wie folgt geändert: if(uc $a[2] eq "WEBHOOK") {
, der Typo ist 4 Zeilen darauf.

Die Funktion uc dürfte vermutlich noch an weiteren Stellen hilfreich sein...


Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

Markus M.

Hier tut sich nur deshalb nichts, weil es nicht unbedingt was zu tun gibt ;)

Zitat von: mimue am 10 Mai 2020, 18:02:20Nachdem ich 38_netatmo.pm komplett entfernt und neu installiert habe, kann ich auch WEBHOOK großgeschrieben verwenden. Was bleibt ?
Ein Typo (webkook) und die unterschiedliche Behandlung von webhook vs WEBHOOK beim define.

An der Stelle an der du warst hattest du bereits einen Webhook, oder aus irgendwelchen Gründen zumindest noch einen Pointer darauf.
Da hat nur noch ein Neustart geholfen.
Ansonsten sollte ein "webhook" keinen Webhook definieren und sobald man es groß schreibt, funktioniert auch alles.
Die Änderungen kommen irgendwann mit dem nächsten Update.
Aktuell weder Smarthome noch FHEM vorhanden

ulobo60

Habe auf der netatmo-Seite dev.netatmo.com/apps/ das Passwort für meinen Zugang geändert.
Nun kann sich mein FHEM (natürlich) nicht mit der netatmo-Entwickler-App verbinden.
Kann ich im FHEM einfach den Befehl:

define <name> netatmo [ACCOUNT] <username> <password> <client_id> <client_secret>

mit den aktuellen Einträgen und dem neuen Passwort im FHEM abschicken?
Werden die netatmo-Daten in der DEF dadurch überschrieben oder vermurkse ich mir damit alles?
Falls "vermurksen": was ist das richtige Vorgehen?
thx im Voraus!
3x raspi + cam-Modul mit mmal-motion - 2x raspi mit KODI - 1x raspi mit FHEM + FTUI

Markus M.

Zitat von: ulobo60 am 13 Mai 2020, 16:55:18was ist das richtige Vorgehen?
In FHEMWEB den DEF Eintrag bequem im UI ändern oder defmod verwenden.
Aktuell weder Smarthome noch FHEM vorhanden

ulobo60

@ Markus.M:
Danke für Deine superschnelle Antwort!
a) mit defmod komme ich nicht klar - ich verstehe es nicht.
b) den DEF-Eintrag im FHEMWEB ändern fällt mir auch schwer. Dort steht ja der Zugang vercryptet:

ACCOUNT crypt:415f0e04030123575b555c5... crypt:464604505e7f0... 59ea31850d0e23f402... 4WRps48CIpCwKMesK5e1Bo...

Hast Du noch einen Tipp für mich?
3x raspi + cam-Modul mit mmal-motion - 2x raspi mit KODI - 1x raspi mit FHEM + FTUI

Markus M.

Zitat von: ulobo60 am 13 Mai 2020, 18:19:26
@ Markus.M:
Danke für Deine superschnelle Antwort!
a) mit defmod komme ich nicht klar - ich verstehe es nicht.
b) den DEF-Eintrag im FHEMWEB ändern fällt mir auch schwer. Dort steht ja der Zugang vercryptet:

ACCOUNT crypt:415f0e04030123575b555c5... crypt:464604505e7f0... 59ea31850d0e23f402... 4WRps48CIpCwKMesK5e1Bo...

Hast Du noch einen Tipp für mich?
defmod nimmst du statt define
crypt einfach ignorieren, du kannst auch teilweise Klartext drüberschreiben
Aktuell weder Smarthome noch FHEM vorhanden

ulobo60

@ Markus.M:
defmod hat funktioniert.
Nach 'shutdown restart' war netatmo wieder connected.
ABER:
Alle 4 netatmo-Devices werden nicht verbunden.
Sie zeigen im status: "delayed update".

Logfile (Beispiel für 1 Device):
2020.05.13 19:02:47 1: netatmo: No access token was found! (getDevices)
2020.05.13 19:02:52 1: netatmo: No access token was found! (getHomecoachs)


Habe mal hier im Thread weiter oben gelesen, dass das mit der 'api.netatmo.com' zusammenhängen könnte.
Hast Du noch nen Ansatz zur Lösung?
3x raspi + cam-Modul mit mmal-motion - 2x raspi mit KODI - 1x raspi mit FHEM + FTUI

Markus M.

Warten?
API Server sollte nicht eingetragen werden.
Aktuell weder Smarthome noch FHEM vorhanden

ulobo60

... sorry Martin, "API Server sollte nicht eingetragen werden." verstehe ich nicht.

Kannst Du mir vielleicht anhand meiner Listings erklären, was da falsch ist?

Device: netatmo

Internals:
   Clients    :netatmo:
   DEF        ACCOUNT crypt:415f0e5... crypt:415f07514... 59ea31850d... 4WRps48CIp...
   FUUID      5c46c6c5-f33...
   NAME       netatmo
   NOTIFYDEV  global
   NR         19
   NTFY_ORDER 50-netatmo
   STATE      LOGIN FAILED
   SUBTYPE    ACCOUNT
   TYPE       netatmo
   model      ACCOUNT
   network    ok
   status     invalid_grant
   READINGS:
     2020-05-13 20:21:43   active          invalid_grant
   helper:
     INTERVAL   3600
     NEXT_POLL  1589397332
     apiserver  api.netatmo.com
     client_id  59ea31850d0e...
     client_secret 4WRps48...
     last_status_store 0
     password   crypt:415f07514...
     username   crypt:415f0...
     devices:
     homecoachs:
Attributes:
   event-on-update-reading .*
   room       netatmo
   

Device: netatmo_outdoor60
   
Internals:
   DEF        MODULE 70:ee:50:29:1a:b4 02:00:00:28:d8:dc
   Device     70:ee:50:29:1a:b4
   FUUID      5c46c6c5-f33...
   IODev      netatmo
   Module     02:00:00:28:d8:dc
   NAME       netatmo_outdoor60
   NOTIFYDEV  global
   NR         23
   NTFY_ORDER 50-netatmo_outdoor60
   STATE      T: 21.3 H: 40
   SUBTYPE    MODULE
   TYPE       netatmo
   openRequests 10
   status     ok
   READINGS:
     2017-11-04 20:50:18   Dauer           0
     2020-05-13 19:44:42   active          delayed update
     2018-06-02 11:23:20   battery         ok
     2020-05-07 11:36:41   batteryPercent  86
     2020-05-07 11:36:41   batteryState    ok
     2020-05-07 11:36:41   batteryVoltage  5.674
     2018-06-02 11:23:20   battery_percent 72
     2020-05-07 11:44:58   dew             7.16
     2020-05-07 11:44:58   humidity        40
     2020-05-07 11:34:43   temp_max        21
     2020-05-07 06:27:06   temp_min        8.1
     2020-05-07 11:34:43   temp_trend      up
     2020-05-07 11:44:58   temperature     21.3
   helper:
     INTERVAL   900
     NEXT_POLL  1589395455
     last_status_store 0
Attributes:
   DbLogInclude .*
   IODev      netatmo
   alias      outdoor60
   devStateIcon .*:no-icon
   event-on-change-reading .*
   room       netatmo
   stateFormat T: temperature H: humidity
   userReadings dew:temperature.* {urDewpoint($name)}

Muss ich in der '38_netatmo.pm' Hand anlegen, um den API-Server zu entfernen?
3x raspi + cam-Modul mit mmal-motion - 2x raspi mit KODI - 1x raspi mit FHEM + FTUI

ulobo60

... Nachschlag:
Es lief alles sauber über ca. 2 Jahre bis zum 07.05.2020 ...
3x raspi + cam-Modul mit mmal-motion - 2x raspi mit KODI - 1x raspi mit FHEM + FTUI

ulobo60

... und nun läuft alles wieder sauber seit dem 14.05.2020 14:30 Uhr !!!

Nachdem ich mir heute den Wolf zu diesem Thema in den Foren gelesen habe und als für mich neue Erkenntnis nur gewonnen habe: "... es liegt manchmal auch an der (Un)Zuverlässigkeit der netatmo-Developer-DB..." habe ich ein erneutes 'shutdown restart' durchgeführt. Und siehe da: die netatmo-devices sind alle connected und die Readings laufen rein.
Schätze mal, mein neues Passwort wurde erst wirklich heute Mittag weiter gereicht.
Vielen Dank, Martin  :D
3x raspi + cam-Modul mit mmal-motion - 2x raspi mit KODI - 1x raspi mit FHEM + FTUI