20

netatmo Regen- & Windmesser-Daten im Fibaro HC2 – Neue netatmo API

by boomx30. November 2016

Ab dem 01.12.2016 stellt netatmo serverseitig die API um und schaltet damit mehrere genutzte API-Calls, welche wir für die Integration in das Fibaro HomeCenter 2 genutzt haben, ab. Hier erfahrt Ihr wie es weitergeht…

…und wie Ihr die neuen API-Calls nutzen könnt. Und zwar haben wir für euch das bekannte Skript zur Integration des netatmo Regensensor, sowie des Windsensors angepasst, stellen es euch in diesem kleinen Artikel vor und bieten es euch zum Download an. Wir haben auch zwei, drei kleine Veränderungen vorgenommen.

ACHTUNG! Das alte Skript funktioniert ab dem 01.12.2016 nicht mehr.

Neue Funktionen

Im Zuge der Aktualisierung des Skriptes haben wir auch ein paar neue Funktionen implementiert:

  • Anpassung an die neue netatmo API
  • Benötigte Variablen werden durch das netatmo-Skript automatisch erstellt (sofern diese nicht bereits angelegt sind)
  • Laufzeitfehler (Skript bricht nach einer undefinierten Zeit ab) sollten nicht mehr auftreten
  • Skript in Deutsch & Englisch verfügbar

Vorzunehmende Anpassungen

Nachdem Ihr das gedownloadete Skript in eine neue LUA-Szene auf dem HomeCenter 2 hineinkopiert habt, müssen noch einige Anpassungen an dem netatmo Skript vorgenommen werden. Dies betrifft zum Einen die Angaben zu eurem netatmo-Login und zum anderen zu kleineren Angaben zur Refresh-Time, Anzahl batteriebetriebener Module und dem Debug.

Hier werden, wie bereits erwähnt, die Anmeldedaten für die netatmo-Seite (lokale Variable username und password), sowie die client id und die client secret von der erstellten App benötigt. Diese findet Ihr unter den erweiterten Einstellung und dort unter dem TECHNICAL PARAMETERS der App:

netatmo_secret

netatmo app Angaben



Damit das Skript odnungsgemäß funktioniert, muss hier der Wert von max_counter angepasst werden. Hier wird dem Skript die Info über die Anzahl der batteriebetriebenen Module, welche Ihr von netatmo im Einsatz habt, mitgegeben. Solltet Ihr zum Beispiel ein Außenmodul, ein Innenmodul, ein Windmesser und einen Regenmesser im Einsatz haben, dann muss hier der Wert 4 gesetzt sein. Falls das Skript mit einer Fehlermeldung abbricht, dann ist dieser Wert zu hoch angesetzt.

Leider gibt es derzeit noch nicht die Möglichkeit diesen Wert automatisch zu ermitteln.

Die anderen beiden lokalen Variablen können unverändert bleiben. Solltet Ihr den Debug ausschalten wollen, dann muss der Wert von der Variablen debug auf 0 gesetzt werden. Die Aktualisierungsintervalle sollten bei 300 Sekunden (5 min) belassen werden.

netatmo_2-0_debug

netatmo API Debug im Fibaro HC2 (Englisch)

Download der netatmo Skripte

Die LUA-Skripte könnt Ihr euch nun hier herunterladen:

netatmo v2.0 – Deutsch/Englisch – DOWNLOAD ZIP

In der ZIP-Datei sind Skripte in den beiden oben genannten Sprachen verfügbar. Nachdem Ihr die Zip-Datei entpackt habt, könnt Ihr die Datei in einem gewöhnlichen Texteditor öffnen und den Inhalt in eine neue Szene auf eurem Fibaro HomeCenter 2 kopieren.

Icon für die Szene

Icon für die Szene

