Smart Meter Dashboard in Grafana (Influxdb)

Einleitung

Ich möchte euch meine Auswertung von meinem Smart Meter zeigen. Ich speichere alle Daten in eine InfluxDB. Wie ich das mache habe ich in diesem Beitrag erklärt. Zum Visualisieren verwende ich Grafana. Das ist eine Open Source Anwendung die auch auf einen Raspberry Pi läuft.

Installation von Grafana

Für die Installation gibt es schon einige Anleitungen daher nur der Verweis auf die Offizielle Dokumentation. 

Erste Schritte mit Grafana

Die Oberfläche kann mit der IP und dem Port 3000 geöffnet werden. (192.168.1.99:3000). Die Standard Anmelde Daten sind admin, als Username und Passwort.
Es erscheint ein Fenster wo man sein Passwort ändern soll. Es kann auch weiter geklickt werden mit “Skip”.

Datenbank verknüpfen

Um ein Dashboard mit Daten zu füllen muss eine Datenbank hinterlegt werden. Dazu klick man auf das Zahnrad am linken Bildschirmrand. Dann sucht man seine gewünschte Datenbank in meinem Fall ist das eine InfluxDB.
Als erstes vergibt man einen Namen zb. “SmartMeterBlog” dann eine URL, dass ist der Server wo die Datenbank liegt in meinem Fall auf einem Raspberry PI mit der IP 192.168.1.99 und der Port ist 8086 (192.168.1.99:8086). Unter dem Punkt InfluxDB Details muss noch die Datenbank angegeben werden das ist bei mir “SmartMeter”. Meine Datenbank hat keine Speziellen User und Passwort daher lasse ich diese Felder leer. Als letztes muss noch der Button Save & Test gedrückt werden wenn als Antwort “Data source is working” kommt ist die Datenbank mit Grafana Verknüpft.

Grafana Influx Datenbank verknüpfen

Dashboard Erstellen und Grundeinstellungen

Mit dem Plussymbol auf der linken Bildschirmseite lassen sich neue Dashboards erstellen. Dann kann man unter dem Zahnrad Symbol oben rechts Grundeinstellungen Vornehmen wie den Namen, Timezone und einiges mehr. Ich habe den Namen “Smart Meter Auswertung Blog” vergeben. Und meine Zeitzone Eingestellt. Links befindet sich der blaue Speicherbutton “Save dashboard”.

Grafana Dashboard Grundeinstellungen

Anzeige für Aktuellen Verbrauch erstellen

Oben Rechts befindet sich ein Balkendiagram mit einem gelben Plus damit kann man neu Diagramme erstellen. Dann muss man “Add a new panel” drücken. Es öffnet sich ein Fenster zum Bearbeiten des Diagramms. Es muss die Datenbank ausgewählt werden und welche Werte von der Datenbank angezeigt werden sollen.

Grafana erste eigene Anzeige

Leistungsverlauf

Um diesen zu erstellen muss man wider ein neues Panel hinzufügen. Und “Time series” auswählen.

Grafana Zeitverlauf darstellen

Tageswerte der letzten 7 Tage

Auch hier muss wider ein neues Panel Angelegt werden über das Plus. Diesmal braucht als “Diagrammtype” eine Tabelle. Um den Gesamtverbrauch der Energie auszurechnen wird die Differenz vom heutigem Tag zum letzten benötigt.

Grafana Stromverbrauch über 7 Tage

Export von meinem Dashboard

Hier mein Dashboard welches nur noch importiert werden muss.

Feedback

Bitte schreibt ein Kommentar wie die Video und Ton Qualität ist. Ob diese Ausreichen gut ist. Ihr könnt mir auch noch weitere Themen vorschlagen die ich mir genauer Ansehen soll.


