Installationsanleitung

Vorüberlegungen

Ich hatte das Ziel alles Notwendige über NodeRed, Influx und Grafana zu lernen um die wesentlichen Daten der Photovoltaikanlage zu visualisieren. während der Umsetzung bin ich über viele Stolpersteine gefallen und möchte die Lösungen über diese Anleitung Teilen. Gerne können wir hier oder im zugehörigen Thread im Forum über aufkommende Fragen diskutieren. Die Wahl viel bei mir auf NodeRed, da in naher Zukunft noch die gesamte Haustechnik (Wärmepumpe, KNX und Co.) dazu kommen wird.

Der hier verwendete Wechselrichter ist ein: Symo 6.0-3-M


Eine fertige, und sehr coole Alternative zu dem hier beschriebenen Weg wäre das Projekt Solaranzeige. Das solltet ihr euch in jedem Fall ansehen bevor ihr eine eigene Lösung aufsetzt.

Teil 1: Aufsetzen des Raspberry Pi`s

In diesem Abschnitt geht es um das Aufsetzen des Raspberrys mit Raspbian. Da dieses Thema im Internet an sehr vielen Stellen schon beschrieben ist möchte ich hier nicht ins Detail gehen sondern nur gute Howtos verlinken und Hinweise geben die hier im speziellen interessant sind.

Ich habe mich im wesentlichen an folgendes Howto gehalten: https://www.raspifun.de/viewtopic.php?t=4

Es folgen ein paar Infos zu den Schritten die ich durchgeführt habe. Die Datails findet ihr in dem genannten Link.

Auswahl der Hardware:

Derzeit läuft mein system auf einem Raspberry Pi 3 Model B Rev 1.2 mit einer 32GB SD karte. In punkto Leistung scheint das völlig ausreichend zu sein.

Installation Raspberry Pi OS (früher Raspbian):

Ich habe mich für das Raspberry Pi OS in der Lite Version entschieden.
Den aktuellen Download findet ihr hier: https://www.raspberrypi.org/downloads/raspberry-pi-os/


Für die Instalation auf der SD-Karte habe ich den Raspberry Pi imager nutzen. Für die Lite Version müsst ihr auf Raspbian (other) klicken.

Vor dem ersten Start eine Datei mit dem Namen "SSH" auf dem /boot/ Laufwerk erzeugen um später eine Verbindung per SSH aufbauen zu können

SD-Karte in den Raspberry PI stecken und das System das erste mal booten lassen

Erste Verbindung mit Putty herstellen

Download Putty und aufrufender SSH Verbindung über die IP

Benutzer: pi, Passwort:raspberry

Update der Paketliste und installation der Updates

Bash
sudo apt-get update && sudo apt-get upgrade
sudo apt-get dist-upgrade


Grundkonfiguration über raspi-config

Bash
sudo raspi-config


- Change User Password -> Passwort des Nutzers pi ändern. Dies als Standard zu lassen ist eher keine gute Idee

- Networking Options / Hostename -> gebt eurem System einen sinnvollen Namen

- Localisation Options / Change Locale -> anpassen auf de_DE.UTF-8 UTF-8

- Localisation Options / Timezone -> Berlin

- Advanced Options / Memory Split -> 16Mb

- Raspi Konfig beenden

Tools installieren:

Code
sudo apt-get install vim

Weitere Punkte die ich aus dem Howto durchgeführt habe:

- (8) Login Benutzer Root deaktivieren

- (9) Installation von mc (Midnight Commander)


Reboot des Systems

- Neustart des Systems mit:

Code
sudo reboot



Nun solltet ihr ein funktionsfähiges Raspbian System haben :thumbup:

Teil 2: Installation Node-Red

Im zweiten Abschnitt geht es um die Installation und Grundkonfiguration von Node-Red.


Auch hier ist schon alles im Internet beschrieben:


Installation Node-Red: https://nodered.org/docs/getting-started/raspberrypi

Absicherung: https://nodered.org/docs/user-…runtime/securing-node-red

Installation Node-Red Admin Tool: https://nodered.org/docs/user-guide/node-red-admin

Hier aber noch einmal die wesentlichen Schritte:

Installation Node-Red

Code
sudo apt-get install build-essential


Code
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Absichern von Node-Red

- Node-Red Admin installieren (bei mir waren hier einige Fehlermeldungen zu sehen, scheint aber normal zu sein?)

Code
sudo npm install -g node-red-admin


- Passwort hash erzeugen:

Code
node-red-admin hash-pw


adminAuth einkommentieren und Passwort hash einfügen (nähere Infos siehe obigen Link)

Code
nano .node-red/settings.js


Autostart beim Systemstart

Code
sudo systemctl enable nodered.service


Starten von Node-Red

Code
node-red-start


Nun solltet ihr euch mit dem Benutzernamen und Passwort in den Node-Red Editor einloggen können :thumbup:


IP:1880 oder HOSTNAME:1880



Teil 3: Installation der InlufxDB

Im dritten Abschnit geht es um die Installation und Grundkonfiguration der InfluxDB.


Auch hier gibt es natürlich wieder gute Anleitungen: https://docs.influxdata.com/in…cation_and_authorization/

Influx DB installieren:

Code
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
Code
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Code
sudo apt update
Code
sudo apt install influxdb


Influx bei Systemstart aktivieren:

Code
sudo systemctl enable influxdb


Influx starten:

Code
sudo systemctl start influxdb


Influx Console starten um User und Datenbanken anzulegen:

Code
influx


Admin User mit allen Rechten anlegen:

Code
CREATE USER admin WITH PASSWORD 'HIERPASSWORTEINTRAGEN' WITH ALL PRIVILEGES



Datenbank und Datenbank Nutzer anlegen (ich habe hier für beides den Namen fronius verwendet)

Code
CREATE DATABASE fronius
Code
CREATE USER fronius WITH PASSWORD 'HIERPASSWORTEINTRAGEN'
Code
GRANT ALL ON "fronius" TO "fronius"
Code
exit


HTTP Authentifizierung aktivieren

Code
sudo nano /etc/influxdb/influxdb.conf


Hier müssen im Abschnitt [http] die folgende Zeilen überprüft und gegebenenfalls muss die Raute # entfernt werden werden.

enabled = true

bind-address = „:8086“

auth-enabled = true


Influx Neustarten:

Code
sudo systemctl restart influxdb



Nun solltet ihr eine laufende InfluxDB haben. In den folgenden Abschnitten werden hier die Daten gespeichert :thumbup:



Teil 4: Installation oder Upgrade von Grafana

In diesem Abschnitt geht es um die Installation von Grafana. Bitte checkt vor der Installation ob die Version im Link (der mit dem Datum) die aktuelle ist.

Die aktuelle Version findet ihr hier: https://grafana.com/grafana/download?platform=arm

Ein Update könnt ihr im übrigen genauso durchführen. Den ersten Schritt benötigt ihr dann nicht mehr.

Installation:

Code
sudo apt-get install -y adduser libfontconfig1
Code
wget https://dl.grafana.com/oss/release/grafana-rpi_7.3.3_armhf.deb (Stand 23.11.2020)
Code
sudo dpkg -i grafana-rpi_7.3.3_armhf.deb


Starten bei Systemstart

Code
sudo systemctl enable grafana-server

Starten

Code
sudo systemctl start grafana-server


Nun solltet ihr Grafana über den Browser erreichen können: http://IP-Adresse:3000/login oder http://Hostname:3000/login :thumbup:


Teil 5: Konfiguration NodeRed (Modbus TCP)

In diesen Blog Eintrag geht um das Auslesen der Daten per Modbus TCP mit NodeRed. Grundsätzlich fuktioniert das schon. In einem nächsten Schritt werde ich die ausgelesenen Daten noch verifizieren. An der ein oder anderen Stelle bin ich mir noch unsicher ob die Werte plausibel sind.

Grundlagen

Die Fronius Wechselrichter stellen mehrere Schnittstellen zur Abfrage der Systemdaten zur Verfügung:

  • Fronius Push Service
  • Fronius Solar API (JSON) (hierzu gibt es auch eine kurze Anleitung die aber nicht weiter gepflegt wird)
  • Modbus RTU
  • Modbus TCP (hier verwendet)

Auf dieser Internetseite findet ihr die Dokumentation der Schnittstellen: https://www.fronius.com/de/sol…schnittstellen/modbus-tcp


Unter diesem Link findet ihr eine .zip Datei mit Tabellen der Modbus Register: www.fronius.com/QR-link/0006


In den folgenden Tabellen hatte ich mir damals alle relevanten Informationen aus der Schnittstellen Spezifikation rausgesucht:

Meter_Register_Map_Float_v1.0.pdf
Inverter_Register_Map_Float_v1.0_with_SYMOHYBRID_MODEL_124.pdf

  • gelb markierte Zeilen habe ich nicht verwendet
  • grün markierte Zeilen werden verwendet
  • da ich mehrere Register gleichzeitig abfrage sind in der Spalte C und D der Offset vom Startregister eingetragen um die abgefragten Register aus dem Rückgabewert wieder auseinander sortieren zu können

Modbus Schnittstelle aktivieren

  • geht mit einen Browser über die IP-Adresse auf die Seite eures Wechselrichters
  • Rechts unten auf Einstellungen
  • Login als admin. Das Passwort solltet ihr von eurem Installateur bekommen haben
  • Menüpunkt Modbus auswählen
  • folgende Einstellungen wählen:

NodeRed aufrufen und konfigurieren

  • Ruft über euren Browser NodeRed auf: IP:1880 oder HOSTNAME:1880 -> Login mit den von euch definierten Benutzerdaten
  • Installation der Erweitungen über Palette verwalten / installeren:
    • node-red-contrib-influxdb
    • node-red-contrib-modbus
    • node-red-contrib-cron-plus
    • node-red-contrib-string
  • Dashboard Nutzung:
    • node-red-dashboard
    • node-red-contrib-ui-led
  • Tasmota Ansteuerung
    • node-red-contrib-aedes


Aufbau des Flows


Import des Flows


Ihr könnt folgenden Flow importieren, jedoch müsst ihr diese Punkte Anpassen:


  • IP-Adresse des Wechselrichters der modbus-read Nodes
  • Datenbank, Benutzername und Passwort der influxdb out Nodes
  • Einmaliges eintragen der Zählerstände uns Ausführen der Initialisierung der Tages- und Monatsauswertung


PV_Logging_2020_11_25.txt

Teil 6: Konfiguration Grafana

Hier meine Konfiguration des Grafa Dashboards. Diese Könnt ihr über "+ -> import" importiertieren


Analyse Photovoltaik_2020_10_21.txt

Teil 7: Backup der Daten


Auf der folgenden Seite ist beschrieben wie ihr ein Backup der Influx Datenbank erstellen könnt:

https://docs.influxdata.com/in…ation/backup_and_restore/


Folgenden Befehl nutze ich:

Code
sudo influxd backup -portable /home/pi/influxbackup_20200430



Damit ihr den Ordner danach mit dem User pi verschieben könnt müsst ihr die Rechte des Ordners anpassen:

Code
sudo chown -R pi:pi /home/pi/influxbackup_20200430/



Teil 8: Schonen der SD-Karte

Damit die vielen Schreibzugriffe nicht die SD Karte unnötig belasten hier ein paar Möglichkeiten diese zu reduzieren.


Swap deaktivieren:


Swapping-Dienst stoppen:

Code
sudo service dphys-swapfile stop


Prüfen ob das Swapping abgeschaltet ist:

Code
free


Stehen hier bei Swap nur noch Nullen, kann der Swap-Dienst deaktiviert werden.

Code
sudo systemctl disable dphys-swapfile


Alternativ Swap Dienst entfernen

Code
sudo apt-get purge dphys-swapfile



Todo:


Teil 7 erweitern um automatisierung, Nodered und Grafana

Changelog:

22.11.2020: Möglichkeit der SD-Karten erstellung mit dem Raspberry pi Imager hinzugefügt
21.10.2020: Initialisierung Tages- und Monatswerte eingefügt, Reduzierung der Schreibzugriffe auf die Influx Datenbank, Grafana Konfig eingefügt
16.06.2020: Link zum Garafana Paket aktualisiert
30.04.2020: Backup hinzugefügt
05.03.2020: Fehler bei den Monatswerten Korrigiert

17.02.2020: Speicherung der Tages- und Monatswerte angepasst

10.02.2020: Fehler beim Auslesen der Spannung, Strom, Leistung der Strings korrigiert.

09.02.2020: Fehler beim Auslesen der Insgesamt produzierten Energie der Strings korrigiert. Jetzt sind Werte plausibel

09.02.2020: Teil 1 bis Teil 4 in einen Blog Eintrag zusammengeführt, Teil 5 (Modbus) beschrieben

Wechselrichter:

Fronius Symo 6.0-3-M


Verschaltung/Module:

MPPT1:
Hausdach 50 Grad Neigung, 185 Grad Süd: 7 * Axitec AXIworldpremium X HC BLK 400 Wp

MPPT2 (Serielle Verschaltung):

Garagendach 45 Grad Neigung, 95Grad Ost: 5 * Axitec AXIworldpremium X HC BLK 400 Wp

Garagendach 45 Grad Neigung, 275Grad West: 5 * Axitec AXIworldpremium X HC BLK 400 Wp mit Tigo TS4-R-O

Datenlogger mit Node-Red InfluxDB und Grafana