About The Author
boomx
boomx
Moin, ich bin Daniel, Anwendungsentwickler von Beruf. Hier auf siio unterstütze ich die Kollegen bei der Programmierung mit LUA, bzw. bei der Integration von neuen Netzwerkgeräten und schreibe Tutorials rund um das HomeCenter 2 von Fibaro, welches ich auch privat im Einsatz habe.
20 Comments
  • Valle
    30. November 2016 at 18:30

    @boomx: einfach mal danke!

  • Hoggle
    Hoggle
    30. November 2016 at 21:24

    Just in Time!
    Sehr schön!

    • boomx
      30. November 2016 at 23:45

      Hi,

      eher hab ich es nicht geschafft. Zwischenzeitlich hatte ich ein paar „persönliche“ Probleme mit der neuen API ;)

      Gruß

  • CarstenN
    1. Dezember 2016 at 13:37

    Hallo boomx,
    Script ausgetauscht und es funktioniert.
    Vielen Dank :)

    Gruss
    Carsten

  • Ernst
    2. Dezember 2016 at 18:46

    Vielen Dank :-)

  • maccwinn
    3. Dezember 2016 at 8:17

    Hallo boomx,

    danke erstmal auch von mir für deine Arbeit!

    Kann es sein das die API nicht bei jedem geändert werden muss? Bei mir funktioniert die Temperaturabfrage immer noch!?

    Und wie komme ich in der Netatmo App in die erweiterten Einstellungen? Ich komme nur in Einstellungen und das wars.

    Danke schon mal.

    • boomx
      3. Dezember 2016 at 10:14

      Hi,

      dann hat netatmo die API-Calls nicht deaktiviert, sondern supportet diese nicht mehr. Ergo kann das jederzeit nachgeholt werden und dann funktioniert es nicht mehr, wenn das Skript noch nicht umgestellt wurde.

      Welche erweiterten Einstellungen meinst du?

      Gruß

  • maccwinn
    3. Dezember 2016 at 20:02

    Danke für deine Antwort! Ich meinte die Erweiterten Einstellungen um die client id raus zu kriegen. habe es aber zwischenzeitlich hier gefunden. (https://dev.netatmo.com)

    Also ich habe jetzt dein Skript kopiert eingefügt und die im Beitrag beschriebenen Änderungen vorgenommen.

    Irgendwie erkennt das Skript scheinbar nicht mein Außenmodul? Ich habe nur das Hauptmodul Innen (mit Kabel) und ein Außenmodul. Die Werte vom Außenmodul werden nicht im HC2 angezeigt.

    Hier der Debug:

    [DEBUG] 19:48:14: netatmo v.2.0 (NEW API) gestartet…
    [DEBUG] 19:48:14: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
    [DEBUG] 19:48:14: oAuth 2.0 durchgeführt.
    [DEBUG] 19:48:15: netatmo Sensoren werden gesucht…
    [DEBUG] 19:48:15: Mainstation: 70:ee:50:1b:2a:10 erkannt.
    [DEBUG] 19:48:31: netatmo v.2.0 (NEW API) gestartet…
    [DEBUG] 19:48:31: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
    [DEBUG] 19:53:14: oAuth 2.0 durchgeführt.
    [DEBUG] 19:53:15: netatmo Sensoren werden gesucht…
    [DEBUG] 19:53:15: Mainstation: 70:ee:50:1b:2a:10 erkannt.
    [DEBUG] 19:58:14: oAuth 2.0 durchgeführt.
    [DEBUG] 19:58:15: netatmo Sensoren werden gesucht…
    [DEBUG] 19:58:15: Mainstation: 70:ee:50:1b:2a:10 erkannt.

    • boomx
      3. Dezember 2016 at 21:18

      Hi,

      das hat einen ganz einfachen Grund:

      Mit dem Skript frage ich die Außenmodule nicht ab… Wie im Seitentitel beschrieben, ist das Skript nur für den Wind- & Regenmesser von netatmo ;) Das Außenmodul wird ja normal über das Plugin abgefragt…

      Gruß

  • maccwinn
    3. Dezember 2016 at 21:21

    A OK! aber es zeigt mir ja nicht mehr die Außentemperatur im Homescreen an!?

    Das läuft dann also über das alte Skript?

    • boomx
      3. Dezember 2016 at 21:22

      Doch sollte das HC2 über das netatmo-Plugin machen (weshalb dies im Skript nicht berücksichtigt ist). Funktioniert schon seit circa 1 Jahr ohne Probleme :) Das alte Skript fragt auch nur Wind- & Regenmesser ab.

  • gpascal
    6. Dezember 2016 at 22:17

    Hi boomx,

    danke für die Überarbeitung, jedoch kommt immer mal wieder, wie auch schon bei der alten Lösung folgender Fehler:

    [DEBUG] 20:19:57: oAuth 2.0 durchgeführt.
    [DEBUG] 20:19:57: netatmo Sensoren werden gesucht…
    [DEBUG] 20:19:57: Mainstation: 70:ee:50:14:3b:76 erkannt.
    [DEBUG] 20:20:00: Regensensor 05:00:00:01:81:12 erkannt.
    [DEBUG] 20:20:03: Windmesser 06:00:00:00:41:52 erkannt.
    [DEBUG] 20:20:08: Regenmenge: 0 mm2 (day)
    [DEBUG] 20:20:08: Windgeschwindigkeit: 1 km/h
    [DEBUG] 20:20:08: Regenmenge: 0 mm2 (hour)
    [DEBUG] 20:20:08: Regenmenge: 0.303 mm2 (week)
    [DEBUG] 20:20:08: Regenmenge: 35.754 mm2 (month)
    [DEBUG] 20:24:57: oAuth 2.0 durchgeführt.
    [DEBUG] 20:24:57: netatmo Sensoren werden gesucht…
    [DEBUG] 20:24:57: Mainstation: 70:ee:50:14:3b:76 erkannt.
    [DEBUG] 20:25:00: Regensensor 05:00:00:01:81:12 erkannt.
    [DEBUG] 20:25:03: Windmesser 06:00:00:00:41:52 erkannt.
    [DEBUG] 20:25:08: [1;31m2016-12-03 20:25:08.384797 [ fatal] LUA error: /usr/share/lua/5.2/json/decode/util.lua:35: unexpected character @ character: 1 0:1 [<] line:
    [DEBUG] 20:25:08: <

    Kannst du mir weiterhelfen?

    Viele Grüße

    • boomx
      9. Dezember 2016 at 0:15

      Hi,

      muss ich mir nochmal anschauen. Bei mir trat dieser Fehler im Test nicht auf.

      Gruß

      • gpascal
        10. Dezember 2016 at 21:31

        Wäre super
        Danke schon mal!

        LG

        • boomx
          13. Dezember 2016 at 9:10

          Habe das Skript jetzt seit 3 Tagen laufen und kann die Fehlermeldung nicht nachvollziehen.

          Gruß

          • gpascal
            14. Dezember 2016 at 18:16

            Danke fürs probieren, ich hab das Script eben auch nochmal neu gestartet, mal abwarten.

            LG

          • gpascal
            5. Januar 2017 at 16:29

            Hi boomx,

            leider habe ich nach wie vor Abstürze mit dem Script.
            Der Debug-Bereich sieht folgendermaßen aus:

            [DEBUG] 18:25:53: oAuth 2.0 durchgeführt.
            [DEBUG] 18:25:53: netatmo Sensoren werden gesucht…
            [DEBUG] 18:25:53: Mainstation: 70:ee:50:14:3b:76 erkannt.
            [DEBUG] 18:25:56: Regensensor 05:00:00:01:81:12 erkannt.
            [DEBUG] 18:25:59: Windmesser 06:00:00:00:41:52 erkannt.
            [DEBUG] 18:26:04: [1;31m2017-01-02 18:26:04.481887 [ fatal] LUA error: /usr/share/lua/5.2/json/decode/util.lua:35: unexpected character @ character: 1 0:1 [<] line:
            [DEBUG] 18:26:04: <
            [DEBUG] 18:29:03: netatmo v.2.0 (NEW API) gestartet…
            [DEBUG] 18:29:03: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
            [DEBUG] 18:39:10: netatmo v.2.0 (NEW API) gestartet…
            [DEBUG] 18:39:10: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
            [DEBUG] 18:49:16: netatmo v.2.0 (NEW API) gestartet…
            [DEBUG] 18:49:16: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
            [DEBUG] 19:29:43: netatmo v.2.0 (NEW API) gestartet…
            [DEBUG] 19:29:43: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
            [DEBUG] 19:49:53: netatmo v.2.0 (NEW API) gestartet…
            [DEBUG] 19:49:53: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
            [DEBUG] 19:59:59: netatmo v.2.0 (NEW API) gestartet…
            [DEBUG] 19:59:59: Daten werden alle 5 min aktualisiert. Bei debug = 0 wird nichts debuggt
            [DEBUG] 21:29:47: netatmo v.2.0 (NEW API) gestartet…

            Muss ich denn außer den oben genannten Parametern noch etwas anpassen?

            LG

  • 9. Januar 2017 at 21:56

    hey gpascal!

    hatte das gleiche problem!

    einfach szene löschen und neu erstellen hat bei mir geholfen :)

Leave a Response