35 comments

  • Hallo, super ding, wie könnt ich die Stromanzeige vom SmartMeter anzeigen lassen.
    also ich meine am SmartMeter am Display steht zb. 17500 diesen wert möchte ich angezeigt haben, wie geht das?
    Hintergetanke, das ich den stand vom SmartMeter sehe in Grafana.

  • Moin Michael,

    vielen Dank für dein Video “Grafana Stromverbrauch über 7 Tage” – das hat kurz und knapp gezeigt was alles möglich ist. Danke!

    Kannst Du noch eines machen über den Strom Bezug pro Monat oder mir dabei helfen? Mit GROUP BY time(1M) funktioniert das bei mir nicht.

    • Hallo,

      leide ist das nicht so einfach möglich. Ich habe auch lange nach einer Lösung gesucht aber noch nicht wirklich was gefunden.
      Bei der InfluxDB in der Version 1.X gibt es den Filter 1 Monat nicht.
      Mit der InfluxDB 2.X sollte es diesen geben aber da ist der Syntax ein ganz neuer.

      LG Michael

      • hi,

        ich habe das Ganze für das jeweils aktuelle Jahr pro Monat ausgewiesen, mir fehlen aber noch die Daten für den neuen Monat (sollte Morgen um 24:00 Uhr soweit sein ;)) um sagen zu können, dass es funktioniert.

        ich aggregiere und summiere dabei die Werte wie folgt (FluxQL)

        from(bucket: “XXX”)
        |> range(start: -1mo, stop: now())
        |> filter(fn: (r) => r[“_measurement”] == “smartmeter”)
        |> filter(fn: (r) => r[“_field”] == “WirkenergieP”)
        |> aggregateWindow(every: 24h, fn: last, createEmpty: false)
        |> truncateTimeColumn(unit: 1m)
        |> difference(nonNegative: false, columns: [“_value”])
        |> aggregateWindow(every: 1mo, fn: sum, createEmpty: false)
        |> timeShift(duration: -1d)

        wichtig ist noch zu erwähnen, im Panel in den Query Options, muss man auch einen relative time und time shift filter setzen:

        relativ time: now/y
        time shift: 0y/y

        sieht aktuell wie folgt aus:
        https://ibb.co/4Y7R9qp

        • Hallo,

          danke für deine Arbeit.
          Ich arbeite derzeit noch mit Influx 1.8 und da funktioniert diese Methode meines Wissens noch nicht oder hast du andere Erfahrungen ?

          LG Michael

  • Hallo, vielen Dank für die tolle Anleitung. Ich würde gerne den Stromverbrauch noch für jeden Monat mir anzeigen lassen. Kannst du mir erklären, wie ich das machen muss ? Lg dirk

    • Ich hab das so geloest, dass ich mir fuer jedes Monat einen Wert in einem eigenen Panel anzeigen lasse, also 12 kleine quadratische Panele in einer Zeile, darin die Summe je Monat als Zahl. Im Panelheader steht das Monat als Text. Sieht optisch gar nicht so wild aus.

  • Grüß euch!

    Wie habt ihr das gelöst das, dass script am PI beim booten, oder wenn nicht läuft gestartet wird?

    Mit systemd ? Im Moment nur aus der Konsole gestartet mit @ aber nun ja … – danke für Infos!

    LG
    Toni

    • Hallo,

      Mit systemd ist das ganz einfach:
      sudo nano /etc/systemd/system/EvnSmartmeterMQTT.service

      [Unit]
      Description=SmartMeterData Script
      After=multi-user.target

      [Service]
      Type=simple
      Restart=always #Script wird wieder gestartet wenn abstürzt
      ExecStart=/usr/bin/python3 /home/pi/EvnSmartmeterMQTT.py

      [Install]
      WantedBy=multi-user.target

      sudo systemctl daemon-reload #neue config laden
      sudo systemctl enable EvnSmartmeterMQTT.service #Start Service on Boot
      sudo systemctl start EvnSmartmeterMQTT.service

  • Hallo Michael

    Habe auch schon so ein ähnliches Dashbord um den Verbrauch meiner Wärmepumpe darzustellen.

    Da ich jetzt einen Stromtarif bekomme welche 2 unterschiedliche Preise hat möchte ich diesen auch korrekt mit Grafana abbilden.
    Wochentags von 8-20 Uhr zahle ich 40 cent, in der anderen Zeit 34 cent. Habe auch schon eine Entitäten in Homeautomatien erstellt wo er mir den korrekten preis nach Uhrzeit anzeigt.

    Wie kann ich diesen wert in Grafana zur berechnung meines Strompreises verwenden?

  • Guten Tag,
    erstmal großes DANKE für die Super Anleitung.
    Es sind meine erste Schritte mit Grafana. Der Einstieg wurde durch diese Anleitung gut vereinfacht.
    Leider habe ich noch Probleme mit der Darstellung, wenn ich mir die Monate Anzeigen möchte statt die letzten 7 Tage.
    Dort bekomme ich leider die Sortierung in Grafana nicht hin. für einen Tipp wäre ich Dankbar.

    Gruß
    Chris

  • Hey, sieht klasse aus. Kannst du das Dashboard exportieren und zur Verfügung stellen? Soweit ich weiß lassen sich Dashboards nach ändern (Suchen und Ersetzen) der wesentlichen Datenpunkte ganz nett und schnell importieren…

    Viele Grüße
    Alexander

  • Hallo,

    finde die Umsetzung super! Kann man in Grafana auch einen Schwellwert angeben mit dem dann zB eine Ausgang am GPIO angesteuert wird?

    LG Meks

    • Hallo,

      in Grafana funktioniert das glaube ich nicht aber in Node Red ist das kein Problem.

      Bin gerade dabei eine Anlage zu automatisieren mit einem Heizstab. Wenn das Projekt fertig ist dann werde ich einen Blog Beitrag schreiben.

      Wenn du das Programm gleich brauchst kannst du dich melden.

      LG Michael

      Wenn du das Programm ha

  • Hallo Michael,
    Vielen Dank für deine großartige Lösung und deine Tutorials. Es funktioniert großartig. Ich habe nur ein einziges Problem, das ich nicht lösen kann obwohl ich mir dein Grafana Tutorial schon x-mal angesehen habe und es genau so umgesetzt habe. Wenn ich beim Strom-Bezug pro Tag als Unit der bezogenen Energie kWh eingebe, kommt in der Anzeige immer Wh. Die Node-Red Einstellungen habe ich genau nach deiner Anweisung erstellt. Was kann da falsch sein?
    LG Hans

  • Danke für die tolle Anleitung!!
    Ist es möglich, dass wenn die Leistung unter null geht, diese in einer anderen Farbe angezeigt wird beim Verlauf und auch beim Gauge?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert