Netatmo und Node-RED – Part 2

netatmo logoIch hatte euch bereits in einem vorherigen Beitrag geschrieben, wie ihr an die Daten eurer Netatmo Basis kommt und diese in Node-RED auswerten könnt. Nun habe ich mich tiefer in das Thema eingearbeitet und zeige euch nun, wie ihr auch an die Daten der weiteren Sensoren kommt. Momentan besitze ich zwar nur ein weiteres Innen-Modul, aber an die Daten der anderen solltet ihr auch kommen.

 

Netatmo in Node-RED konfigurieren

Ich habe den Flow auf GitHub abgelegt. Ebenfalls müsst ihr noch unter Manage palette >> Install >> node-red-contrib-netatmo installieren. Nach dem Import müsst ihr natürlich in dem Node get stations data eure Zugangsdaten und Keys anpassen. Mit diesem Flow habt ihr die Basis mit dem Außensensor und einen weitere Innensensor direkt abgefragt. Damit habt ihr fast alle Daten angefragt. Zeiten und Batteriestatus usw. habe ich nicht erfasst, aber das solltet ihr auch noch schaffen.

netatmo node-red flow

 

Um weitere Stationen hinzufügen, solltet ihr euch eines Debug-Nodes bedienen und einen Funktions-Node entsprechend anpassen. Folgende Funktion ließt das zweite Array von modules aus, welches mein weiteres Innen-Modul ist.

msg1.payload = msg.payload.devices[0].modules[1].dashboard_data

 

Um alle Module abzufragen, erzeugt ihr einen Funktions-Node, mit folgendem Inhalt. Daran schaltet ihr einen Dashbaord Text-Node, da im Debugbereich nicht genug angezeigt wird. Daraus wählt ihr eure Module aus und passt daran die Array-Nummer an (z.B. modules[3].dashboard_data). Der Rest erklärt sich von selbst.


var msg1 = {};
msg1.payload = msg.payload.devices[0].modules;
return msg1;

 

Das fertige Dashboard sieht aktuell so aus, ist aber natürlich alles Geschmackssache.

netatmo node-red dashboard

25 Gedanken zu “Netatmo und Node-RED – Part 2

  1. Hi,

    danke für deine tollen Blog über Netatmo und node-red, das hilft uns Neulingen immens 🙂
    Leider habe ich ein Problem mit deinem geposteten Flow oben, bei mir wird der node „get sattion data“ als unkonwn angezeigt wenn ich den flow importiere 🙁
    Kannst du mir in der Sache bitte Helfen, danke im Voraus.

    Salute
    Daniel

    • Hallo Daniel,

      das Problem hatte letztens schon jemand vor dir. Dort half es den Node zu aktualisieren. Du gehst also unter manage Palette und suchst nach Netatmo. Dort findest du den Node node-red-contrib-netatmo. Ich verwende die Version 0.1.5 und aktuell ist die 0.1.6. Durch den Button update, kannst du diesen nun aktualisieren. Danach sollte es gehen.

      Grüße,
      Björn

  2. hmm bin auf der 0.1.6 da ich mit node-red gerade erst angefangen habe, kann es noch eine „abhängigkeit“ geben die ich auf meinem system noch nicht installiert habe?

    • Ok, das sollte passen. Welche Nodes werden bei dir angezeigt, bzw. findest du dort den „get stations data“ Node? Also wenn du auf der linken Seite unter Netatmo schaust? Dort sollten ja alle zugehörigen und verfügbaren Nodes ersichtlich sein.

  3. alles links in der node Übersicht unter Netatmo von oben nach unten
    hmm komisch das dort alles doppelt vorhanden ist 🙁

    * get next events
    * get camera picture
    * get home data
    * get next events
    * get camera picture
    * get home data
    * netatmo dashboard

    • Ok, so langsam finden wir das Problem.
      Wenn du unter Manage Palette gehst und nach netatmo filters, findest du den Node ja. Unter der Versionsnummer findest du den Button > x Nodes. Drück da mal drauf. Dort solltest du folgende Nodes sehen: get next events, get camera picture, get home data, get measurements, get stations data und configNode. Alle sollten grün sein, außer der configNode. Ich würde über remove die Nodes mal entfernen und danach wieder hinzufügen. Evtl. dazwischen mal booten.

  4. hat leider alles nicht gebracht, das komische ist ja auch das ich im telnet fenster folgendes sehe bei der installation vom node:7 Mar 10:37:51 – [info] Installing module: node-red-contrib-netatmo, version: 0.1.6
    7 Mar 10:38:21 – [info] Installed module: node-red-contrib-netatmo
    7 Mar 10:38:21 – [info] Added node types:
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get next events
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get camera picture
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get home data
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get user
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get measurements
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get stations data
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:get device list
    7 Mar 10:38:21 – [info] – node-red-contrib-netatmo:configNode

    er wird nur nicht alles „aktiviert“

  5. Hallo,

    habe das gleiche Problem. Ebenfalls Version 0.18.4. Grün sind nur
    get next events
    get camera picture
    get home data

    die anderen werden nicht angezeigt.

  6. Nun habe ich es zum laufenbekommen. Da war was in dem File von ssadams nicht ok.
    Allerdings mußte ich es manuel erstelle, da bei mir copy/paste nicht (mehr) funktioniert.

  7. Die npm Installation hatte Fehler in den Dateien. Habe dann die letzte Version von Github genommen u. den Code überschrieben für die .html u. js Datei.

  8. Danke für die Hilfe,bin aber zur Zeit beruflich in Südamerika unterwegs.
    Werde es aber sobald ich wieder Zuhause bin versuchen.

  9. Moin,

    bin absoluter Anfänger und frage mich was ich in „Creds“ des get home data nodes eintragen soll. Das Java Snip mit meinem Credentials wie auf der Netamo Seite beschrieben funktioniert nicht.
    Fehlermeldung „TypeError: Cannot read property ‚client_id‘ of null“

    • Guten Morgen,

      der Node Get Home Data ist afaik für die Kamera, also nicht was du willst.
      Der Node get stations data ist für die Wetterstation. Dort brauchst du die Client ID und dein Client Secret von der Natatmo Seite, dazu noch deine Login daten und die MAC-Adresse des Hauptmoduls, wie es in der Software abgelesen werden kann. Damit sollte es klappen.

      Grüße,
      Björn

  10. Hallo zusammen

    ich versuche mitels dem „get messurment“ den aktuellen wert von meine healti coach zu holen.
    Dazu meine Frage
    wie kann ich unter begin date die aktuelle zeit-600sekunden automatisch eintragen
    Oder einfacher wie komme ich am einfachsten an denn letzten Wert ?

  11. Danke für die Antwort. Habe es bereits mal versucht, doch irgendwie schaffe ich es nicht.
    Ich weiss nicht wie ich meine Benutzerdaten eintragen kann, dass ich Daten bekomme.
    Mit Deinem Flow bekomme ich wenigsten Daten 🙂
    Die frage ist nur, wie muss ich es einrichten, dass ich immer die letzten zwei Array bekomme.
    Irgendwie müsste es möglich sein den Eintrag: Begin Date = aktuelle Zeit -30Minuten automatisch abzufüllen {{payload….}}. Aber ich habe keine Ahnung wie das geht.

  12. Hallo Björn

    frtage machst Du auch Software im Auftrag ?
    Wenn ja melde Dich doch bitte bei mir. Denn ich wäre um kompetente Hilfe froh

Schreibe einen Kommentar