Balkonkraftwerk Teil 11: Visualisierung für AhoyDTU und OpenDTU mit Grafana

Balkonkraftwerk

OpenDTU und AhoyDTU sind zwei phantastische Eigenbaulösungen zum Auslesen der beliebten Hoymiles-Wechselrichter. Im Gegensatz zu den Original-DTUs, die der Hersteller Hoymiles selbst verkauft, bieten die Do-it-yourself DTUs aber nur einen eingeschränkten Funktionsumfang. So bekommt man damit nur einen aktuellen Blick auf die Wechselrichterdaten, aber keine Speicherung der Daten und damit auch keine schönen Zeitreihengrafiken. Dem wollen wir durch einen eigenen Server zur Datenspeicherung abhelfen und dazu eine ansprechende Visualisierung bauen. Die Tools der Wahl sind dabei ioBroker, influxDB und Grafana. Dies ist eine Nachbauanleitung, es werden ab Betriebssystem alle Schritte erklärt bis zur ersten Zeitreihengrafik.

In den beiden vorangegangenen Artikeln hatte ich mich bereits mit der Visualisierung von Balkonkraftwerksdaten beschäftigt und in diesem Zusammenhang die beiden Smarthome-Systeme ioBroker und Home Assistant vorgestellt. Die Entscheidung, welches der beiden Systeme ich selbst künftig verwenden sollte, ist mir dabei nicht leicht gefallen, beide haben ihre Vor- und Nachteile. So hat mir die Visualisierungskomponente – also der Programmteil, der schöne Grafiken ermöglicht, in Home Assistant nicht gefallen – ebenso wenig Vis und Jarvis beim ioBroker. Mit Grafana konnte ich mich aber sehr gut anfreunden, denn Grafana bietet meiner Meinung nach die beste Tageskurve für PV-Leistung und ähnliche Daten. Grafana arbeitet allerdings weder direkt mit ioBroker noch mit Home Assistant zusammen, sondern setzt auf eine influxDB Datenbank, die aber aus beiden Smarthome-Systemen befüttert werden kann. Letztendlich habe ich mich dann für den ioBroker entschieden, aus drei Gründen:

  • Die Programmierung mit Blockly gefällt mir besser, als das was der Home Assistant bietet.
  • Die strukturierte Objektsicht in ioBroker ist übersichtlicher als die Entitäten in Home Assistant. Home Assistant bringt in seinen Adaptern sehr viel Intelligenz mit, die es dem Anwender leicht machen soll, so werden nur relevante Datenfelder (in den Augen der Entwickler) in die Entitäten aufgenommen, viele andere aber nur als „versteckt“ gespeichert. Diese Bevormundung gibt es in ioBroker nicht, unter Objekte finden sich alle Daten so, wie sie vom Endgerät per MQTT angeliefert werden.
  • Die Menüstruktur ist in ioBroker sinnvoller aufgebaut als in Home Assistant. Um an die Objekte/Entitäten zu gelangen braucht es in Home Assistant drei Klicks in ioBroker nur einen.

Das sind natürlich ganz persönliche Empfindungen und meine Entscheidung für den ioBroker sagt nichts darüber aus, welches der Systeme nun besser wäre.

Den ioBroker hatte ich in Teil 9 dieser Artikelserie bereits kurz vorgestellt, von einigen Lesern kam darauf hin der Wunsch nach einer Schritt für Schritt Anleitung um einen ioBroker Server nachbauen zu können. Genau das ist der Inhalt dieses Artikels.

Grafana Dashboard

Was wird benötigt

Ohne einen eigenen Server geht es leider nicht, wir brauchen ein System, das 24 Stunden am Tag läuft, um die Daten der Endgeräte entgegen zu nehmen. Das kann ein physikalisches Gerät sein, wie zum Beispiel ein Raspberry Pi 4 oder eine virtuelle Maschine unter vmWare oder Proxmox. Ich selbst verwende eine virtuelle Maschine unter vmWare Workstation 16 Pro mit einem Debian 11 Linux Betriebssystem. Andere 64-Bit Linuxderivate wie Ubuntu oder Raspberry Pi OS (64-bit) werden aber ebenfalls funktionieren. Dazu werden wir folgende Software installieren:

  • ioBroker als Smarthome-System,
  • influxDB als Datenbank,
  • Grafana zur Visualisierung,
  • in ioBroker den Adapter mqtt als MQTT Broker,
  • in ioBroker den Adapter für InfluxDB.

Für die nachfolgenden Installationsschritte wird ein bereits fertig installiertes Linux Grundsystem angenommen. Der Server braucht keine grafische Oberfläche und auch keinen Monitor, die Installation des Betriebssystems kann also mit reiner Textkonsole erfolgen. Ein SSH-Zugang ist aber erforderlich, um die Befehle aus diesem Blogartikel gleich in ein Terminalfenster hinein kopieren zu können. Der Zugang auf ioBroker, influxDB und Grafana erfolgt dann per Browser von einem anderen Rechner aus.

