Arbeiten an, mit der Elektrik

Nehmen Sie nur solche Arbeiten in Angriff, bei denen Sie sich über die ordnungsgemäße und sichere Ausführung absolut im Klaren sind. Hier dürfen Sie nicht raten oder schlussfolgern, sondern Sie müssen wissen, was Sie tun. Sollten Sie an irgendeinem Punkt unsicher werden, unterbrechen Sie die Arbeit und holen Sie sich fachlich versierte Unterstützung. Das ist keine Schande, geht auch nicht gegen die Heimwerker-Ehre, sondern zeigt Vernunft und Verantwortungsbewusstsein. Arbeiten Sie nur an spannungsfreien Stromkreisen. Das heißt: Schalten Sie die Sicherung des Stromkreises aus, sichern Sie sie gegen Wiedereinschalten und vergewissern Sie sich durch Nachmessen, dass der Stromkreis keine Spannung führt.

Ich übernehme ausdrücklich keine Garantie auf die sichere Funktionsweise der Sofware. Sie wurde nach besten Gewissen und Wissen programmiert.


Solarsteuerung

Nach der Installation einer Solaranlage, in meinem Fall eine Inselanlage, besteht oft der Wunsch Stromkreise oder Lasten gezielt zu schalten. Dies war auch mein Wunsch und so war wieder ein Projekt geboren.

Wenn Ihr den Raspberry eh schon als Datengrab verwendet, schaut hier , bietet es sich an die Daten für die Steuerung einer Relaiskarte zu verwenden. Die Installation der Software habe ich weiter unten noch einmal versucht zu erläutern.

Die Solarsteuerung bezieht ihre Daten aus einer InfluxDb welche bei mir über die geflashten Shine-F versorgt werden. Wer andere Lösungen, z.B. RS485 erfolgreich am laufen hat, kann sich bei mir melden und wir versuchen diese Version zu integrieren.


Hardware

Wir benötigen folgende Bauteile:

  1. 8-Kanal Relaiskarte für Raspberry
  2. Raspberry 4 mit 4MB Speicher
  3. SD-Karte 64GB
  4. Netzteil 230V/5VDC / MEAN WELL Netzteil 12W 5V 2,4A
  5. Sicherungskasten Aufputz IP65 Feuchtraum Verteiler Kleinverteiler 1-reihig 18 Module
  6. Kleinteile, Reihenklemmen, Kabel... usw.
  7. Schütze, Koppelrelais da die verbauten Relais der Karte nicht für Leistungen über 6A geeignet sind und ich von einer 230V / 24V Vermischung auf der Karte abrate.

Der Aufbau ist relativ einfach. Raspberry auf die Relaiskarte montieren. Relaiskarte in den Sicherungskasten hängen, Netzteil anschließen.


Software

Die Software besteht aus einem Script "steuerung.py", geschrieben in Python3, welches als Dienst nach dem Einsschalten des Raspberry automatisch startet. Damit wir die Software mit unseren Daten füttern können, hab ich eine Webseite erstellt.


Hier die Software als ZIP zum downloaden

Nachdem wir den Webserver installiert haben, entpacken wir die Zip-Datei in das Verzeichnis
/var/www/html/solarsteuerung

Wenn ihr den User "pi" benutzt, sollten alle Dateien die Rechte pi:www-data haben. Falls ihr euren User "fritz" genannt habt, dann fritz:www-data. Der Aufbau ist also user:gruppe.

Dazu müsst könnt ihr euch über SSH auf den Raspberry über die Eingabeaufforderung (Windows) oder der Konsole (Linux) einwähle.
ssh pi@ip-Adresse-vom-Raspberry

cd /var/www/html/
sudo chown -R pi:www-data ./solarsteuerung

Wer schreibt in welche Datei?

setup.txt ... über die Webseite schreibt ihr hier eure Setup-Daten hinein.
status.txt ... das Script steuerung.py schreibt hier den Status der Steuerung hinein.
balancing.txt ... das Script steuerung.py schreibt hier den Zeitpunkt des letzten virtuellen Balancing hinein.

Virtuelles Balancing: Klingt schön technisch und theoretisch. Wenn der SOC 95% erreicht hat und es mehr als 5 Tage her ist, das die 95% schon einmal erreicht wurden, werden alle Relais ausgeschaltet und für eine Stunde nicht eingeschaltet. Das soll ein Balancieren der Speicher untereinander ermöglichen. Ob das funktioniert, ich hoffe es.

Anmerkung :
Bis auf die Funktion der Einbindung mehrerer Wechselrichter sind alle Funktionen getestet. Wenn mein zweiter Wechselrichter zur Verfügung steht werde ich es genauer prüfen können.

Folgende Funktion habe ich versucht zu realisieren.

  1. Relaisbezeichnung vergeben
      • Es kann eine Bezeichnung hinterlegt werden.
  2. Freigabe, Relaisausgang aktivieren
      • Du kannst hier den Relaisgang in die Steuerung einbinden oder deaktivieren.
  3. Eingabe eine Einschaltzeit
      • Um welche Urzeit soll das Relais eingeschaltet werden?
  4. Eingabe eine Ausschaltzeit
      • Um welche Urzeit soll das Relais ausgeschaltet werden?
  5. Eingabe einer Stromstärke für die Berechnung des Lastabwurfes.
      • Dies dient zur Berechnung des Lastabwurfes. Stromstärke x 230V = Leistung. Diese Eingabe hat Vorrang vor der Leistungseingabe!
  6. Eingabe einer Leistungsangabe für die Berechnung des Lastabwurfes.
      • Dies dient zur Berechnung des Lastabwurfes. Leistung / 230V = Stromstärke. Wenn du schon eine Stromstärke eingetragen hast, muss hier nichts eingetragen werden. Kennst du nur die Leistungsangabe, lass das Eingabefeld für Stromstärke frei.
  7. Zuordnung des Relais zu einem Wechselrichter (wichtig für die Berechnung des Lastabwurfes)
      • Die Nummern 1-3 entsprechen den Wechselrichtern 1-3 (Phase 1-3). Wenn mehrere Wechselrichter auf einer Phase angeschlossen sind, werden sie auch nur einer Nummer zugeordnet. Durch Eingabe der Zahl 0 wird das Relais keinem Wechselrichter zugeordnet. Dadurch kannst du das Relais unabhängig der Wechselrichtersteuerung benutzen.
  8. Festlegung der Abwurfleistung der Wechselrichter
        Wird die Abwurfleistung des Wechselrichters erreicht, werden alle im zugeordneten Relais ausgeschaltet. Es wird ständig kontrolliert und berechnet ob entsprechende Relais wieder eingeschaltet werden können.

Beschreibung

Relais 1 ist aktiviert, startet nur wenn der SOC über 80% liegt. Am Relais ist ein Verbraucher mit 2000 Watt, Heizstab im Boiler, angeschlossen Somit würde der Überschuss direkt verheizt und der Speicher würde nicht ständig auf 100% auflaufen. Das Relais ist dem Wechselrichter 1 zugeordnet.
Relais 2 ist aktiviert, der Kanal ist von 20-100% aktiv. Ein Last mit 6Ampere ist angeschlossen. Der Kanal wird nur in der eingestellten Zeit angeschaltet. Das Relais ist keinen Wechselrichter zugeordnet. Hängt eventuell am Hausnetz.
Relais 8 ist aktiviert, schaltet hier aber nur ein wenn der SOC von 0 - 20% steht. Wird hier für die Netzanbindung des Wechselrichters verwendet. Der Wechselrichter hängt also nur am Netz wenn der SOC unter 20% liegt.

Das Relais ist dem Wechselrichter 1 zugeordnet da auch nur dieser 1. Wechselrichter die Baten vom Batteriespeicher zur Verfügung stellt.

setup
Für jeden Wechselrichter kann eine Lastabwurfgrenze eingestellt werden.
Zur Erleuterung: der Wechselrichter wird normalerweise am AC-Ausgang direkt mit dem zu versorgenden Netz verbunden. Diese Verbraucher können nicht einfach abgeschaltet werden. Zusätzliche Verbraucher wie zum Beispiel ein Heizstab, werden an einem Schütz angeschlossen, welches von der Solarsteuerung geschaltet wird. Sollte die Summe aller Lasten, Hausnetz und Heizstab die Grenze von 4500W übersteigen, wird sofort der Heizstab außer Betrieb genommen. Sollte Platz im Leistungsbereich sein, so wird der Heizstab wieder zugeschaltet.


Betriebsystem , SD-Karte

Es gibt wie immer mehrere Wege.

  1. Alles per Hand installieren. Weiter unten hab ich versucht alles aufzuschreiben. Hoffe, ich habe nichts vergessen.
  2. SD-Karte welche vorkonfiguriert wurde, bei mir kaufen. Ist in Vorbereitung...bin ich mir noch nicht sicher.


Installation des Betriebssystems
Raspberry Pi Imager installieren und das Images: Raspberry Pi OS Lite 32 no desktop installieren
In den Einstellungen vom Raspberry Pi Imager müsst ihr folgende Optionen aktivieren bzw. eintragen.
  1. SSH aktivieren
  2. Benutzername und Passwort
  3. Wifi einrichten, SSID und Passwort eintragen

Jetzt das Images auf die SD-Karte schreiben lassen. Danach die SD-Karte in den Raspberry schieben und starten.
Am Rechner Eingabeaufforderung öffnen und mit SSH auf den Raspberry zugreifen.

Linux: ssh "Benutzername"@IP-Adresse
Passwort eingeben....

Wir befinden und jetzt per SSH auf den Raspberry und installieren, aktualisieren weitere Software

  • System aktualiesieren
    1. sudo apt update && sudo apt upgrade
  • influxdb installieren
    1. curl https://repos.influxdata.com/influxdb.key | gpg --dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null
    2. echo "deb [signed-by=/usr/share/keyrings/influxdb-archive-keyring.gpg] https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
    3. sudo apt update
    4. sudo apt install influxdb
    5. sudo systemctl unmask influxdb
    6. sudo systemctl enable influxdb
    7. sudo systemctl start influxdb
  • Datenbank erstellen
    1. influx
    2. create database wechselrichter_1
    3. das gleiche mit wechselrichter_2 und wechselrichter 3
    4. use wechselrichter_1
    5. das gleiche mit wechselrichter_2 und wechselrichter 3
    6. create user growatt with password 'spf5000es' with all privileges
    7. grant all privileges on wechselrichter_1 to growatt
    8. das gleiche mit wechselrichter_2 und wechselrichter 3
    9. exit
  • Grafana installieren
    1. curl https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyrings.gpg >/dev/null
    2. echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyrings.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
    3. sudo apt update
    4. sudo apt install grafana
    5. sudo systemctl enable grafana-server
    6. sudo systemctl start grafana-server
    7. Testen ob Grafana im Browser deines Rechners, Handy aufrufbar ist. ... "IP-Adresse vom Raspberry":3000
    8. user admin password admin ...---> password ändern... spf5000es oder sein eigenes
  • Solarsteuerung, Python3 und Webserver installieren ... wieder im SSH
    1. sudo apt install apache2 -y
    2. sudo apt install php -y
    3. sudo usermod -aG www-data pi
    4. sudo chown pi:www-data /var/www/html/
    5. sudo apt update
    6. sudo apt install python3 idle3
    7. sudo apt install pip
    8. sudo pip install influxdb
  • Solarsteuerung als Dienst einrichten
    1. die auszuführende Datei liegt im Webserver-Verzeichnis: /var/www/html/solarsteuerung/steuerung.py
    2. Erstellen einer Datei: /lib/systemd/system/solarsteurung.service
      sudo nano /lib/systemd/system/solarsteuerung.service
    3. Inhalt der Datei:

      [Unit]
      Description=Solarsteuerung Service
      After=multi-user.target
       
      [Service]
      ExecStart=/usr/bin/python3    /var/www/html/solarsteuerung/steuerung.py &
       
      [Install]
      WantedBy=multi-user.target


    4. Dann ausführbar machen:
      sudo chmod 644 /lib/systemd/system/solarsteuerung.service
    5. Status prüfen:
      sudo systemctl status solarsteuerung
    6. Stoppen:
      sudo systemctl stop solarsteuerung
    7. Oder restart:
      sudo systemctl restart solarsteuerung
    8. Damit der Service beim rebooten gestartet wird ein:
      sudo systemctl enable solarsteuerung
    9. Das system(Service)) reloaden:
      sudo systemctl daemon-reload
    Fertig, hoffe ich habe nichts vergessen. Gerne Rückantwort, Vorschläge, Kritik aber auch Lob