Status | ||||
---|---|---|---|---|
|
Status | ||||||
---|---|---|---|---|---|---|
|
Wenn sich Werte in der Anzeige nicht ändern oder folgender Fehler (in der Konsole des Programms, nicht am Miniserver) gemeldet wird:
org.json.JSONException: JSONObject["dashboard_data"] not found
dann ist sehr wahrscheinlich die Batterie eines Netatmo Moduls leer oder keine Funkverbindung zum Modul, es sind dann keine Dashboard Daten verfügbar.
Doku von Netatmo:
dashboard_data
Last data measured per device (NB: this field is not returned when the device is unreachable)
...
Erweitern | ||
---|---|---|
| ||
Version 2.0
Version 1.0.1
Version 1.0
Version 0.7.1
Version 0.7
Version 0.6
Version 0.5
Version 0.1
|
Downlods für schnell entschlossene
...
Alle Zeiten und das Datum werden vom Programm in Lokalzeit mit Basis 1.1.2009 umgerechnet (Zeitbasis für Miniserver statt wie üblich 1.1.1970 - es soll ja nicht zu einfach sein ). Wenn der Miniserver und der Rechner auf dem das Programm läuft, die selbe Zeitzone eingestellt haben, dann werden die Zeitangaben der Messung korrekt dargestellt.
Befehlserkennung | Beispielswert | Basis-modul | Außen-modul | Innen-modul | Wind-modul | Regen-modul | Anzeige Einheit | Erklärung | Anmerkung | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<Modulname>.CO2=\v | 1026 | x |
| x | <v> ppm | CO2 |
| |||||||
<Modulname>.Humidity=\v | 41 | x | x | x | <v> % | Luftfeuchtigkeit |
| |||||||
<Modulname><Modulname>.Noise=\v | 42 | x |
|
| <v> db | Lärm |
| |||||||
<Modulname>.Pressure=\v | 1022 | x |
| <v> mbar | Luftdruck |
| ||||||||
<Modulname>.Temperature=\v | 21.6. | x | x | x | <v.1> °C | Temperatur |
| |||||||
<Modulname>.battery_percent=\v | 74 |
| x | x | x | x | <v> % | Batterieladung |
| |||||
<Modulname>.battery_vp=\v | 3 |
| x | x | x | x | <v> | Batteriestatus: 0=very low, 1=low, 2=medium, 3=high, 4=full |
| |||||
<Modulname>.date_max_temp=\v | 219240152 | x | x | x | <v.u> | Datum & Uhrzeit Maximaltemperatur, Sekunden seit 2009.01.01 | nicht benutzt in MS Demo Config | |||||||
<Modulname>.date_max_temp_tod=\v | 43352 | x | x | x | <v.t> | Uhrzeit der Maximaltemperatur, Sekunden seit 00:00:00 |
| |||||||
<Modulname>.date_max_temp_tod_nmbr=\v | 8.12 | x | x | x | <v.2> | Uhrzeit der Maximaltemperatur als Zahl *) |
| |||||||
<Modulname>.date_min_temp=\v | 219230176 | x | x | x | <v.u> | Datum & Uhrzeit Minimaltemperatur, Sekunden seit 2009.01.01 | nicht benutz in MS Demo Config | |||||||
<Modulname>.date_min_temp_tod=\v | 33376 | x | x | x | <v.t> | Uhrzeit der Minimaltemperatur, Sekunden seit 00:00:00 | ||||||||
<Modulname>.date_min_temp_tod_nmbr=\v | 11.18 | x | x | x | <v.2> | Uhrzeit der Minimaltemperatur als Zahl *) |
| |||||||
<Modulname>.last_message=\v | 219265551 |
| x | x | x | x | <v.u> | Datum & Uhrzeit letzte Nachricht, Sekunden seit 2009.01.01 | nicht benutz in MS Demo Config | |||||
<Modulname>.last_message_tod=\v | 68751 |
| x | x | x | x | <v.t> | Uhrzeit letzte Nachricht, Sekunden seit 00:00:00 | nicht benutz in MS Demo Config | |||||
<Modulname>.last_message_tod_nmbr=\v | 9.45 |
| x | x | x | x | <v.2> | Uhrzeit letzte Nachricht als Zahl *) | nicht benutz in MS Demo Config | |||||
<Modulname>.last_seen=\v | 219265538 | x | x | x | x | <v.u> | Datum & Uhrzeit wann sich das Modul zuletzt gemeldet hat | nicht benutz in MS Demo Config | ||||||
<Modulname>.last_seen_tod=\v | 68738 |
| x | x | x | x | <v.t> | Uhrzeit wann sich das Modul zuletzt gemeldet hat | nicht benutz in MS Demo Config | |||||
<Modulname>.last_seen_tod_nmbr=\v | 9.45 | x | x | x | x | <v.2> | Uhrzeit wann sich das Modul zuletzt gemeldet hat als Zahl *) | nicht benutz in MS Demo Config | ||||||
<Modulname>.max_temp=\v | 21.0 | x | x | x | <v.1> °C | Tages-Maximaltemperatur | ||||||||
<Modulname>.min_temp=\v | 19.0 | x | x | x | <v.1> °C | Tages-Minimaltemperatur | ||||||||
<Modulname>.pressure_trend=\v | 2 | x |
|
| <v> | Luftdruck Trend: 0=fallend, 1=gleichbleibend, 2=steigend | ||||||||
<Modulname>.rf_status=\v | 2 | x | x | x | x | <v> | Stärke Funksignal: 0=very low, 1=low, 2=medium, 3=high, 4=full |
| ||||||
<Modulname>.temp_trend=\v | 1 | x | x | x | <v> | Temperatur Trend: 0=fallend, 1=gleichbleibend, 2=steigend | ||||||||
<Modulname>.time_utc=\v | 219265541 | x | x | x | x | x | <v.u> | Datum & Uhrzeit der letzten Messung - Lokalzeit NICHT UTC! | nicht benutz in MS Demo Config | |||||
<Modulname>.time_utc_tod=\v | 68741 | x | x | x | x | x | <v.t> | Uhrzeit der letzten Messung |
| |||||
<Modulname>.time_utc_tod_nmbr=\v | 13.07 | x | x | x | x | x | <v.2> | Uhrzeit der letzten Messung als Zahl *) |
| |||||
<Modulname>.wifi_status=\v | 2 | x |
|
| <v> für Status | WIFI Signalqualität: 0=very bad, 1=bad, 2=medium, 3=good |
| |||||||
<Modulname>.data_up_to_date=\v | 1 | x | x | x | x | x | <v.x> für Status | Aktualität der Daten: 0=nicht aktuell (älter als 15 Minuten), 1=aktuell |
| |||||
<Modulname>.Rain=\v | 0.0 | x | <v> mm | aktuelle Regenmenge in mm | ||||||||||
<Modulname>.sum_rain_1=\v | 1.0 | x | <v> mm | Regenmenge der letzten Stunde | ||||||||||
<Modulname>.sum_rain_24=\v | 3.4 | x | <v> mm | Regenmenge der letzten 24 Stunden | ||||||||||
<Modulname>.GustAngle=\v | 95 | x | <v> ° | Himmelsrichtung in Grad aus der die Böe kam | Zur Umrechnung in Himmelsrichtung siehe Statusbaustein in Demo | |||||||||
<Modulname>.GustStrength=\v | 12 | x | <v> km/h | Stärke der Böe | ||||||||||
<Modulname>.WindAngle=\v | 106 | x | <v> ° | Himmelsrichtung in Grad aus der der Wind kommt | Zur Umrechnung in Himmelsrichtung siehe Statusbaustein in Demo | |||||||||
<Modulname>.WindStrength=\v | 5 | x | Windstärke | |||||||||||
<Modulname>.date_max_wind_str=\v | 221310738 | x | <v.u> | Datum und Uhrzeit der Tages-Windspitze | ||||||||||
<Modulname>.date_max_wind_str_tod=\v | 40338 | x | <v.t> | Uhrzeit der Tages-Windspitze | ||||||||||
<Modulname>.date_max_wind_str_tod_nmbr=\v | 11.12 | x | <v.2> | Uhrzeit der Tages-Windspitze als Zahl *) | ||||||||||
<Modulname>.max_wind_angle=\v | 111 | x | <v> ° | Himmelsrichtung der Tages-Windspitze | Zur Umrechnung in Himmelsrichtung siehe Statusbaustein in Demo | |||||||||
<Modulname>.max_wind_str=\v | 17 | x | <v> km/h | Stärke der Tages-Windspitze |
*) Statusbaustein stellt Zeit falsch dar, deshalb wird eine Zahl verwendet
Schritt für Schritt Anleitung
...
- Von http://www.oracle.com/technetwork/java/javase/downloads/index.html die aktuelle Java JDK 8 Version herunterladen und installieren (JDK - also Java Development Kit, nicht JRE - das ist nur die Runtime)
- Als IDE wird Eclipse verwendet, deshalb von https://eclipse.org/downloads/ die Eclipse IDE for Java Developers herunterladen und in einen eigenen Ordner mit Namen eclipse extrahieren.
- eclipse.exe starten, den vorgeschlagenen Workspace akzeptieren und dann, wenn das Eclipse Fenster erscheint, auf das Icon Workbench (rechts oben) klicken. Später importieren wir dann das Netatmo Projekt in Eclipse.
Erweitern | ||
---|---|---|
| ||
Netatmo API Zertifikat in Keystore importierenAb Version 2.0 ist die Default Einstellung OHNE Zertifikate zu arbeiten. Wer weiß was ert tut kann das mit dem entsprechenden Config Parameter ändern und wieder MIT Zertifikaten arbeiten. HINWEIS: Ohne Zertifikate zu arbeiten birgt das minimale Sicherheitsrisiko, das jemand die Netatmo Domäne kapert und einem falsche Werte unterjubelt. Der Vorteil ist, man muss nicht alle paar Jahre, wenn Netatmo sein Zertifikat erneuern muss, ein neues Zertifikat laden. Ich persänli (Maximilian Weißböck) verwende keine Zertifikate mehr. Die folgenden Schritte als Administrator ausführen, da man sonst an mangelnden Schreibrechten scheitern könnte.
Damit ist das Zertifikat importiert. Das ist wichtig, da das Java Programm sonst einen Fehler wirft, dass der Verbindung nicht vertraut wird. |
...
- Erledigt - Besseres Fehlerhandling im Programm selbst - die ganzen Klassen gehören in Wirklichkeit Refaktorisiert, da es (hoffentlich) nur Beispiele sind und nicht wirklich sauber programmiert ist.
- Erledigt - Logger statt syso und syserr verwenden.
- Erledigt - Weitere Daten von den Modulen an den MS senden, vor allem Batteriezustand und auch Funksignalstärke.
- Erledigt - NaN Werte gar nicht übertragen.
- Erledigt - Zeit Wert so übertragen, das er nutzbar ist.
- Erledigt - Mehrere Stationen unterstützen, derzeit wird nur eine (die erste) unterstützt.
- Erledigt - Regen, Wind und Thermostat Daten einbinden
- Erledigt - Das ganze mal auf einem Raspberry Pi ausprobieren, müsste da auch problemlos laufen - hat ein User aus dem Forum schon gemacht und läuft bei mir seit Monaten problemlos
...