Für die Installationen werden mehrfach Eingaben in einem Terminalfenster benötigt. Das kann auf folgende Arten bewerkstelligt werden:

  • direkt über die Textkonsole, wenn der Server keine grafische Oberfläche hat,
  • über ein virtuelles Konsolenfenster (Terminal) innerhalb einer grafischen Bedienoberfläche, oder
  • über einen SSH-Client (Putty in Windows oder ’ssh user@hostname‘ in Linux) von einem anderen Rechner aus.

Die Anmeldung kann als normaler User erfolgen (User ‚pi‘ auf dem Raspberry zum Beispiel), Kommandos, die Root-Rechte verlangen, werden mit sudo ausgeführt.

IoBroker installieren

Wir installieren ioBroker Version 4.0.
Link zur Hersteller-Installationsanleitung: https://www.iobroker.net/#de/documentation/install/linux.md

IoBroker wird über ein Script installiert. Um das downloaden zu können, wird Curl benötigt und nach einer initialen System-Aktualisierung installiert. Dann erfolgt der Download und die Installation von ioBroker.

In einem Terminalfenster geben wir der Reihe nach folgende Zeilen ein:

sudo apt update && sudo apt upgrade
sudo apt install curl
curl -sLf https://iobroker.net/install.sh | bash -

… und warten bis zu folgendem Ergebnis:

==========================================================================

ioBroker was installed successfully

Open http://192.168.0.209:8081 in a browser and start configuring!

==========================================================================

IoBroker konfigurieren

Unter der angegebenen Adresse können wir die Bedienoberfläche des ioBrokers nun aufrufen. Aber bitte nicht die Adresse in meinem Beispiel verwenden, sondern die des eigenen Servers mit :8081 am Ende!

  • Dann den Assistenten starten,
  • Sprache wählen und den Lizenzbestimmungen zustimmen,
  • Administratorpasswort vergeben,
  • keine Adminauthentifizierung, kein SSL,
  • Haupteinstellungen vornehmen wie Währungssymbol, Datumsformat, Land, Adresse, so dass die Standortkoordinaten ermittelt werden und
  • Konfiguration abschließen!

Ich empfehle auf das anschließend angebotene automatische Finden von Geräten und Diensten zu verzichten. Damit werden nur unnütze Dienste installiert.

MQTT Broker installieren

Jetzt haben wir den ioBroker als Schaltzentrale installiert und brauchen als nächstes einen MQTT Broker um Daten von Ahoy- oder OpenDTU entgegen nehmen zu können. Was ein MQTT Broker macht, habe ich in Teil 9 dieser Artikelserie bereits näher erklärt.

Die Installation erfolgt innerhalb von ioBroker in Form eines so genannten Adapters. Adapter sind in ioBroker Softwarekomponenten, die nicht fester Bestandteil von ioBroker selbst sind, aber aus einem reichhaltigen Vorrat von Softwarekomponenten heraus nachinstalliert werden können.

ioBroker Adapter für MQTT

Wir gehen also in der ioBroker Weboberfläche auf den Menüpunkt Adapter und geben im Suchfeld mqtt ein. Wie man sieht, gibt es einige Adapter, die mit MQTT zu tun haben, Sonoff zum Beispiel, das gerne für Shelly Geräte verwendet wird, aber mit Ahoy- oder OpenDTU nicht funktioniert. Wir brauchen den MQTT Broker/Client mit der Kurzbezeichnung mqtt. In diesem Kästchen klicken wir auf die drei senkrechten Punkte im blauen Kreis und dann auf das Pluszeichen zum Hinzufügen. Daraufhin wird der Adapter installiert und wir bekommen danach seine Einstellungsseite angezeigt. Hier brauchen wir nur eine einzige Einstellung vornehmen, ganz oben unter IP stellen wir Server/Broker ein und klicken auf Speichern und Schließen.

Installierte Adapter heißen in ioBroker Instanzen und unter dem Menüpunkt Instanzen sehen wir nun auch mqtt. Die mqtt Instanz müssen wir nun nur noch starten, das passiert durch einen Klick auf das rote Dreieck für Start, das daraufhin zu zwei grünen Balken wird für Stop.

ioBroker Instanzen

Damit haben wir einen MQTT Broker installiert und ioBroker mit ihm verbunden. Jetzt können Geräte Daten an den MQTT Broker senden.

Ahoy- oder OpenDTU mit dem MQTT Broker verbinden

OpenDTU MQTT Einstellungen

