Netatmo in Loxone einbinden

Netatmo in Loxone einbinden

OBSOLET - wird nicht mehr gewartet, es gibt ein Loxberry Plugin für Netatmo: https://wiki.loxberry.de/plugins/netatmo_weather/start?s%5B%5D=netatmo

 

WICHTIGER HINWEIS Da das Problem immer wieder mal vorkommt

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)

 

VERSION 2.0

Wichtiger Hinweis

Gegenüber der Version 1.0.x hat sich die Konfiguration geändert - es kann nun eingestellt werden, dass KEIN Netatmo Zertifikat verwendet wird. Details siehe im Artikel.

Change Log

Version 2.0 Die Verwendung des Netatmo Zertifikats ist nun optional (über Config Parameter steuerbar, default ist kein Zertifikat verwenden) Version 1.0.1 Programm beendet sich nicht bei Fehlern (außer Authentifizierung), sonder macht retries alle 30 Sekunden. Version 1.0 Unterstützung für Wind- und Regen Module - Danke an Christian der mir Zugang zu den Modulen gegeben hat. Unterstützung beliebig vieler Stationen - also Stationen am Hauptwohnsitz, am Wochenendhaus usw. Ausgelagerte Konfigurationsdatei - alle Config Daten sind nun in der Datei Configuration.properties Stabilisierung der Netzwerk Verbindung, Programm macht retries wenn Netzwerk mal weg ist. Version 0.7.1 Ausgabe der Versionsnummer beim Starten Version 0.7 Ab nun wird dass mit dem Login erstellte Access Token so lange verwendet, bis es abgelaufen ist, erst dann wird ein neuer Login und damit ein neues Access Token gemacht. Dies ist das von Netatmo gewünschte Verhalten und spart jedenfalls Ressourcen ein - es werden nicht sinnlos Access Tokens erzeugt, die nicht verwendet werden. Könnte auch ein Netzwerkproblem eines Anwenders beheben, dessen Ursache aber nicht wirklich geklärt ist. Version 0.6 weiteres Refactoring, besseres Werte Handling Umrechnen der UTC Zeiten in Lokalzeit für Miniserver (MS Zeit beginnt ab 1.1.2009 und nicht 1.1.1970) Workarounds für Miniserver Probleme MS kann keine Texte über UDP empfangen Status Baustein stellt Uhrzeit als Datum mit Millisekunde dar, deshalb wird die Uhrzeit als Zahl mit 2 Nachkommastellen gesendet - Darstellung: hh.mm Außerdem mit dabei nun eine Demo Implementierung für den Miniserver Version 0.5 Kompletter Re-Write mit neuer Struktur und neuer dynamischer Datenspeicherung über HashMaps  Version 0.1 Quick & Dirty proof of Concept basierend auf den Klassen von https://github.com/lost-carrier/netatmo-api

Downlods für schnell entschlossene

  • Eclipse Java Projekt 

  • Beispiel Confíg für Minserver 

Diskussion und Fragen bitte im Forum.

Anleitung

Hier eine Anleitung, wie man seine Netatmo Daten relativ einfach in Loxone bekommt. Das ganze baut auf den Ideen von https://github.com/lost-carrier/netatmo-api auf (hat aber mittlerweile nichts mehr damit zu tun) und ist eine auf Java 8 basierende Lösung. Es werden beliebig viele Basisstationen mit zusätzlichen Außenmodulen, weiteren Innenmodulen sowie Wind- und Regenmodule unterstützt.

Unterstützung für das Thermostat einzubauen sollte nicht allzu schwierig sein. Troubleshooting Tipps zur Inbetriebnahme gibt es auch im loxforum.

Und so sieht das ganze dann in der mitgelieferten Loxone Demo App aus

Bilder: Netatmo4Loxone

Miniserver Beispiel Config Datei für obige Auswertung

Hier kann die  für obige Ausgaben heruntergeladen werden.

Angepasst werden müssen die Modulnamen in der Befehlserkennung, in der folgenden Tabelle in Spitzen Klammern <....> aufgeführt

Unterstützung mehrerer Stationen

Hat man mehr als eine Basisstation im Einsatz, z.B. eine am Hauptwohnsitz, eine im Wochenendhaus, so kann man in der Konfiguration (siehe weiter unten) einstellen, dass nicht nur die Modulnamen sonder auch die Stationsnamen für die Werte Übermittlung verwendet werden. In der folgenden Tabelle werden immer nur der <Modulname> angeführt, hat man Unterstützung für mehrere Stationen aktiviert, so wird immer <Stationsname>.<Modulname> übermittelt.

Übermittelte Werte

In der folgenden Tabelle sind alle Werte dokumentiert, die je nach Modul übertragen werden. Der Modulname ist mit den jeweils eigenen Werten zu ersetzten.

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>.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

Comments