netatmo Windmesser

Begonnen von docfred, 03 Februar 2016, 14:51:44

Vorheriges Thema - Nächstes Thema

docfred

Habe ein netatmo Wetterstation mit Außensensor und Regenmesser. Habe jetzt noch den Windmesser erworben und dieses Modul an der netatmo-Station angelert. In der App bekomme ich Winddaten und auch als ich am netatmo-device in fhem  "set autocreate" durchgeführt habe, hat er eine neue device gefunden:

Internals:
   CFGFN
   DEF        MODULE 70:ee:50:17:6a:68 06:00:00:00:54:12
   Device     70:ee:50:17:6a:68
   INTERVAL   300
   IODev      Wetter
   Module     06:00:00:00:54:12
   NAME       netatmo_M06_00_00_00_54_12
   NOTIFYDEV  global
   NR         529
   NTFY_ORDER 50-netatmo_M06_00_00_00_54_12
   STATE      Initialized
   SUBTYPE    MODULE
   TYPE       netatmo
   dataTypes  Wind
   firmware   14
   model      NAModule2
   openRequests 0
   status     Filter wind does not exists
   Readings:
   Helper:
     readingNames:
       wind

Attributes:
   IODev      Wetter
   alias      HLW Wind
   room       netatmo


Im Eventmonitor bekomme ich jedoch keine Winddaten. Alles andere kommt:

2016-02-03 14:15:20 netatmo netatmo_M05_00_00_02_2e_d8 rain: 0
2016-02-03 14:15:20 netatmo netatmo_M05_00_00_02_2e_d8 rain: 0.101
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 temperature: 18.9
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 co2: 781
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 humidity: 52
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 noise: 38
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 pressure: 1016.9
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 temperature: 18.8
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 co2: 754
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 humidity: 52
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 noise: 37
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 pressure: 1016.9
2016-02-03 14:15:20 netatmo netatmo_D70_ee_50_17_6a_68 dewpoint: 8.7
2016-02-03 14:15:20 netatmo netatmo_M02_00_00_17_f1_52 temperature: 6.8
2016-02-03 14:15:20 netatmo netatmo_M02_00_00_17_f1_52 humidity: 74
2016-02-03 14:15:20 netatmo netatmo_M02_00_00_17_f1_52 temperature: 6.7
2016-02-03 14:15:20 netatmo netatmo_M02_00_00_17_f1_52 humidity: 75
2016-02-03 14:15:20 netatmo netatmo_M02_00_00_17_f1_52 dewpoint: 2.6
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 temperature: 18.7
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 co2: 766
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 humidity: 52
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 noise: 36
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 pressure: 1016.8
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 temperature: 18.7
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 co2: 770
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 humidity: 52
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 noise: 37
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 pressure: 1016.8
2016-02-03 14:25:20 netatmo netatmo_D70_ee_50_17_6a_68 dewpoint: 8.7
2016-02-03 14:25:20 netatmo netatmo_M02_00_00_17_f1_52 temperature: 6.6
2016-02-03 14:25:20 netatmo netatmo_M02_00_00_17_f1_52 humidity: 76
2016-02-03 14:25:20 netatmo netatmo_M02_00_00_17_f1_52 temperature: 6.6
2016-02-03 14:25:20 netatmo netatmo_M02_00_00_17_f1_52 humidity: 76
2016-02-03 14:25:20 netatmo netatmo_M02_00_00_17_f1_52 dewpoint: 2.7
2016-02-03 14:25:20 netatmo netatmo_M05_00_00_02_2e_d8 rain: 0
2016-02-03 14:25:20 netatmo netatmo_M05_00_00_02_2e_d8 rain: 0


Was heisst
status     Filter wind does not exists
Hat jemand eine Idee?

docfred

Habe mir gerade das Perl-Skript asngesehen. Liege ich richtig, dass der Windsensor momentan nicht geparst wird?
Gibt es die Möglichkeit mir die von der website geholten Daten anzusehen?

docfred

Ich hab jetzt mal versucht das netatmo modul 38_netatmo.pm zu verstehen. Zunächst bin ich ein Perl-Neuling und die Freizügigkeit, wie Perl mit Skalar-, String- und Hash-Variablen (Entschuldigung für die nicht ganz korrekte Bezeichnung) umgeht und die vielen Spezialvariablen (wie z.B. @_, $$ etc)  sind zunächst ganz schön verwirrend.
Ich hab jetzt viel im WIKI bei Development gelesen. Trotzdem ist mir nicht ganz klar, wie der Hash $defs und der Hash $hash im Modul aufgebaut sind.
Es geht ja um den Windmesser, der im Modul nicht implementiert ist. Ich sehe jetzt, dass die Wind-Daten in den Daten vom http-Aufruf "api.netatmo.net/api/getmeasure" enthalten sind.

2016.02.14 13:45:12 4: Wetter:
{"body":
{"modules":[
{"_id":"02:00:00:17:f1:52","date_setup":
{"sec":1452798896,"usec":598000},
"main_device":"70:ee:50:17:6a:68",
"module_name":"HLW-Drau\u00dfen",
"type":"NAModule1",
"firmware":43,
"last_message":1455453680,
"last_seen":1455453641,
"rf_status":80,
"battery_vp":6140,
"dashboard_data":
{"time_utc":1455453641,
"Temperature":7.1,
"Humidity":83,
"date_max_temp":1455440619,
"date_min_temp":1455432467,
"min_temp":5.3,
"max_temp":8.2},
"data_type":["Temperature","Humidity"]},
{"_id":"05:00:00:02:2e:d8","date_setup":
{"sec":1454354076,"usec":538000},
"main_device":"70:ee:50:17:6a:68",
"module_name":"Niederschlag drau\u00dfen",
"type":"NAModule3",
"firmware":8,
"last_message":1455453680,
"last_seen":1455453673,
"rf_status":79,
"battery_vp":6250,
"dashboard_data":
{"time_utc":1455453660,
"Rain":0,
"sum_rain_24":2.525,
"sum_rain_1":1.111},
"data_type":["Rain"]},
{"_id":"06:00:00:00:54:12","date_setup":
{"sec":1454433622,"usec":690000},
"main_device":"70:ee:50:17:6a:68",
"module_name":"HLW Wind",
"type":"NAModule2",
"firmware":14,
"last_message":1455453680,
"last_seen":1455453680,
"rf_status":69,
"battery_vp":6232,
"dashboard_data":
{"WindAngle":254,
"WindStrength":3,
"GustAngle":264,
"GustStrength":5,
"time_utc":1455453661,
"WindHistoric":[
{"WindStrength":3,"WindAngle":256,"time_utc":1455450366},
{"WindStrength":4,"WindAngle":259,"time_utc":1455450655},
{"WindStrength":4,"WindAngle":253,"time_utc":1455450956},
{"WindStrength":3,"WindAngle":256,"time_utc":1455451257},
{"WindStrength":3,"WindAngle":252,"time_utc":1455451558},
{"WindStrength":3,"WindAngle":255,"time_utc":1455451860},
{"WindStrength":3,"WindAngle":249,"time_utc":1455452161},
{"WindStrength":4,"WindAngle":270,"time_utc":1455452462},
{"WindStrength":3,"WindAngle":257,"time_utc":1455452763},
{"WindStrength":3,"WindAngle":246,"time_utc":1455453065},
{"WindStrength":3,"WindAngle":254,"time_utc":1455453366},
{"WindStrength":3,"WindAngle":254,"time_utc":1455453661}],
"date_max_wind_str":1455418952,
"date_max_temp":1455404507,
"date_min_temp":1455404507,
"min_temp":0,
"max_temp":0,
"max_wind_angle":112,
"max_wind_str":17},
"data_type":["Wind"]}],

"devices":[
{"_id":"70:ee:50:17:6a:68",
"access_code":"bAvgvsStFNL",
"alarm_config":{"default_alarm":[
{"db_alarm_number":0},
{"db_alarm_number":1},
{"db_alarm_number":2},
{"db_alarm_number":6},
{"db_alarm_number":4},
{"db_alarm_number":5},
{"db_alarm_number":7},
{"db_alarm_number":22},
{"db_alarm_number":23},
{"db_alarm_number":24},
{"db_alarm_number":25}],
"personnalized":[]},
"cipher_id":"enc:16:LFeSKHkrOWEqHqP6PCaVwFM5XHoSDFDzTxGDYrhsf4MKpPweqyUqrV1NE4acSy+D",
"co2_calibrating":false,
"date_setup":
{"sec":1452798916,"usec":892000},
"firmware":119,
"last_status_store":1455453680,
"last_upgrade":1440426149,
"meteo_alarms":[
{"_id":{"$id":"56bdfd3149c75f1b0a8b4569"},
"area":"Baden-W\u00fcrttemberg",
"begin":1455289200,
"end":1455350400,
"title":"__MA_ALARM_WIND_TITLE",
"type":"ALARM_WIND",
"text_field":"__MA_ALARM_WIND_LEVEL_2",
"level":2,"url":"http:\/\/www.meteoalarm.eu\/handheld.php?level=2&area=DE002&day=0",
"descr":"%lng=\"de_GE\" Es treten oberhalb 1000 m Sturmb\u00f6en mit Geschwindigkeiten zwischen 65 km\/h (18m\/s, 35kn, Bft 8) und 85 km\/h (24m\/s, 47kn, Bft 9) anfangs aus s\u00fcd\u00f6stlicher, sp\u00e4ter aus s\u00fcdwestlicher Richtung auf.",
"status":"new",
"alarm_id":247489,
"time_generated":1455291697,
"origin":"meteoalarm"}],
"module_name":"Innenraum",
"modules":["02:00:00:17:f1:52",
"05:00:00:02:2e:d8","06:00:00:00:54:12"],
"place":
{"altitude":284,
"city":"Fellbach",
"country":"DE",
"improveLocProposed":true,
"location":[9.2784804,48.8187655],
"timezone":"Europe\/Berlin"},
"station_name":"HLW-Wetter",
"type":"NAMain",
"wifi_status":51,
"dashboard_data":{
"AbsolutePressure":955.3,
"time_utc":1455453666,
"Noise":41,
"Temperature":19.2,
"Humidity":54,
"Pressure":988.1,
"CO2":847,
"date_max_temp":1455450958,
"date_min_temp":1455424675,
"min_temp":17.5,
"max_temp":19.9},
"data_type":["Temperature","CO2","Humidity","Noise","Pressure"]}]},
"status":"ok",
"time_exec":0.018999099731445,
"time_server":1455453912}


Das ist der Hash $data, der an  die Subroutine netatmo_dispatch übergeben wird.

Im der Unterroutine netatmo_parseReadings  werden die Daten aber nicht geparst weil $hash->{status} nicht "ok" ist. Dafür steht "Filter Wind is not defined". wo wird diese Definition angelegt. Wie müsste autocreate die Definition erzeugen. Das Modul Wind wurde ja nach der Installtation angelegt. Allerdings ohne die notwendigen Routinen, die die entspr. Readings erzeugen.
Gibt es irgendwo noch eine Dokumentation, die mir erklärt, "wie FHEM" funktioniert?


UvG

Hallo docfred,
auch ich habe mich an dem netatmo Modul versucht. Da ich kein guter Programierer bin habe ich durch mehrere Log3 durchgewuschtelt.
Ich glaube das datatype -Wind- von netatmo kommt aber bei der Antwort von netatmo Api nicht verstanden wird. Kommt nun Wind habe ich dies umgestetzt in WindAngle,WindStrength,GustStrength,GustAngle und schon bekomme ich Daten. Hier ein Auszug aus netatmo.pm mit meinen Änderungen.

my $iohash = $hash->{IODev};
  $type = $hash->{dataTypes} if( !$type );
  $type = "Temperature,CO2,Humidity,Noise,Pressure,Rain,WindStrength,WindAngle,GustStrength,GustAngle,Sp_Temperature,BoilerOn,BoilerOff" if( !$type );
Log3 $name, 5, "$type: devicereading";
if ($type eq "Wind") {
    $type = "WindAngle,WindStrength,GustStrength,GustAngle"};
Log3 $name, 5, "$type: devicereading2";[/color]



UvG

kleiner Fehler beim kopieren [/color] muß weg.

wie schon gesagt programieren ist nicht umbedingt meine Stärke besonders das Einlesen in fremden Code, aber bei mir funktionierts.

Gruß

Ulrich

Markus M.

#5
Aktuell weder Smarthome noch FHEM vorhanden

UvG

Hallo Markus
die netatmo.pm hatte ich mir schon aus dem Beitrag  Antw:Netatmo Welcome kamera in FHEM einbinden
« Antwort #6 am: 11 Februar 2016, 15:00:26 » runtergeladen, aber der Windmesser funktioniert dabei nicht. Ich denke es ist das oben beschriebene Problem.
Einen zugriff zu meinen Account könnte ich dir übermitteln (nicht über das Forum), allerdings habe ich nur den Windmesser.

Ulrich

docfred

Hallo UvG,
habe jetzt länger nichts mit FHEM gemacht und hab heute wieder das Forum gelesen. hab dein Snipplet eingebaut und tatsächlich bekomme ich jetzt ein Reading mit den 4 Parametern. Danke.

aski71

Hallo,
stoße gerade auf das selbe Problem.
An welcher Stelle genau muss dieses Snippet eingebaut werden?
Finde das irgendwie nicht so recht, weil auch wenig Perl-Erfahrung. :-)
Danke, Alex

joshi04

Bitte schaut doch mal hier, ich denke, Ihr habe das gleiche Ziel:
https://forum.fhem.de/index.php/topic,53500.0.html
Da ist Markus gerade richtig fleissig...

Mit dem Verweis müsste mMn damit dieser Thread hier "gelöst" sein.
Wenn dem so ist, gerne im 1. Beitrag das Thema editieren und so als [gelöst] markieren.
NUC: 2xJeeLink, PCA301/TX35DTH; HueBridge, LivingColors; vair-monitor (CO2); HMLan, Winmatic, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-ES-TX-WM, HM-WDS10-TH-O, HM-ES-PMSw1-Pl, HM-SEC-SC-2, HM-SEC-SCo; AVM DECT 200; panStamp; smartVISU