Jetzt veranlassen wir OpenDTU, die abgerufenen Wechselrichterdaten an ioBroker zu senden, genauer an der MQTT Broker, den wir eben in ioBroker installiert haben. Dazu gehen wir in die Weboberfläche von OpenDTU und dort auf Einstellungen – MQTT Einstellungen. Dazu müssen wir uns als Admin in OpenDTU anmelden. Wir aktivieren MQTT ganz oben und tragen unter Hostname die IP-Adresse unserer ioBroker Maschine ein, der Port bleibt auf 1883 und da wir im MQTT Broker keinen User und kein Passwort vergeben hatten, können wir die entsprechenden Felder hier leer lassen. Von Bedeutung ist noch das Basis Topic. MQTT ist ein Publish / Subscribe System, das nach Topics sortiert ist. Ein Publisher kann Daten zu einem bestimmten Topic an den Broker übergeben, der speichert diese, bis sie von neueren überschrieben werden und ein Subscriber kann Daten zu einem bestimmten Topic abonnieren. Die bekommt er immer dann zugeschickt, sobald ein Publisher neue Daten zu diesem Topic liefert.

Mein Basis Topic ist dtu/open/ und für ahoyDTU nehme ich dtu/ahoy/, so habe ich die Daten von beiden DTUs in einer gemeinsamen Struktur. Das Basis Topic ist jedoch frei wählbar.Das Veröffentlichungsintervall bestimmt wie oft MQTT-Nachrichten von der DTU an den Broker verschickt werden. Mit Speichern beenden wir die Konfiguration und ich empfehle einen Neustart der DTU (nicht des Wechselrichters!), also nehmen wir die DTU kurz vom Strom.

Bei AhoyDTU funktioniert die Konfiguration ganz genauso unter Settings – MQTT.

Wenn alles funktioniert hat, bekommen wir in OpenDTU unter Info – MQTT unten den Verbindungsstatus verbunden. Und in AhoyDTU im obersten Menüpunkt AhoyDTU unter System Infos einen Eintrag: MQTT is connected, xxx packets sent.

Nun wollen wir uns in ioBroker ansehen, was dort angekommen ist. Dazu gehen wir dort auf Objekte und klicken uns dann in den Verzeichnisbaum unter mqtt hinein. Je nach DTU-Typ und verwendeten Basis Topics sollten wir dort nun alle Daten finden können, die die DTU liefert und wird sollten beobachten können, wir die Werte bei einer Aktualisierung kurz grün werden.

ioBroker Objekte

Allerdings sehen wir im Moment nur den jeweils aktuellsten Wert, da wir noch keine Datenbank eingerichtet haben, um die Werte als Zeitreihe zu speichern.

InfluxDB installieren

Wir installieren InfluxDB OSS 2.7.
Link zur Herstellerdokumentation: https://docs.influxdata.com/influxdb/v2.7/install/?t=Linux

InfluxDB wird im ersten Schritt mit wget heruntergeladen und dann mit sudo dpkg installiert. Die beiden Eingaben werden wieder im Terminalfenster des Servers eingegeben:

wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.0-amd64.deb
sudo dpkg -i influxdb OSS-2.7.0-amd64.deb

Als nächstes können wir den InfluxDB Dienst starten:

sudo service influxdb start

Danach sollten wir den Server rebooten und schauen, ob der Service läuft:

sudo service influxdb status

In grüner Schrift muss active (running) kommen. (dann mit q beenden)

InfluxDB konfigurieren

InfluxDB Setup

Wer genauer wissen möchte, wie die Daten in InfluxDB-2 in Buckets organisiert werden, der liest hier: https://docs.influxdata.com/influxdb/v2.7/get-started/

Der Aufruf der InfluxDB Weboberfläche erfolgt mit http://192.168.0.209:8086, wobei hier wieder die IP-Adresse des eigenen Servers mit Port :8086 verwendet werden muss und nicht mein Beispiel.

Hier vergeben wir einen Usernamen, Passwort, Organisation und Bucket (gerne so wie im Beispiel).

Darauf hin wird ein Admin Token generiert, den wir auf jeden Fall weg kopieren und sichern sollten, da er nicht erneut angezeigt wird. Dann klicken wir auf Configure later – mehr muss nicht eingerichtet werden.

ioBroker mit InfluxDB verbinden

Nun möchten wir dem ioBroker Zugriff auf die Datenbank geben, damit er dort Daten ablegen kann. Dazu gehen wir wieder in die Weboberfläche des ioBroker und installieren dort den InfluxDB Adapter. Unter dem Menüpunkt Adapter geben wir influxdb ins Suchfeld ein und installieren, so wie wir es vorher mit mqtt getan haben, nun den Adapter mit der Bezeichnung Daten mit InfluxDB protokollieren und dem Kurznamen influxdb. Die drei Punkte klicken, dann das Pluszeichen und eine neue Instanz Auto hinzufügen.

