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?
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?
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?
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]
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
Hier ist die Lösung: https://forum.fhem.de/index.php/topic,53500.0.html (https://forum.fhem.de/index.php/topic,53500.0.html)
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
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.
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
Bitte schaut doch mal hier, ich denke, Ihr habe das gleiche Ziel:
https://forum.fhem.de/index.php/topic,53500.0.html (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.