Blog Lesezeit: 3 Min. Tags:  MUC.easy ,   MUC ,   Produkte

Smart Metering im eigenen Heim (V) - Der direkte Weg in die Datenbank

Im vierten Teil der Blogreihe Smart Metering im eigenen Heim haben wir gezeigt, wie die Daten von unserem Datenlogger MUC.easy grafisch angezeigt werden können. Hierzu wurde auf einem Raspberry Pi das Programm OpenHAB installiert, welches die Daten des MUC.easy zyklisch über Modbus TCP ausliest.

OpenHAB trägt die ausgelesenen Werte in eine InfluxDB Datenbank. Anschließend werden die Werte als Grafiken mit Grafana, einer Open-Source-Anwendung zur grafischen Darstellung von Daten, angezeigt.

Diese Lösung funktioniert sehr gut, hat aber den Nachteil, dass über Modbus TCP nur recht wenige Informationen übertragen werden, im Wesentlichen nur der Zählerwert. Zudem müssen Einstellungen an mehreren Stellen vorgenommen, der MUC.easy parametriert und das OpenHAB passend zum MUC.easy eingestellt werden.

Nun ist das Nachfolgemodell des MUC.easy, der MUC.easyplus, auf dem Markt. Das „plus“ sagt schon, dass er mehr kann. Daher kann damit die gleiche Anwendung etwas schlanker realisiert werden. Also habe ich nun das Ganze mit unserem MUC.easyplus bei mir zu Hause verwirklicht. Hier war ebenfalls mein Ziel, die Daten mit Grafana zu visualisieren.

Der erste Schritt zur Verschlankung ist der Verzicht auf OpenHAB als Datendrehscheibe. Daher müssen die Daten vom MUC.easyplus direkt in eine Datenbank geschrieben werden. So wäre auf dem Zielsystem Raspberry Pi nur die Datenbank und die Visualisierung aktiv.
Standardmäßig hat der MUC.easyplus keine Schnittstelle für eine Datenbankanbindung. Dies lässt sich aber mit Scripting lösen und somit die Funktion unseres Datenloggers erweitern. Erste Einblicke und zwei Arten von Scripten erläutern wir in folgendem Blogbeitrag.

Mit der neuen Scriptingfunktion konnte ich mir den Umweg über das OpenHAB sparen und die Daten direkt in die InfluxDB schreiben. Ich habe mir zunächst die API-Schnittstelle der InfluxDB in der Version 1.8 angesehen, um die Daten per HTTP direkt in die Datenbank zu schreiben. Die Umsetzung von HTTP erfolgt einfach mit dem Standardtool curl, welches auf dem MUC.easyplus verfügbar ist.

Im Handbuch von InfluxDB fand ich folgendes Beispiel:

          curl -i -XPOST 'http://localhost:8086/write?db=mydb'
          --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'

Dabei ist cpu_load_short das sogenannte Measure, die Werte host=server01 und region=us-west sind die Tag-Sets, bestehend aus dem Tab Key und dem Tag Value. Mit diesen Werten können Daten dann später im Grafana einfach gefiltert und sortiert werden. Mit value=0.64 wird ein Float-Wert von 0,64 in die Datenbank eingetragen. Die letzte Zahl ist der UTC-Zeitstempel, er wird in Nanosekunden angegeben.

Aber wie setzt man das jetzt für den MUC.easyplus um? Wie bezeichne ich die Datenreihe (Measure) und welche Tags nutze ich?

Auf der Webseite unseres MUC.easyplus kann man für Zähler und Zählerwerte einen Freitext hinterlegen, das so genannte User label. Damit ist man frei in der Nutzung. Ich habe mich dazu entschieden, das User label des jeweiligen Zählerwerts als Measure zu verwenden. So kann ich über die Webseite des MUC.easyplus sprechende Namen eintragen und sogar nach einem Zählerwechsel gleich weiter loggen. Als Tags nutze ich vorerst nur die Einheit des Zählerwerts.

Für die vier Zähler meines Haushalts reicht das. Wenn mehr Zähler oder mehrere Standorte dargestellt werden sollen, dann empfiehlt sich eine andere Erstellung von Tags und Measure.

MUC.easyplus Tab Meter

Nun war also klar, wie die Daten aussehen sollen und wie sie an das System übertragen werden. Den ersten Test konnte ich gleich vom MUC.easyplus durchführen. Dazu loggte ich mich über SSH in die Kommandozeile ein. Ich konnte sehen, dass das curl-Programm schon standardmäßig auf dem MUC.easyplus installiert und eine Datenübertragung möglich ist. Ebenfalls sieht man auch, ob die InfluxDB korrekt eingestellt ist und die Daten annimmt.

Testen kann man das mit dem Beispielbefehl von oben. Es muss nur „localhost“ durch die korrekte IP ersetzt werden.

Wie die Daten automatisch generiert und übertragen werden, erklären wir im sechsten Teil unser Blogreihe.

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

Captcha Code Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren

Captcha ist erforderlich!

Code stimmt nicht überein!

* Diese Felder sind erforderlich.

Bemerkungen :

  • user
    Christian Ehninger 08. Sep. 2020 Beim 10:57
    Hallo, vielen Dank für die tolle Beschreibung und Idee... Meine Frage wäre, wenn die Daten automatisch generiert und übertragen werden, bleiben die initial Daten weiterhin auf dem MUC gespeichert? Gilt die Beschreibung auch für den MUC500? Wann kommt der nächste Teil der Blogreihe?