ioBroker influxdb

Nach der Installation kommen die Instanzeinstellungen. Hier stellen wir zuerst die DB-Version auf 2.x um und tragen den Servernamen oder seine IP-Adresse ein. Wenn sich der ioBroker auf der selben Maschine wie die InfluxDB befindet ( was bei uns ja der Fall ist), können wir localhost stehen lassen. Nun kommen die Konfigurationsdaten, die wir eben bei der InfluxDB Konfiguration vergeben haben. Die Organisation ist klar und unter DB Name kommt der Bucketname. Jetzt brauchen wir noch einen Token. Hier können wir den Admin Token verwenden oder besser wir generieren uns in der InfluxDB-Weboberfläche schnell einen neuen Token. Dazu gehen wir im Menü der InfluxDB-Weboberfläche links auf den Pfeil nach oben und dann auf API Tokens. Dann auf Generate API TokenAll Access API Token. Den Token kopieren wir dann in die Zwischenablage und fügen ihn im ioBroker bei Token ein. Wichtig: Auch dieser Token sollte gesichert werden, er ist in influxDB nicht erneut abrufbar. Nun können wir in ioBroker die Verbindung testen, es sollte ein ok erscheinen. Im Reiter Standardeinstellungen gibt es die Möglichkeit, die Storage Vorhaltezeit (in InfluxDB Retention Time genannt) einzustellen. Falls der Serverspeicher nicht unendlich groß sein sollte, kann hier ein kleinerer Wert als 1 Jahr eingestellt werden, ein Monat zum Beispiel. Dann Speichern und Verlassen und die Instanz starten, falls das nicht von alleine geschieht.

Daten der DTU in die Datenbank speichern

Jetzt können wir die Daten, die bereits regelmäßig per MQTT in ioBroker ankommen, auch in die Datenbank einspeichern. Und das lässt sich für jeden Datenpunkt einzeln bestimmen. Wir gehen in ioBroker in Objekte und klicken uns unter mqtt in die Datenstruktur und nehmen beispielsweise bei OpenDTU unterhalb der Wechselrichterseriennummer und 0 den Punkt power. Am Ende der Zeile gibt es ein Zahnrad zur Konfiguration und in dem zugehörigen Fenster finden wir Einstellungen influxdb.0. Hier aktivieren wir mit dem Kästchen die Datenbankspeicherung. Nun gibt es einige Einstellungen mit denen man die Speicherung in der Datenbank beeinflussen kann. Von Interesse könnte der Punkt Alias-ID sein, damit können wir dem Datenpunkt einen kurzen sprechenden Namen geben, sonst wird als Name der gesamte ObjektPfad in die Datenbank geschrieben und später in Grafana angezeigt, also mqtt.0.dtu.open… Ich setze anstelle dessen für power einmal OpenDTU.AC-Leistung. Dann Speichern und Schließen. Wenn wir jetzt eine Minute warten und dann noch einmal auf das Zahnrad bei power klicken, dann werden wir unter Verlaufsdaten bereits einige aufgelaufene Werte sehen können und unter Diagramm eine Verlaufsgrafik. Der Weg in die Datenbank ist also keine Einbahnstraße, auch ioBroker hat Zugriff auf die gespeicherten Zeitreihen.

Installation von Grafana

Wir installieren Grafana OSS Version 10.0.
Link zur Herstellerdokumentation: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/

Vor der eigentlichen Installation wird ein Signatur Key heruntergeladen:

sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key

Dann binden wir ein Repository ein:

echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

Die Paketlisten müssen aktualisiert werden:

sudo apt update

Dann kann Grafana OSS installiert werden:

sudo apt install grafana

Danach bereiten wir Grafana für den Autostart nach einem Serverboot vor:

sudo systemctl daemon-reload
sudo systemctl enable grafana-server

Und starten den Grafana-Server Dienst:

sudo systemctl start grafana-server

Grafana konfigurieren

Die Anmeldung per Webbrowser an Grafana erfolgt unter https://192.168.0.209:3000. Hier wieder die Adresse des eigenen Servers einsetzen und Port 3000 verwenden!
User und Passwort sind beide initial admin. Das Passwort muss nach der Anmeldung geändert werden.

Dann müssen wir in Grafana die InfluxDB als Datenquelle hinzufügen. Das geht im Menü über Connections und dann wählen wir unter den möglichen Datenquellen die InfluxDB aus. Oben rechts gehen wir auf Create a InfluxDB data source und hier konfigurieren wir den Zugang zur InfluxDB Datenbank. Als Query Language stellen wir Flux ein, und setzen die URL auf localhost mit Port 8086. (Vorsicht, in diesem Feld meint man, schon einen passenden Eintrag zu sehen, das ist aber nur ein Beispiel als Hintergrundanzeige. Deshalb unbedingt in das Feld klicken und http://localhost:8086 oder eine entsprechend andere Adresse eintragen.) Dann gehen nach unten zu InfluxDB Details. Hier werden die Organisation und der Bucket eingegeben, so wie wir sie in InfluxDB konfiguriert hatten und als Token nehmen wir den selbst generierten API-Token, den wir auch in ioBroker verwendet haben.

Mehr zur Anbindung an eine InfluxDB gibt es im Grafana Handbuch: https://grafana.com/docs/grafana/latest/datasources/influxdb/.

Ein Grafana Dashboard erstellen

Ein neues Dashboard erstellen wir in Grafana über den Menüpunkt Dashboards – New – New Dashboard – Add Visualisation. Hier wählen wir unsere bereits eingetragene Data Source aus und befinden uns dann auf der Konfigurationsseite für ein neues Dashboard.

Und jetzt wird es leider etwas kompliziert, denn Grafana bietet auch in der Version 10.0 noch keinen komfortablen Datenbrowser für die Flux-Abfragesprache, der vergleichbar wäre mit der früheren Abfrage mit InfluxDB in der Version 1. Grafana erwartet die Eingabe eines mehrzeiligen Programmtextes in Flux-Sprache, was einen neuen Anwender erst mal total überfordert. Aber wir können uns behelfen, in dem wir die Datenabfrage in der InfluxDB Weboberfläche generieren und den erzeugten Programmtext dann in Grafana hinein kopieren. Und so funktioniert es:

Wir öffnen die InfluxDB Weboberfläche und gehen über das Menü in den Data Explorer. Dieser Data Explorer funktioniert für mich in der Version 2.7 leider nicht, aber es gibt oben rechts einen Schalter Switch to old Data Explorer und mit dem klappt es.

Wir wählen in den Auswahlfeldern den Bucket (iobroker), unser vorgefertigtes Measurement (OpenDTU.AC-Leistung) und unter field den Punkt value aus und gehen auf Submit. Und schon sehen wir eine Grafik der OpenDTU Messwerte. Dann drücken wir Script Editor und bekommen den dazugehörigen Flux-Code angezeigt, den wir in die Zwischenablage kopieren können. Für mein Beispiel schaut der Flux-Code wie folgt aus:

from(bucket: "iobroker")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "OpenDTU.AC-Leistung")
|> filter(fn: (r) => r["_field"] == "value")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
Panel im Grafana Dash Board

Und diesen Code kopieren wir jetzt über die Zwischenablage in Grafana bei Data Source InfluxDB ins Eingabefeld bei A, wählen dazu oben einen passenden Zeitrahmen aus, zum Beispiel Today und klicken rechts daneben auf Refresh dashboard und schon wird unsere Grafik angezeigt. Die können wir in der rechten Spalte nach Belieben aufhübschen und mit Apply wird die Grafik ins Dashboard übernommen und sollte dort auch gespeichert werden (Diskettensympol in der Kopfleiste). Weitere Grafiken (Panels) können dann mit Add dem Dashboard auf die gleiche Art und Weise hinzugefügt werden. Auf die verschiedenen Paneltypen und die schier unüberschaubaren Konfigurationsmöglichkeiten in Grafana einzugehen, würde den Umfang dieses Artikels bei weitem sprengen. Deshalb kann ich nur raten, die Möglichkeiten einfach spielerisch auszuprobieren. Ein Tipp aber noch: Damit sich das fertige Dashboard im Browser automatisch aktualisiert und ständig die neusten Daten anzeigt, kann man oben rechts im Dashboardfenster einen Autorefreshintervall einstellen, zum Beispiel 5 Sekunden.

So lässt sich Zug um Zug ein umfangreiches und ansprechendes Dashboard aufbauen, so wie mein Beispiel am Anfang dieses Artikels. Dazu wird es nötig sein, weitere Datenpunkte, wie zum Beispiel DC-Werte oder die Temperatur, die bereits von OpenDTU oder Ahoy in den ioBroker geliefert werden, in der Datenbank zu speichern. Daraus lassen sich dann weitere Grafiken im Grafana Dashboard speisen.

Datenfluss

Abschließend noch eine kleine Handzeichnung von mir, die ein bisschen Klarheit darüber bringen soll, wie die Daten genau von einer zur anderen Komponente laufen. Vielleicht bietet das etwas Hilfe bei der Fehlersuche, wenn hinten mal nicht das ankommt, was man vorne hineinzustecken glaubt.

Grafana Datenfluss

Beginnen wir ganz links bei einer Ahoy- oder OpenDTU (das kann genau so gut auch ein Shelly sein oder irgend ein anderes Gerät, das MQTT spricht). Die DTU ist Publisher an einem MQTT Broker, übergibt also ständig Daten an diesen, so lang neue anfallen (bei Wechselrichtern also nur tagsüber). Der MQTT Broker ist Bestandteil des ioBroker und gibt die empfangenen Daten weiter an die Objekt-Datenstruktur im ioBroker. Unter Objekte können wir die ansehen und der ioBroker kann auch damit arbeiten, zum Beispiel über (noch zu installierende) Visualisierungen oder Programmierungen. Unter Verwendung des InfluxDB-Connectors gibt der ioBroker nun ausgewählte Datenpunkte weiter in die InfluxDB Datenbank, die sich außerhalb von ioBroker befindet. InfluxDB wird alle übergebenen Daten in Zeitreihen speichern und zwar so lange bis die eingestellte Retention Time erreicht ist, dann werden jeweils ältere Daten gelöscht. Grafana greift nun – autorisiert durch einen Token – als Client auf die InfluxDB zu und holt sich die Daten, die es zur Anzeige des Dashboards braucht.

Weitere Artikel in dieser Kategorie:

29 Kommentare

  1. Tito

    Nice, auf sowas habe ich gewartet. Mit Zeit und Muße mal nachbauen… Danke!

    Antworten
  2. Anonymous

    Danke für diese Anleitung- genau so eine Schritt für Schritt Anleitung habe ich benötigt! Lediglich mit der InfluxDB gab es bei der Installation Schwierigkeiten, da ich am PI400 ein OS32bit drauf hatte ;-)

    Antworten
  3. heromic

    Respekt !
    Klasse Anleitung und super gut beschrieben.
    Mit ein wenig Grundkenntnissen sollte es jeder hinbekommen.
    Wegen dem OS auf dem Pi bin ich auch gestolpert aber die Fehlermeldung war dann eindeutig ;-)

    Antworten
  4. ProgrammingEngineer

    Bitte eine Grundvorraussetzung erfüllen: 64-Bit OS! Ansonsten kann influxdb 2.x nicht installiert werden, sondern nur die 1.x variante. Die 1.x variante hat kein WebUI und ist somit für anfänger kaum zu bedienen. Zudem funktioniert die aggregatewindows funktion nicht so gut mit 1.x.

    Antworten
    1. Helmut (Beitrag Autor)

      Vielen Dank für den Hinweis. Ich hab das im Artikel vermerkt.

      Antworten
  5. Klaus Lucas

    Du schreibst:
    >>>>>>>
    Hier können wir den Admin Token verwenden oder besser wir generieren uns in der InfluxDB-Weboberfläche schnell einen neuen Token. Dazu gehen wir im Menü des ioBrokers links auf den Pfeil nach oben und dann auf API Tokens. Dann auf Generate API Token – All Access API Token.
    <<<<<<<
    In der Erklärung ist "Menü des ioBrokers" falsch und muss heißen "Menü der InfluxDB-Weboberfläche"

    Antworten
    1. Helmut (Beitrag Autor)

      Da hast Du vollkommen Recht. Vielen Dank für den Hinweis, ich hab es im Artikel korrigiert.

      Antworten
  6. zuck

    Hallo,

    Tolle Artikel. Kennen Sie solaranzeige.de ? Es werden sehr viele Wechselrichter unterstützt.

    Solaranzeige arbeitet auch mit Grafana. Habe es mit Ihrer anleitung hier auch geschafft ein

    Dashbord hinzuzufügen dieses: https://grafana.com/grafana/dashboards/18819-opendtu-flux/

    aber jetzt verstehe ich noch nicht so ganz wie ich den rest hinbekomme.

    Würde auch gerne sechs PV Module angezeigt bekommen.

    MfG

    Antworten
    1. Helmut (Beitrag Autor)

      Das sollte kein Problem sein wenn jedes Modul an einem eigenen Wechselrichtereingang steckt. Alle Daten, die Open-(Ahoy-)DTU liefert, können auch per Grafana visualisiert werden. Das sind auch die DC-Werte der einzelnen Eingänge.

      Antworten
  7. Martin

    Danke für die gute Anleitung!

    Antworten
  8. Erich Hirsch

    sudo dpkg -i influxdb OSS-2.7.0-amd64.deb mit dem Befehl erhalte ich folgende Fehlermeldung:
    Fehler: Auf das Archiv »influxdb« kann nicht zugegriffen werden: Datei oder Verzeichnis nicht gefunden

    Was aknn ich tun?

    Antworten
    1. Helmut (Beitrag Autor)

      Hallo Erich, da fallen mir drei mögliche Ursachen ein:

      • der Download zuvor ist schief gegangen,
      • dbkg wird aus einem anderen Verzeichnis gestartet und kann das deb-Packet nicht finden oder
      • das Release heißt inzwischen nicht mehr OSS-2.7.0, sondern hat eine andere Bezeichnung

      Schau am besten in die Influxdb-Dokumentation, die ist im Artikel verlinkt.
      Viele Grüße

      Antworten
      1. denni

        Hallo Helmut,

        das Problem hatte ich heute auch. Bei mir lag es daran, das die Hardware ein Raspi ist und man dann nicht den .amd64 Zweig nehmen darf, sondern den .arm64 Zweig nehmen muss.

        Gruß Dennis

        Antworten
        1. Helmut (Beitrag Autor)

          Genau, weil der Raspberry keinen Intelprozessor hat.

          Antworten
  9. Chris

    Vielen Dank für diesen sehr hilfreichen Artikel!

    Ich habe als Hardware leider nur einen

    Raspberry 2B (1GB RAM, 32-bit CPU, 4 ARM-Kerne)

    und poste hier der Vollständigkeit halber mal, dass man damit auch ioBroker, InfluxDB (1.6.7) und Grafana (10.1.2). Dazu sei gesagt, dass mit Grafana 10 sich die Queries und Dashboards auch von alleine machen. Ich brauche dafür kein Webinterface von InfluxDB 2.x.

    Ich bin im Grunde der Anleitung oben gefolgt, und habe nur bei folgenden Stellen kleine Änderungen vorgenommen:

    Installation auf Raspbian GNU/Linux 11 (bullseye) – 32bit OS

    InfluxDB: Version 2.0 requires 64bit, e.g. Raspberry4..
    So we roll with 1.6…:

    sudo apt install influxdb
    # enable http in config
    sudo nano /etc/influxdb/influxdb.conf

    sudo service influxdb start
    sudo service influxdb status

    ## check version
    curl -sL -I localhost:8086/ping

    ## make ‚influx‘ command available:
    sudo apt install influxdb-client

    ## influx admin account anlegen
    influx
    –>
    CREATE USER admin WITH PASSWORD ‚influx‘ WITH ALL PRIVILEGES
    exit
    ## influx-daemon neu starten
    sudo systemctl restart influxdb

    –> unter Iobroker/GUI-> Objects die interessanten Werte raussuchen und auf Zahnrad klicken — siehe Anleitung; jetzt landen diese Werte in der influxdb

    ## grafana herunterladen
    sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
    echo „deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main“ | sudo tee -a /etc/apt/sources.list.d/grafana.list
    sudo apt update
    sudo apt install grafana
    sudo systemctl daemon-reload
    sudo systemctl enable grafana-server
    sudo systemctl start grafana-server

    Grafana: https://192.168.0.2:3000 (user: admin, pw: admin (default))

    ## wir finden heraus welche DB in influx von ioBroker angelegt wurde
    influx
    –> SHOW DATABASES
    #..shows ‚iobroker‘ as DB

    Antworten
    1. Helmut (Beitrag Autor)

      Prima, dass das auch am 2B gut läuft. Vielen Dank für die Infos.

      Antworten
    2. Peter

      Danke für die Anleitung, Helmut. Chris, besonderen Dank an dich, hatte für meinen Pi2B somit doch noch eine Verwendung.
      Wer das per copy&paste nachmachen will muss beachten, die einfachen und doppelten Anführungszeichen auszutauschen gehen normale Anführungszeichen und Hochkommata. Die werden im obigen Text nicht richtig dargestellt.
      Chris, hätte noch eine Frage an dich. Du schreibst
      “ dass mit Grafana 10 sich die Queries und Dashboards auch von alleine machen.“
      Wie geht das bitte? Ich bin Anfänger in Grafana, und hab echt keine Ahnung, was ich da machen müsste.

      Antworten
      1. Helmut (Beitrag Autor)

        Was das Copy&Paste angeht, nicht den Beispielcode aus dem Artikel verwenden, sondern vom eigenen InfluxDB nach Grafana kopieren. Das sollte unter Linux problemlos funktionieren.

        Antworten
        1. Peter

          Nach @Chris‘ Methode wird Influx 1.6 installiert (ist ja ein alter Pie2 mit 32bit), da ist noch nix mit Web-Interface.
          Und Grafana sagt bei mir (beim Versuch ein neues Dashboard aus InfluxDB anzulegen) nur
          „Status: 500. Message: InfluxDB returned error: error parsing query: found FROM, expected identifier, string, number, bool at line 1, char 9“.
          Für mich als absoluten Anfänger schwer zu beurteilen, woran es liegt.

          Antworten
          1. Helmut (Beitrag Autor)

            Ah, sorry, ich dachte, das bezog sich auf den Artikel. In dem geht es ausschließlich um InfluxDB 2, das ist komplett anders als das alte 1.x.

  10. Detlef

    Danke. Wenn auch mit ein wenig probieren, hat funktioniert. Besser als all die Videos. Wenn ich jetzt noch die Verbindung zum Shelly pro 3em hinbekomme bin ich glücklich.

    Antworten
  11. Peter

    Ah jetzt, gefunden: Man muss in Grafana beim Anlegen eines neuen Dashboards unterhalb des Panels – dort ist das Eigenschaftsfeld – auf „Query“ gehen und in der Zeile „from“ auf das Feld „select measurement“ gehen. Dort nun einen der Werte aus der Influx-DB auswählen. Schon wird er im Panel angezeigt.

    Antworten
  12. Peter

    Wenn man nur den Verlauf eines bestimmten Tages gelegentlich nachschauen will, braucht man eigentlich auch gar kein Grafana. Stattdessen in ioBroker in „Objekte“ auf das Zahnrad eines der selbst ausgewählten Objekte klicken und dann in der blauen Leiste auf „Diagramm“. Dort den gewünschten Zeitraum auswählen.
    Für mich zumindest ist das völlig ausreichend.

    Antworten
    1. Helmut (Beitrag Autor)

      Dafür allein wäre Grafana wohl wirklich Verschwendung. Dann kann man auch Home Assistant nehmen. Grafana bietet halt volle Freiheit, das optisch ansprechend zu gestalten, was einem persönlich vorschwebt. Ich hab zum Beispiel auch immer gerne mit die tägliche Spitzenleistung vor Augen und die höchste Wechselrichtertemperatur.

      Antworten
  13. Edwin

    Hallo Helmut,
    ich möchte mich hierzu auch erst einmal recht herzlich für die Arbeit bedanken, die darin steckt. Für mich als absoluten Neuling (am Freitagabend meinen ersten RPi5 erhalten) auch gut nachvollziehbar und in kurzer Zeit umsetzbar. Was nicht direkt funktionierte lag eher an mir, weil ich es einfach überlesen hatte. Die Zeitverläufe in Grafana sind so, wie man es sich als Ingenieur wünscht – sachlich, nüchtern, gute Abbildung der Werte. Toll, ich bin begeistert. Die Realisierung der Waschmaschinensteuerung aus Teil 9 werde ich auch noch umsetzen, dann erst bekommt das Ganze ja einen Sinn.

    Antworten
  14. Peter

    Absolute Klasse ! Sehr verständnisvoll geschrieben.
    Großes Lob an den Verfasser.

    Antworten
  15. Micha G.

    Hallo in die Runde, ich möchte einige Test-Measurements aus der influxDB samt seinen Daten entfernen. Dazu habe ich folgenden Befehl erfolgreich mit der Windows API for influx umgesetzt :

    .\influx.exe delete –bucket iobroker –start ‚1970-01-01T00:00:00Z‘ –stop ‚2024-03-19T21:00:00Z‘ –predicate ‚_measurement=“Tagesertrag“‚

    Dadurch wurde wie gewünscht „Tagesertrag“ gelöscht. Nun habe ich aber noch einige anderen Test-Measurements, welche ich rausbekommen will. Diese heißen z.B. „OpenDTU.AC-Leistung“ wie in Helmuts sehr guter Anleitung oder auch „Außentemperatur“ mit „ß“ oder auch andere Namen mit Punkttrennung wie in „OpenDTU.AC-Leistung“ oder auch Namen mit Leerzeichen. Leider kann ich diese nicht löschen.

    Hier kommen Backticks ins Spiel – aber ich komme nicht zum Ergebnis, der Syntax stimmt nicht. Kann mir jemand einen Tip geben , wie der Powershell Befehl für eines der o.g. Beispiele heißen muß ? Vor lauter Anführungszeichen, Hochkommas seh ich nicht mehr durch.

    Antworten
  16. Stefan

    Hallo,
    leider kommt beim installieren mit dpkg der InfluxDB auf meinem Raspberry Pi 4 (1GB) folgende Meldung:

    pi@raspberrypi:~ $ sudo dpkg -i influxdb OSS-2.7.0-arm64.deb
    dpkg: error: cannot access archive ‚influxdb‘: No such file or directory
    pi@raspberrypi:~ $

    Den Hinweis in den Kommentaren die arm-64 Versioin zu nehmen habe ich gelsen und versucht, jedoch mit dem selben Ergebniss.

    Ich weiss jetzt nicht mehr weiter und hänge an dieser Stelle fest. ioBroker läuft, mir fehlt jetzt die db für grafana.

    vlg – Stefan

    Antworten
    1. Helmut (Beitrag Autor)

      Hallo Stefan,
      hast Du denn überhaupt ein 64-Bit Betriebssystem auf Deinem Raspberry Pi installiert?

      Antworten

Schreiben Sie einen Kommentar

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