Solarspeicher (stationär): Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(habe versucht einige syntaxhighlight Fehler zu beheben; +etwas Wiki-Markup (für ol, ul Listen); + {{Abk.}}; einige Kommandos in Kleinbuchstaben)
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<gallery widths="422" heights="188" perrow="2>
 
<gallery widths="422" heights="188" perrow="2>
File:Abbildung_1.1_Logo_Soldorado_und_OSE.svg| Soldorado Open Solar System
+
File:Abbildung_1.1_Logo_Soldorado_und_OSE.svg
 
</gallery>
 
</gallery>
 +
 +
{| class="wikitable"
 +
|-
 +
| ''Status'' || <font color=green>active</font>
 +
|-
 +
| ''Phase'' || <font color=green>released</font>
 +
|-
 +
| ''Kontakt'' ||
 +
* [[Thomas Plaz]] [mailto:soldorado@posteo.de <soldorado@posteo.de>]
 +
* Frank Richter
 +
|-
 +
| ''Diskussion'' ||
 +
* [https://forum.opensourceecology.de/viewforum.php?f=64&sid=3ad0408453877f4353a9c490400abb7a Forum]
 +
* [https://t.me/OSEGWelcome OSEG Welcome Group] auf Telegram
 +
|-
 +
| ''Lizenz'' || [https://www.gnu.org/licenses/gpl-3.0.html GPL v3.0]
 +
|-
 +
| ''Stichwörter'' || {{Stichwörter|Solar, Energie, Speicher}}
 +
|-
 +
| ''Repositories'' || <font color=red>N/A</font>
 +
|-
 +
| ''OKH Meta-Data'' || <font color=red>N/A</font>
 +
|}
 +
 
==Kurzbeschreibung==
 
==Kurzbeschreibung==
 
Das vorliegende Open Source Projekt „Soldorado Solarspeicher“ von OPEN SOLAR SYSTEMS basiert auf der Idee unabhängig von teuren kommerziellen Solarspeicherprodukten sowie unabhängig von der EEG Vergütung einen professionellen, kostengünstigen und intelligenten Solarspeicher zu entwickeln, der es ermöglicht auch bei {{Abk.|PV}} Anlagen auf kleineren Dach- oder Balkonflächen den Grundlaststrom in einem Haushalt regenerativ abzudecken. Schon mit 4 Solarmodulen (ca. 1 kWP) und einer Speichergröße von 1,8 {{Abk.|kWh}} können ca. 35 % des eigenen Stromjahresverbrauches durch Eigenerzeugung selbst gedeckt werden.<br>
 
Das vorliegende Open Source Projekt „Soldorado Solarspeicher“ von OPEN SOLAR SYSTEMS basiert auf der Idee unabhängig von teuren kommerziellen Solarspeicherprodukten sowie unabhängig von der EEG Vergütung einen professionellen, kostengünstigen und intelligenten Solarspeicher zu entwickeln, der es ermöglicht auch bei {{Abk.|PV}} Anlagen auf kleineren Dach- oder Balkonflächen den Grundlaststrom in einem Haushalt regenerativ abzudecken. Schon mit 4 Solarmodulen (ca. 1 kWP) und einer Speichergröße von 1,8 {{Abk.|kWh}} können ca. 35 % des eigenen Stromjahresverbrauches durch Eigenerzeugung selbst gedeckt werden.<br>
Zeile 590: Zeile 614:
 
5. Code auf Arduino flashen mit richtigem Dateinamen (in diesem Falle "PV-System_20190629"):
 
5. Code auf Arduino flashen mit richtigem Dateinamen (in diesem Falle "PV-System_20190629"):
 
<syntaxhighlight lang="bash" >
 
<syntaxhighlight lang="bash" >
arduino-cli upload --fqbn arduino:avr:mega --port /dev/ttyACM0 20190705_Heizstabregelung_Volleinspeisung/
+
arduino-cli upload --fqbn arduino:avr:mega --port /dev/ttyACM0 PV-System_20190629
 
</syntaxhighlight>
 
</syntaxhighlight>
 
6. vz-logger starten
 
6. vz-logger starten
Zeile 1.391: Zeile 1.415:
 
</table>
 
</table>
 
</html>
 
</html>
 
=== Kontakt ===
 
* [[Thomas Plaz]] - persönliche Nachricht
 
Forum - Diskussion
 
 
 
 
== Literatur und Links ==
 
== Literatur und Links ==

Version vom 5. Januar 2021, 10:40 Uhr

Status active
Phase released
Kontakt
Diskussion
Lizenz GPL v3.0
Stichwörter Solar, Energie, Speicher
Repositories N/A
OKH Meta-Data N/A

Kurzbeschreibung

Das vorliegende Open Source Projekt „Soldorado Solarspeicher“ von OPEN SOLAR SYSTEMS basiert auf der Idee unabhängig von teuren kommerziellen Solarspeicherprodukten sowie unabhängig von der EEG Vergütung einen professionellen, kostengünstigen und intelligenten Solarspeicher zu entwickeln, der es ermöglicht auch bei PV Anlagen auf kleineren Dach- oder Balkonflächen den Grundlaststrom in einem Haushalt regenerativ abzudecken. Schon mit 4 Solarmodulen (ca. 1 kWP) und einer Speichergröße von 1,8 kWh können ca. 35 % des eigenen Stromjahresverbrauches durch Eigenerzeugung selbst gedeckt werden.
Die Investitionskosten liegen weit unter den kommerziell angebotenen Produkten. Somit besteht auch für Menschen mit wenig zur Verfügung stehender Fläche die Möglichkeit aktiv etwas für die Umwelt und langfristig etwas für den eigenen Geldbeutel und die eigene Unabhängigkeit zu tun.

Da im ersten möglichen Fall keine Einspeisung ins öffentliche Stromnetz erfolgt, wird der nicht benötigte Strom im Akkumulator zwischengespeichert und nach Erreichen der vollen Akkumulatorkapazität zur Brauchwassererwärmung genutzt.
Im zweiten möglichen Fall erfolgt die Beladung des Akkumulators und die Einspeisung ins Netz parallel (Rücklaufsperre bzw. Zweirichtungszähler vom Netzbetreiber notwendig).
Um die optimale Speicher- und PV Anlagengröße in Bezug auf die Wirtschaftlichkeit und Amortisation des Gesamtsystems zu ermitteln, wird zuerst eine detaillierte, stündlich aufgelöste Jahressystemsimulation in Abhängigkeit des Stromlastprofiles des jeweiligen Haushaltes durchgeführt.
Zur optimalen Auslegung steht ein umfangreiches Exceltool zur Verfügung. Zur Erhöhung des elektrischen Eigenverbrauchs können Funksteckdosen von der intelligenten Regelung gezielt angesteuert werden, um in Zeiten hoher Solareinstrahlung elektrische Verbraucher wie E-Bikeladung, Wasch- oder Geschirrspülmaschinen zu aktivieren.
Die Onlinevisualisierung erfolgt auf zwei Weboberflächen. Für die detaillierte Datenauswertung des Gesamtsystems erfolgt dies über das Web Frontend des „Volkszählers“. Um einen schnellen Überblick über aktuelle Verbrauchsdaten, Wetteraussichten, Speicherladung, Speicherstatus und eingesparte CO2 Summe zu erhalten, erfolgt dies über das Dashboard von Node-red, einer Plattform zur Integration und Programmierung von Akteuren des sogenannten Internet of things (Internet der Dinge).
Die offenen und hier dokumentierten Schnittstellen über Arduino, Raspberry bzw. Volkszähler bieten Entwickler darüber hinaus die Möglichkeit den Programmiercode weiter zu verfeinern und bspw. die Onlinevisualisierung ihren Bedürfnissen individuell anzupassen oder weitere intelligente Verbraucher anzusteuern.

Abbildung 1.1 GNU General Public License v3.0.pdf


Der hier dokumentierte Aufbau des Solarspeichers basiert auf Open-Source Hard- und Software und unterliegt der GNU General Public License v3.0.
Hinter Soldorado Open Solar Systems stehen wir freien Entwickler Thomas Plaz und Frank Richter. Sämtliche Verbesserungen und Weiterentwicklungen sind von uns Entwicklern ausdrücklich erwünscht, um eine schnelle Verbreitung zu ermöglichen und die Energiewende zu unterstützen. Alle Quelldaten werden mittelfristig bei GitHub verfügbar sein. Sofort verfügbar sind die Dateien momentan unter den entsprechenden Verlinkungen auf dieser Seite.

Projektbeschreibung

Motivation

Am Anfang dieses Projektes stand der Wille, endlich aktiv etwas für die eigene Umweltbilanz direkt Zuhause zu tun. Wir leben in Miete in einem kleinen Häuschen mit sehr beschränkter Dachfläche mit verschachteltem Dach in Ost und Westrichtung (max. 4 Solarmodule, insgesamt 1 kWP). Unser Jahresstromverbrauch liegt für die mittlerweile vierköpfige Familie bei etwa 1700 kWh/a. Unsere Wärmeerzeugung erfolgt (aufgrund der Mietverhältnisse) nach wie vor konventionell mit Öl.
Eine normale PV Einspeiseanlage kam für uns mit lediglich vier Modulen aufgrund des Mietverhältnisses und dem bürokratischen Aufwandes nicht in Frage. Wir wollten so viel Energie wie möglich selbst erzeugen und direkt verbrauchen. Laut Internetrecherche im Jahr 2015 waren aber kaum finanzierbare Systeme zu finden, die unseren Anforderungen genügten. Am Ende haben wir es mit dem 4 Panel Controller von Solarelectrix kombiniert mit zwei geschlossenzelligen 75Ah Bleiakkumulatoren (35Ah effektive Batteriekapazität) versucht. Ansatz war hier die Verwendung eines leistungsgeregelten Miniwechselrichters für die Grundlastdeckung im Haus. Die Auslegung des Speichers und des Wechselrichters erfolgte durch die Ermittlung eines wirtschaftlichen Optimums zwischen Eigenverbrauch, maximal zu erwartenden Energieertrag der zur Verfügung stehenden Dachfläche, Batteriegröße und Amortisationszeit. Die Amortisationszeit wurde mit ca. 13 Jahren berechnet. Die jährliche Co2 Einsparung liegt bei ca. 500 kg/a. Überschussstrom wird in der Batterie gespeichert, kein Strom sollte ins Netz zurück fließen. In den folgenden Monaten konnten wir mithilfe des open source Systemmonitorings „Volkszähler“ das Verhalten der Anlage genau studieren und optimieren. Nach und nach ersetzten wir alle Funktionen des 4 Panel Controllers durch eigene Regelalgorithmen mithilfe des Arduinoboards und erreichten deutlich höhere Leistungsumsätze des Systems sowie eine zuverlässige Batterieschutzfunktion. Unseren "fliegenden" Aufbau montierten wir 2017 in einen Schaltschrank. 2018 ersetzten wir die Bleiakkumulatoren durch ein Batteriemanagementsystems (BMS) und einen 60 AH Lithiumakkumulator. Immer mehr Funktionen wie z.B. eine Heizstabregelung zum Verbrauch des überschüssigen Stromes an sonnenreichen Sommertagen zur Trinkwarmwassererwärmung, eine schaltbare Steckdose zum Laden des E-Bike Akkumulators, VPN Zugang via App oder Browser auf alle Systemdaten von überall auf der Welt, Schalter für die Volleinspeisung des Wechselrichters und eine detaillierte Simulation des Gesamtsystems kamen nach und nach hinzu. Inzwischen deckt die Solaranlage im Jahresschnitt ca. 35% des Jahresstromverbrauches, trotz morgendlicher Verschattung und suboptimaler Solarmodulausrichtung. Da wir in vielen Fällen auf die Produkte der Open Source Community zurückgegriffen haben, ist es uns nun ein Vergnügen eine ausführliche Dokumentation unserer Entwicklung zu schreiben und unser Wissen öffentlich allen zur Verfügung zu stellen. Alle Bastler und Entwickler sind eingeladen mit uns ins Gespräch zu kommen und die Soft- und Hardware weiterzuentwickeln oder zu modifizieren. Wir hoffen damit viele begeistern zu können entweder selbst einen Solarspeicher zu bauen oder sich einen bauen zu lassen. Es gibt noch viele Dachflächen, die bisher aufgrund ihrer kleinen Fläche als unrentabel abgetan wurden, die mit diesem System nun auch effektiv und wirtschaftlich erschlossen werden können. Wir hoffen damit einen kleinen Teil zur konkreten Umsetzung der Energiewende und zur Vergrößerung der eigenen Unabhängigkeit beitragen zu können.

Mietobjekt ohne und mit PV Speichersystem

Einige Vorteile des Solarspeichersystems auf einen Blick

  • Kompletter Eigenverbrauch der erzeugten Energiemenge möglich in Form von Strom und Wärme
  • System auch als Einspeisesystem nutzbar
  • Hoher Systemwirkungsgrad (ca. 88-89%) durch DC gekoppelten Speicher (siehe Kapitel Systemwirkungsgrad)
  • Dezentrale Stromerzeugung zur Entlastung und Stabilisierung der Stromnetze
  • Anlage optimiert für kleine Dach- oder Balkonflächen (ab drei Modulen z.B. insgesamt 900WP) für die sich i.d.R. der Aufwand (EEG Anmeldung) für eine Einspeiseanlage nicht lohnt
  • EEG Anmeldung bei Verwendung der Überschussenergie als Wärme nicht notwendig
  • größere Unabhängig gegenüber Strompreissteigerungen
  • weniger Bürokratie bei Anlagenanmeldung
  • Verbesserung der eigenen CO2 Bilanz, Vermiedene CO2 Emissionen direkt ablesbar
  • kein Zugriff des Netzbetreibers auf die Steuerung des Stromspeichers oder gar auf Ihre individuellen Erzeugungs- und Verbrauchsdaten, aufgrund lokaler Datenspeicherung
  • Möglichkeit der Skalierung des Systems bis zu 25 Modulen (7,5kWP)
  • Amortisation des Solarspeichersystems innerhalb von ca. 12 Jahren
  • Für Weiterentwickler und Interessierte liegt der komplette Programmiercode und alle Schnittstellen offen zu Verfügung
  • Kostengünstige Lösung im Vergleich zu Mitbewerbern
  • Sekundengenaues Systemmonitoring über einen Webbrowser oder App im Heimnetzwerk oder verbunden über eine VPN Verbindung ermöglicht dem Nutzer über ein elektronisches Endgerät wie Smartphone oder Computer ständig Überblick über alle Systemparameter zu behalten
  • Optimierung des Eigenverbrauchs durch intelligent programmierbare schaltbare Steckdosen in zwei Betriebsmodi
  • Solares Laden des eigenen E-Bike Akkumulators möglich
  • Power to heat des Überschussstromes unterstützt im Sommer die Warmwasserbereitung und reduziert somit CO2 Emissionen und Laufzeiten der konventionellen Energieerzeugungsanlage
  • Systemkomponenten wie Wechselrichter und Akkumulator nur so groß gewählt, um ein optimales Verhältnis zwischen Wirtschaftlichkeit und gewünschter solarer Deckung zu erreichen

Projekthistorie und Ziele

2015:

  • Erste Ideen und Visionen, Kauf des Smappee Energiemnonitors zur Aufnahme des eigene Lastprofiles
  • Entwicklung eines Exceltools zur Jahressimulation des Speichers und Auslegung der Batterie und Wechselrichtergröße
  • Kauf und Montage von vier PV Modulen, von zwei Bleibatterien (70Ah geschlossen) und einer Regelung (4 Panel Controller von Solarelectrix).

2016:

  • sukzessiver Ersatz der Funktionen des 4 Panel Cotrollers, um die volle Leistungsfähigkeit des Mikrowechselrichters von 300W ausschöpfen zu können, sowie Integration sinnvoller Akkumulatorschutzfunktionen wie Tiefentlade- und Überladungsschutz.

2017:

  • Integration des Systems in einen Schaltschrank und Integration der Anlagenüberwachung mithilfe eines Raspbery Pi‘s
  • Anschluß eines geregelten Heizstabes zur Beheizung des Brauchwarmwasserspeichers bei Überschussstrom im Sommer.

2018:

  • Ersatz der Bleiakkumulatoren durch einen 60Ah LiFePo mit dem Batteriemanagementsystem von Libre Solar.
  • Integration von Funksteckdosen angesteuert über das MQTT Protokoll über Node Red
  • Integration der Anlagenvisualisierung über das Dash Board von Node Red
  • Konstruktion und Herstellung eines Gehäuses für das BMS

2019:

  • Verbesserung der Hard- und Software des BMS von Libre Solar
  • Ansteuerung des Wechselrichters über Softserial
  • Platinenredesign mit den nunmehr notwendigen Aufbauten, Zusammenlegen von Arduino- und Mosfetplatine zur Kostengünstigeren Produktion
  • Untersuchung der Skalierung des Systems auf 48V Systemspannung
  • Integration der Heizstabregelung

Zukünftige Ziele:

  • Fertigstellung der Parameterauslesung über Node Red
  • Integration der Projektdokumentation und Quelldaten in GitHub
  • U.U. Integration eines Watchdogs im Arduinocode
  • Freiwerdende serielle Arduinoschnittstelle soll bidirektionalen Kontakt zu Victron Ladereglern aufnehmen
  • Gehäusekonstruktion Arduino- und Mosfetplatine
  • Überarbeitung des Schaltschrankes auf Normkonformität
  • Redesign des Schaltschrankes / Integration des Akkumulators in den Schaltschrank / Bau des 3. Protoypen

Systemaufbau

  1. Der Stromzähler 1 erfasst die PV Einspeisung und den elektrischen Verbrauch auf allen drei Phasen im Haus und kommuniziert mit der Steuereinheit 2
  2. Die Steuereinheit 2 regelt kontrolliert die Akkumulator(ent-)ladung 4 sowie die Wechselrichterleistung 3 den Heizstab 5 und die intelligente Zuschaltung elektr. Verbraucher und Smart Home Akteure 6
  3. In folgendem Diagramm ist die Wechselrichtereinspeisung orientiert am momentanen Hausverbrauch (Stromeinspeisung ins Hausnetz, grün) (1x INV 350 – 60 von AE Conversion max. 300W) sowie der Solarertrag (Ladereglerleistung, rot) und der momentane elektrische Hausverbrauch (Stromverbrauch, blau) dargestellt.

Der Solarertrag hat seinen Höhepunkt gegen 13Uhr erreicht. Der Wechselrichter bezieht seine Energie tagsüber direkt von den Solarmodulen und nachts aus dem Akkumulator. Solarenergie die nicht direkt verwendet werden kann wird tagsüber in den Akkumulator eingespeichert. Ist der Akkumulator voll wird die Überschüssige Energie entweder mithilfe eines Heizstabes in Wärme z.B. für die Trinkwarmwassererwärmung oder ins Netz eingespeist. Die solare Deckung beträgt für den 5.6.2019 59%. Im Vergleich hierzu ist in folgender Abbildung das System ohne Akkumulator und Heizstab in herkömmlicher Volleinspeisung dargestellt.

Es wurden hierzu zwei Wechselrichter (Typ INV 500 – 90 von AE Conversion max. jeweils 480W) eingesetzt. Ein Großteil der erzeugten Solarenergie kann aufgrund der Gleichzeitigkeit nicht für den eigenen Stromverbrauch verwendet werden.

  1. Ziel der Systemauslegung ist es die Deckung der elektrischen Grundlast im Haushalt (je nach Wechselrichtertyp 300W oder 500W) von ca. 0 - 300W bzw. 500W zu decken.
  2. Die intelligente Verbrauchssteuerung (2) ermöglicht mithilfe von Funksteckdosen (7) z.B. elektrische Verbraucher wie ein E-Bike Akkumulator, Wasch- und Spülmaschine bei vorhandener Überschussenergie zuzuschalten und erhöht somit den solaren Eigenverbrauch.

Funktionsprinzip

Solarenergie steht nicht zu jeder Tageszeit zur Verfügung. Die Grundlast eines Einfamilienhaushaltes liegt bei ca. 100 - 500W, je nach Anzahl elektrischer (Dauer-) Verbraucher. Die sinkende EEG Einspeisevergütung, sowie die begrenzte Belastbarkeit unseres Stromnetzes lässt zunehmend PV Systemkonfigurationen wirtschaftlich werden, die nicht auf maximalen Ertrag bei maximaler Fläche optimiert sind, sondern im jeweiligen Haushalt eine möglichst hohe Eigenverbrauchsquote bzw. solare Deckung ermöglichen. Dies wird durch die Zwischenspeicherung der Solarenergie im Akkumulator sowie mit intelligenter Steuerung der elektrischen Verbraucher erreicht. Energie soll zunehmend dort verbraucht werden wo sie entsteht. Angepasst auf das individuelle elektrische Verbrauchsprofil entsteht ein System mit wirtschaftlich optimierter Akkumulator- Größe und PV- Fläche. Für kleine Haushalte sind schon PV-Speichersysteme mit 3 PV Modulen (750WP) sinnvoll und ermöglichen auch bei begrenzter Dachfläche (z.B. bei Stadt-, oder Reihenhäusern oder Haushälften) wirtschaftlich etwas für die eigene CO2 Bilanz sowie für die Versorgungssicherheit zu tun. Größere Systeme haben Vorteile durch die niedrigeren spezifischen Installationskosten beim Handwerker. Bei kleinen Systemen kann dafür ggf. mehr in Eigenleistung erbracht werden.

Detaillierter Systemaufbau

Folgende Abbildungen zeigen die relevanten Systemkomponenten schematisch mit deren Schnittstellen sowie im realen Aufbau.

Komponentenwahl und deren Spezifizierung

Wechselrichter

Es wurde ein kostengünstiger, in seiner Leistung regelbarer Miniwechselrichter gesucht, der mit Systemspannungen von 24 - 48V umgehen kann und gleichzeitig über einen integrierten NA-Schutz nach VDE-AR-N 4105 verfügt. Der INV 350-60 bzw. INV 500 – 90 von AE Conversion mit RS485 Schnittstelle genügt diesen Anforderungen. Bei einer maximalen DC seitigen Stromaufnahme von 11A erreicht dieser AC seitig bei einer Systemspannung von 32V ca. 300W bzw. bei 48V ca. 450W. Der Miniwechselrichter INV 350-60 RS 485 ist ab 250€ brutto excl. Versand und der INV 500-90 RS 485 für 297 € bis 320€ brutto excl. Versand erhältlich. Nachteilig ist der hohe Platzbedarf im Schaltschrank aufgrund der wasserdicht ausgeführten Anschlusskabel. Das neueste Modell von AE Conversion INV 315-50 (ab 150€ brutto) ist deutlich kleiner, verfügt aber über keine RS485 Schnittstelle sondern nur über eine kabellose Schnittstelle.

Protokoll und Kommunikation

Mit dem Miniwechselrichter kann über zwei verschiedene Protokolle kommuniziert werden:

  1. KACO/Schueco Protokoll (ASCII String): bidirektionale Kommunikation
  2. AESGI-Protokoll (HEX String): bidirektionale Kommunikation

Grundsätzlich ist die Kommunikation mit dem WR nur bei ausreichender Energieversorgung über die angeschlossenen PV Module bzw. Akkumulator möglich. Tritt eine Versorgungslücke ein, so sind die im WR gespeicherten Werte (z.B. Tagesenergieertrag) verloren. Ein Abschalten des MPP Tracking Modus im WR für den Betrieb an einer Konstantspannung aus einem Akkumulator ist nur mit dem AESGI Protokoll möglich (siehe Abschnitt AESGI Protokoll). Die Kommunikation erfolgt über die RS 485 Schnittstelle. Mehrere Wechselrichter können in Reihe an die serielle Kommunikation angeschlossen werden. Jeder WR besitzt eine WR-Adresse, die für eine eindeutige Kommunikation notwendig ist. In der Regel sind das die 3 letzten Stellen der Seriennummer. Alternativ ist es möglich, die Seriennummer sowie die Softwareversion schnell und komfortabel über das per Download frei erhältliche Programm AE Solar von AE Conversion herauszufinden. Hierfür sind folgende Anschlussdetails zu beachten: Für die Kommunikation werden nur zwei Adern (Paar 3) des CAT 5 Kabels benötigt. Draht A des RS-485-Bus wird an Pin 6 angeschlossen und Draht B auf Pin 3. Zusätzlicher Pin 8 und der Kabelschirm werden an Erde angeschlossen, um gegen elektromagnetische Einflüsse zu schützen.

Um eine Kommunikation mit dem Computer herzustellen wird noch ein RS485 USB Adapter benötigt (z.B. Reichelt: RPI USB RS485 Raspberry Pi - USB-RS485-Schnittstelle, CH340C [1]) den es für wenige Euro im Internet zu kaufen gibt. Für Kommunikationstests zwischen Computer und Wechselrichter empfiehlt sich das Programm HTherm, das frei zum Download im Internet erhältlich ist. Folgende Voreinstellungen sind für die serielle Kommunikation notwendig:

Serial port configuration
Baud rate 9600
Data bits 8
Parity None
Stop bits 1
Flow control None

Im Programm AE solar besteht nun, wie in nachfolgender Abbildung dargestellt, die Möglichkeit den WR über einen Suchlauf zu suchen und damit dessen WR Adresse zu ermitteln. Ebenfalls in der Abbildung dargestellt ist die Antwort des Programms AE Solar auf den Kommunikationstest.

Weiterhin besteht die Möglichkeit sich die Leistungsdaten in einer Verlaufsgraphik darstellen zu lassen oder die Wechselrichterleistung zu steuern. Der Standbyverbrauch beträgt ca. 30 mW (INV350-60).

3. Details KACO/(Schueco) Protokoll
Dieses Protokoll liefert vom Miniwechselrichter gemessene AC-Leistung, AC-Spannung, AC-Strom, Tagesenergie, DC-Leistung, DC-Spannung, DC-Strom, WR-Temperatur und WR-Status in einem einfach lesbaren ASCII String. Weiterhin ist es möglich dem WR eine Leistungsreduzierung in Prozent der Maximalleistung des WR vorzugeben Ursprüngliche Beschreibung und Aufschlüsselung des AESGI Protokolls sind zu finden unter: [2]

4. AESGI-Protokoll
Das AESGI Protokoll basiert im Gegensatz zum KACO Protokoll auf dem hexadezimalen Zahlensystem und hat den großen Vorteil, dass das MPP Tracking des Wechselrichters ausgeschalten und dieser somit optimal zum gesteuerten Entladen eines Akkumulators verwendet werden kann. Diese Option gibt es ab der Software Version 0.9.16. Grundlage für die hier dokumentierten Befehle stellt folgender Foreneintrag im Photovoltaikforum dar (S.8 Eintrag J. Becker 16. Juli 2016): [3]

Folgende Tabelle schlüsselt die wesentlichen Befehle auf, die umgewandelt in das hexadezimale Zahlensystem, dem Wechselrichter direkt über die serielle Schnittstelle zugesendet werden kann.

Kurzzeichen Überschrift
<ID> zweistellige WR-Nummer
<_> Leerzeichen
<z> Prüfsumme
<LF> Zeilenumbruch (line feed)
<CR> Zeilenumbruch (carriage return)
Aufgabe Anfrage Antwort Bemerkung
Ausgabe Wechselrichtertyp #<ID>9<CR> <LF>*<ID>9_PV350W_z<CR> -
aktuelle Messdaten abfragen #<ID>0<CR> <LF>*<ID>0___0_45.7_1.23____55_230.1_0.21____50_45___635_z>CR> (Beispiel)

von links nach rechts: 0 Status 45.7 Eingangsspannung V (oft sehr ungenau!) 1.23 Eingangsstrom A 55 Eingangsleistung W 230.1 Netzspannung V

Betriebsmodus setzen #<ID>B_m_uu.u<CR> <LF>*<ID>B_m_uu.u_z<CR> m = 0 = MPP-Modus,

m =2 = Spannungs- und Stromvorgabe uu.u abhängig vom Typ 20.0-60.0V oder 40.0-80.0V, bei Modus 0 immer 00.0 verwenden. Der WR reduziert im Modus 2 bei Erreichen der angegebenen Spannung (von oben) die Leistung bis auf Null (Eingangsstrom dann noch einige 10 mA!!!)

Leistungsreduzierung setzen #<ID>L_001<CR> <LF>*<ID>L_001_z<CR> nur im MPP-Modus sinnvoll,

(1-100%, hier 1% Ausgangsleistung)

Leistungsreduzierung abfragen #<ID>L<CR> <LF>*<ID>L_001_z hier 1% Ausgangsleistung
Stromvorgabe setzen #<ID>S_ii.i<CR> <LF>*<ID>S_ii.i_z -
Stromvorgabe abfragen #<ID>S<CR> <LF>*<ID>S_ii.i nur im Modus 2 sinnvoll!


Beispiele: Folgende Beispiele sind für einen Wechselrichter mit Wechselrichternummer 32, bei max. 60V:

  1. WR auf Modus 2 setzen (Spannungs- und Stromvorgabe):
    • Anfrage: #32B_2_27.0<CR>
    • Antwort: <LF>*<ID>B_2_27.0_z<CR><br>
  2. WR Stromvorgabe setzen (um Leistung zu reduzieren):
    • Anfrage: #32S_08.0<CR>
    • Antwort: <LF>*<ID>S_08.0_z<br>


In HTherm werden oben genannte Befehle in Ascii in das Eingabefeld eingegeben und das Häkchen bei „HEX“ gesetzt sowie soll nach jeder gesendeten Zeile eine CR (carriage return) zum Abschluss der Zeile angehängt werden:

Die Leistungsanpassung erfolgt im Arduinocode unter Reiter „WR“ in der Funktion „sendPowerAESGI4(int P_WR_temp)“ (siehe Abschnitt "Quellcode Arduinoboard"). Die Leistungsanpassung des Wechselrichters erfolgt durch die Vorgabe des Stromes. Der gesetzte Betriebsmodus 2 (Spannungs- und Stromvorgabe) geht nach Unterbrechung der Stromversorgung des Wechselrichters verloren. Quelle: [4]

Wirkungsgradkennlinie Wechselrichter

Die Datenauswertung der AC und DC seitigen Wechselrichterleistung ermöglicht die Berechnung des Wechselrichterwirkungsgrades in Abhängigkeit der Wechselrichterleistung. Es ist zu erkennen, dass der Wirkungsgrad erst ab einer Leistungsabgabe von ca. 90W bei durchschnittlich 91% liegt. Bei 23W ergeben sich 78% Wechselrichtungswirkungsgrad.

PV Module

Durch die um 90° versetzt angeordneten Dachhälften sind je zwei PV Module nach Südost und zwei PV Module nach Südwest gerichtet montiert (siehe Abbildung in Abschnitt "Motivation") und in Reihe angeschlossen (Nennspannung Un = 62,8V). In der Verwendung sind vier SW 260 poly Module mit 260Wp von Solarworld. Diese haben eine Abmessung von L x B x H von 1675mm x 1001mm x 33mm, wiegen jeweils 18kg und haben eine Nennspannung von Un = 31,4V und einen Nennstrom von In = 8,37A. Die Dachbefestigung erfolgt mittels Nutensteinen auf jeweils zwei Modultrageschienen aus Aluminium. Diese wiederum sind pro Modulfeld mit sechs Dachhaken für Pfannenziegel an den Dachsparren festgeschraubt. Die Modulerdung erfolgt mithilfe eines 10mm^2 dicken grün-gelben Erdungskabel (Litze H07V-K 1 x 10 mm²), das im Hausverteilerkasten auf die Potenzialschiene aufgeklemmt ist. Zum Anschluss der Module wird ein Ölflexkabel 6mm^2 verwendet. Jeweils zwei Module sind im Schaltschrank in Reihe geschaltet. Ebenfalls möglich und kabelsparend ist die direkte Verschaltung der Module mittels PV Stecker (MC4 Stecker) auf dem Dach. Sehr benutzungsfreundlich sind die PV Stecker der Firma Weidmüller, für die keine Crimpzange zur Befestigung der PV Stecker am Kabel notwendig sind. Das Kabel wird abisoliert bis zum charakteristischen „Klick“ eingeschoben und sind irreversibel aber schnell und sicher am Kabel befestigt.

Laderegler

Durch die unterschiedliche Dachausrichtung sind im vorliegenden Projekt zwei Laderegler mit integriertem MPP Tracking in Verwendung. Es handelt sich um zwei Victron MPPT 100-15, die über eine Schnittstelle und eine tauschbare 20A Sicherung verfügen. Die Schnittstelle läuft bei Victron Energy unter dem Namen „VE.Direct serial communication“ und erlaubt den einfachen Zugriff auf die aktuellen Leistungsdaten des Ladereglers, diverse Ertragswerte und erlaubt die Einstellung der Batterieparameter sowie ein Update der Geräte-Software. Das „VE-Direct interface“ verfügt über zwei Kommunikationsmodi: den textbasierten Modus sowie den „hex“ basierten Modus. Im „hex“ basierten Modus ist es nicht nur möglich Daten des Ladereglers auszulesen, sondern auch Parameter und Einstellungen dem Laderegler vorzugeben (bidirektionale Kommunikation). So ist bspw. eine Reduktion der Leistung von der übergeordneten Steuereinheit oder bei mehreren Ladereglern in einem System die Vorgabe eines Master bzw. Slaveladereglers möglich. Ausführliche Informationen zur Kommunikation finden sich im pdf „VE.Direct-Protocol“ sowie im dazugehörigen „Whitepaper“ unter: [5]. Zum physikalischen Anschluss der Schnittstelle verkauft Victron einen Schnittstellenwandler (VE.Direct to USB interface cable), der das 5V TTL Signal des Ladereglers auf den USB Standard umwandelt. Um eine Kommunikation mit dem Computer über die auf der Homepage verfügbare Software „VE Power Setup“ zu erlangen genügt ein einfacher TTL – USB Wandler, der im Internet für wenige Euros zu erstehen ist (z.B. cp2102, ft232rl). Mit der Software ist es inzwischen über eine moderne Benutzeroberfläche möglich, die aktuellen Betriebsdaten des Ladereglers auszulesen. Weiterhin ist es möglich die Gerätesoftware des Ladereglers zu aktualisieren und die entsprechenden Einstellwerte für den Schutz des angeschlossenen Akkumulators einzustellen.


Anschluss der Schnittstelle

Für eine bidirektionale Kommunikation ist folgender Anschluss vorzunehmen:

Schnittstelle Laderegler Victron MPPT 100-15

Entsprechend der abgebildeten Pinbelegung am Schnittstellenstecker des Ladereglers ist der Anschluss „A“ des TTL-USB Schnittstellenwandlers mit VE.Direct-TX zu verbinden und der Anschluss „B“ mit VE.Direct-RX. GND und Power+ bleiben offen. Folgendes Anschlusskabel sollte verwendet werden: "Konfektionierte Litze Polzahl Gesamt 4 Rastermaß: 2 mm"

Im vorliegenden Projekt wird das Schnittstellensignal direkt ohne Schnittstellenwandler an der Steuereinheit (Arduino) angeschlossen und ausgelesen. Folgende Einstellungen sind für die serielle Schnittstelle notwendig:

Serial port configuration
Baud rate 19200
Data bits 8
Parity None
Stop bits 1
Flow control None

Folgende Daten werden von beiden Ladereglern mithilfe der Steuereinheit (Arduino) ausgelesen:

  • Laderegler Erzeugung
  • Laderegler Leistung
  • Laderegler Ladestrom
  • Laderegler Batteriespannung
  • Laderegler Status
  • Laderegler Errorcode
Vorgehensweise Anschluss und Einrichtung des Ladereglers
  • Zuerst wird der Laderegler an den Akkumulator angeschlossen, sodass dieser die Systemspannung erkennt. Danach wird der Laderegler an die PV Module angeschlossen. Im vorliegenden Projekt wird der Lastausgang des Ladereglers nicht benötigt, da die Intelligenz für den Tiefentladeschutz sowie der Überladeschutz für den Akkumulator im externen Batteriemanagementsystem integriert ist. Der schematische Aufbau ist in folgender Abbildung dargestellt:
  • Zur Einrichtung des Ladereglers das Schnittstellenkabel mit dem USB Wandler wie im Abschnitt „Anschluss der Schnittstelle“ beschrieben verbinden
  • Installation und Starten des Programms "VE Power Setup" von victron energy
  • Über den Button „Connect to this Computer“ Verbindung zum Laderegler herstellen
  • In der Hauptansicht sind die aktuellen Werte des Ladereglers wie z.B. aktuelle Leistung, erzeugte Wattstunden, aktuelle Akkuspannung, aktueller Ladestrom und Ladereglerstatus zu erkennen:
  • bulk --> Batterie wird geladen
  • absorption --> Konstanstspannungsphase
  • float --> Ladeerhaltung
  • Über das Zahnrädchen in der rechten oberen Ecke werden die Einstellungen abgerufen. Zuerst sollte die Firmware mit einem Klick auf „Update“ unter Reiter „Produkt-Info“ aktualisiert werden.
  • Unter Einstellungen werden nun für den LiFePo Akkumulator mit neun Zellen folgende Parameter eingestellt:
Eigenschaft Parameter
Batteriespannung 24V
Max. Ladestrom 15A
Konstantspannung 31,05V
Maximale Konstantspannungsdauer 30min
Erhaltungsspannung 31,05V
Ausgleichsspannung 0V
  • Unter dem Reiter „TX“ Port „normale Kommunikation“ einstellen
  • Unter dem Reiter „RX“ Port „Ein/Aus Fernsteuerung“ einstellen
  • Unter dem Lastausgang „Immer aus“ einstellen
  • Straßenlichtfunktion „aus“ einstellen

Akkumulator

Im vorliegenden Projekt werden neun Zellen a 3,2V des Lithium-Eisen-Mangan-Phosphat Akkumulator von Innopower INNO-LFMP 60 AH (1,73kWh) verwendet. Diese wurden inklusive Transport im Jahr 2018 für 313 €/kWh netto bezogen. Detaillierte Infos zum Aufbau, Verkabelung und Anschluss an das BMS ist in der Doku auf [6] in der Rubrik BMS 24V im Abschnitt "Schematischer Aufbau, Komponenten Akkumulator" zu finden.

Arduino Board, Mosfetplatine, Stromversorgung

ArduinoBoard

Die Steuerzentrale des Solarspeichers ist das Arduino Board. Hier laufen alle Informationen aus den Teilkomponenten wie Laderegler, Modbuszähler, Batteriemanagementsystem und Temperatursensoren zusammen. Das Arduino Board errechnet die jeweils aktuelle Leistungsvorgabe für den Wechselrichter und stellt dem Raspberry Pi die notwendigen Daten zur Visualisierung über das Node Red User Interface bzw. Volkszähler Frontend zur Verfügung. Es wird ein Arduino Mega 2560 verwendet, das über vier serielle Hardware-Schnittstellen verfügt.

  • Schnittstelle 1: Binärprotokoll zum BMS
  • Schnittstelle 2: Modbus-Protokoll zum Modbuszähler
  • Schnittstelle 3: VE.direct Serial Communication zum Laderegler
  • Schnittstelle 4: Textbasiertes Protokoll zum Raspberry Pi
  • Software Schnittstelle 1: RS 485 zum Wechselrichter

Die Zusammenhänge und Kommunikationsprotokolle der einzelnen Komponenten des Solarspeichers sind in der Abbildung "Systemkomponenten und deren Schnittstellen" in Abschnitt "Detaillierter Systemaufbau" zu erkennen. Das Arduinoboard sitzt in einem Kunststoffgehäuse direkt unter der sogenannten Arduinoplatine und ist mit allen Pins mit dieser verbunden. Auf der Arduinoplatine sitzen die Pegelwandler (MAX 485) für die Kommunikation mit Wechselrichter (Senden) und Modbuszähler (Empfangen), RJ45 Buchsen für den Anschluss des Wechselrichters sowie des Modbuszählers per Cat5 Kabel, die Erzeugung einer Konstantspannung für die Logik auf der Mosfetplatine, der Sicherungshalter zur Absicherung des Spannungsteilers zur Batteriespannungsmessung, ein R-C Glied für die Glättung des Steuersignals des Heizstabes, ein Reset Taster sowie ein Analog-Digitalwandler für vier analogen Eingänge. In folgender Abbildung ist das Platinenlayout mit den entsprechenden Platinenschnittstellen dargestellt.

Die Klemmen Stromversorgung DC (5V) und Eingang Stromsensor werden derzeit nicht benutzt und stammen noch aus einer früheren Projektphase. Der Schaltplan sowie das Boardlayout sind hier als .zip downloadbar File:Arduino und Mosfetplatine Eagle Files.zip.

Mosfetplatine

Die Aufgabe der Mosfetplatine besteht darin große Stromverbraucher wie die angeschlossenen Wechselrichter sowie den Schaltschranklüfter und die Heizstabansteuerung, gesteuert über das Arduinoboard, an- und auszuschalten. Die Platine ist für einen maximalen Stromfluss von maximal 11A bei 33V für die Versorgung der Wechselrichter ausgelegt. Jeweils zwei Mosfets (IRL1404-Z; Leistungs-MOSFET N-Ch TO-220AB 40V 160A) schalten parallel einen Ausgang. Die maximale Strombelastbarkeit eines Mosfets beträgt 75A (sofern 17W Abwärme zuverlässig abgeführt werden können --> auf der Mosfetplatine ist dies nicht vorgesehen). Die Leistungsansteuerung der Wechselrichter ist so programmiert, dass die Mosfets wenn möglich nicht unter Last trennen. Vier LED’s zeigen optisch den jeweils aktuellen Schaltzustand der Mosfets an. Über zwei Potentiometer und einer logischen Schaltung ist eine Hardwareabschaltung für die Vermeidung der Überladung bzw. Tiefentladung vorgesehen. Es kann somit die Hysterese des An- und Ausschaltens der Mosfets eingestellt werden. Diese logische Schaltung (Komparator, Fliflop, And) benötigt eine Konstantspannung, die, neben der normalen Betriebsspannung von 5V über ein Flachbandkabel vom Arduino Board der Mosfetplatine zur Verfügung gestellt wird. Dieser hardwareseitige Tiefentladeschutz (und zusätzlich der Überladeschutz) wird derzeit primär vom BMS Controller- bzw. Leistungsboard übernommen. Die Hardwareabschaltung auf der Mosfetplatine kommt aus einer früheren Projektphase ohne Batteriemanagementsystem und dient nun als sogenannte zweite hardwareseitige Hintersicherung des Tiefentladeschutzes. In folgender Abbildung ist das Platinenlayout mit den entsprechenden Platinenschnittstellen dargestellt.

Der Schaltplan sowie das Boardlayout sind hier als .zip downloadbar File:Arduino und Mosfetplatine Eagle Files.zip. Arduino- und Mosfetplatine haben eine Kantenlänge von 110 mm x 110mm und wurden bei Platinenbelichter incl. Bohrungen für jeweils 22€ hergestellt. Die Bestückung erfolgte von Hand. Die Materialkosten incl. Bauteile belaufen sich pro Platine incl. Platinenherstellung auf 70€. Die Platinen wurden an das Gehäuse Bopla ET-217, 122x120x55 angepasst, sodass an allen vier Ecken die Platine ausgespart werden muss. Platinenbelichter konnte diese Aussparungen nicht selbst herstellen. Die Platine wird mit vier Abstandsbolzen und M3 Schräubchen im Gehäuse befestigt. An das Gehäuse wird zur Hutschienenbefestigung mithilfe metrischer Schrauben und Muttern zwei Hutschienenhalter BOPLA TSH 35 befestigt. Die notwendigen Einzelteile sind in der Exceltabelle „PV_Berechnung_Energiespeicher“ (siehe Kapitel "Berechnung, Simulation, Auslegung, Kostenberechnung, Optimierung" in dieser Doku) im Registerblatt „Kosten Arduino- und Mosfetplatine“ im Detail einzusehen.

Quellcode Arduinoboard

Um über die serielle Schnittstelle zwischen BMS und Arduino-Board im Binärprotokoll (siehe "Systemkomponenten und deren Schnittstellen" im Abschnitt "Detaillierter Systemaufbau") im Intervall von (0,25sec - 1sec) alle relevanten Daten ohne Datenverlust übertragen zu können, ist es derzeit noch notwendig im Arduino den seriellen Puffer für den Dateneingang (Receive)zu vergrößern. Dies geschieht durch Änderung der Variable SERIAL_RX_BUFFER_SIZE von 64 auf 128 (byte) in einem beliebigen Texteditor (z.B. Notepad++, gesamte RAM-Speichergröße des Arduino Mega beträgt 8kB). Der zusätzliche Speicher für die vier Schnittstellen wird vom Gesamtspeicher abgezogen. Eine Anleitung ist unter folgendem Link zu finden:
[7]
Je nach Installation ist die Datei „HardwareSerial.h“ auch unter folgendem Verzeichnis zu finden:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino
VORSICHT: Die Änderung des seriellen Puffers wirkt sich global auf die Kompilierungssoftware Arduino aus und somit auf jedes kompilierte Projekt.

Der Quellcode für das Arduinoboard ist in der gleichnamigen und frei zur Verfügung stehenden Programmierumgebung Arduino geschrieben und ist derzeit strukturiert in verschiedene Programmteile, deren Funktionen in der folgenden Tabelle beschrieben sind. Ein funktionsfähiger Zwischestand des Arduino Quellcodes (Arbeitsversion, noch in der Entwicklungsphase) ist unter folgendem Link abrufbar File:Arduinocode_Soldorado_Open_Solar_System_20190705.zip.

Tabname Funktionsname Beschreibung
Hauptprogramm Void setup()
  • Definition globaler Variablen.
  • Definition aller verwendenten hardware und softwareseitigen Schnittstellen und Pins
ADS1115 void ADS1115()
  • Auslesen des A/D Wandlers ADS1115 für Akkumulatorspannung, Schaltschranktemperatur und Boilertemperatur
BMS void BMS_logging()
  • Auswerten der empfangenen Daten vom BMS und Übergabe an Variablen zur weiteren Verwendung im Gesamtcode
BMS void serialEvent_BMS()
  • Empfangen der Daten vom BMS aus dem Puffer der Schnittstelle. Vollständig empfangene Zeilen sind mit einer /n (newline) getrennt
Batterie void battState()
  • Definition der Ein- und Ausschaltschwellen für diverse Verbraucher wie Wechselrichter, Heizstab, Schaltschranklüfter, Mosfetplatine
Heizstab void Heizstab()
  • Ein- und Ausschaltkriterium Regelgröße
Heizstab void Heizstab_control()
  • Regelroutine für Heizstab in Abhängigkeit des Ladestromes des Akkumulators
LR (Laderegler) void serialEvent_LR()
  • Empfangen der Daten vom Laderegler aus dem Puffer der Schnittstelle. Vollständig empfangene Zeilen sind mit einer /n (newline) getrennt
Modbus boolean modbus()
  • Empfangen der Daten von den Modbuszählern aus dem Puffer der Schnittstelle. Routine wird erst ausgeführt, wenn ein vollständiger Datensatz im Puffer vorhanden ist.
Modbus uint32_t byte_to_uint32(byte byteArray(), byte pos)
  • Variablenumwandlung von byte in Integer
Modbus float byte_to_float(byte byteArray(), byte pos)
  • Variablenumwandlung von byte in float
Output void send_raspberry()
  • Ausgabe aller Daten über die Schnittstelle, die im Raspberry zum Loggen oder zum Darstellen im UI von Node Red erscheinen sollen
Updates -
  • Möglichkeit der Dokumnetation neuer Codeänderungen
WR (Wechselrichter) void calcPower()
  • Ständige Neuberechnung des Wechselrichtersollwertes in Abhängigkeit des Systemstatus (Tag oder Nachtbetrieb, geregelte Einspeisung oder Volleinspeisung
WR (Wechselrichter) void sendPowerAESGI4(int P_WR_temp)
  • Senden der Daten zur Leistungsreduktion an den Wechselrichter umgerechnet in Stromstärke
WR (Wechselrichter) Loop
  • Systematischer Aufruf der obigen Funktionen in den jeweiligen Tabs des Programmiercodes
Weiterentwicklung

In Zukunft soll aus den bisher zwei Einzelplatinen Arduinoplatine und Mosfetplatine eine gemeinsame Platine entstehen, die mit 24V- 48V Systemen kompatibel ist. Die Vereinigung vereinfacht und vergünstigt die Leiterplattenherstellung und Platinenbestückung sowie die Gehäusekonstruktion. Der Verkabelungsaufwand innerhalb des Schaltschranks minimiert sich. Folgende neuen Features sollen zusätzlich integriert werden:

  • Alle Anschlüsse werden mit einem geeignetem Steckersystem ausgestattet
  • Integration eines seriellen Anschlusses für das Datenkabel vom BMS und Trennung über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden
  • Nutzung der vorhandenen RJ45 Buchse als softwareseitige Schnittstelle (software serial) für den Wechselrichter
  • Anschlussmöglichkeit für Display und Drehzahlsteller (Rotary Encoder) an den „interrupt pins“ des Arduino
  • Integration einer bidirektionalen Kommunikation zu den Victron Ladereglern

Folgendes Bild zeigt, wie eine kombinierte Arduino und Mosfetplatine aussehen könnte.

Stromversorgung

Die Mosfetplatine bezieht die Versorgungsspannung über ein Flachbandkabel direkt von der Arduinoplatine. Die Arduinoplatine wiederum kann entweder direkt mit 7,5 V Gleichspannung versorgt werden oder wird per USB Kabel mit dem Raspberry Pi verbunden und erhält darüber seine Stromversorgung. Letztere Variante entspricht dem vorliegenden Schaltschrankaufbau. Das Raspberry Pi wiederum wird über ein Hutschienennetzteil versorgt.

Raspberry Pi

Das Raspberry Pi besitzt die Aufgabe alle relevanten Parameter und Messwerte des Systems zu loggen, auf einer SD Karte zu sichern und über das Volkszähler Frontend auszugeben. Eine regelmäßige Sicherheitskopie der Datenbank erfolgt auf einen USB Stick. Weiterhin stellt das Raspberry Pi Informationen für das Node-Red User Interface (UI) bereit und übernimmt die Steuerung der über Wlan steuerbaren Home Automationsaufgaben wie z.B. schaltbare Steckdosen uvm. Weiterhin ist das Raspberry für die Fehlerauswertung des Gesamtsystems zuständig und informiert den Besitzer z.B. per Mail oder Twitter über dessen Status. Das Raspberry Pi wird zur Hutschienenmontage in folgendem Gehäuse untergebracht: (Voelkner: RASPBERRY HUTSCHIENEN-GEH RASPB B+2B3B.[1]

Manueller Reset/Neustart des Raspberry Pi‘s

Um für Wartungszwecke das Gesamtsystem schnell ausschalten bzw. herunterfahren und neu starten zu können werden in das Gehäuse des Raspberry Pi's zwei Schalter installiert (Herunterfahren/OFF und Reset/ON). Das dazu notwendige Platinenlayout ist unter folgendem Link verfügbar: [8] Nachfolgend dargestellt ist der Schaltplan mit den erwähnten zwei Tastern S1 (Herunterfahren/OFF) und S2 (reset/ON).

Der Reset-Taster S2 löst einen harten Reset des BCM 2835 aus. Weiterhin ist es möglich mit diesem Reset-Taster das Raspberry nach dem herunterfahren wieder aufzuwecken. Der Resettaster verbindet im Falle des Resets beim Raspberry 3 GND mit RUN. Je nach Raspberryversion sind diese zwei direkt nebeneinander angeordneten Pins an anderer Stelle auf der Platine verortet. Ein direktes Verbinden der Pins führt zu einem sofortigen Reset bzw. Anschalten des Raspberry Pis. In der Regel muss zur Benutzung dieser Pins eine Zweierpinleiste eingelötet werden. Um das Herunterfahren (bzw. ebenfalls Neustart) des Raspberrys zu initiieren, wird der PIN GPIO4 mit dem Taster S1 über den Widerstand R2 330Ohm auf Masse gezogen. Ist der Taster geöffnet liegt an GPIO 4 ein "High" Signal an. Damit das Raspberry den Pin GPIO 4 kontinuierlich überwacht, wird ein zusätzliches Python-Skript benötigt. Erstellung und Installation sind unter folgendem Link erklärt:
[9]
Wird Schalter S1 (Herunterfahren/OFF) für mindestens 0,5 Sekunden und kürzer als 3 Sekunden gedrückt, initiiert das Python-Skript einen Neustart des Systems. Wird Schalter S1 jedoch für mehr als 3 Sekunden betätigt, fährt das System herunter und kann anschließend von der Stromversorgung getrennt oder über den Reset Button wieder aufgeweckt werden. Da das Raspberry Pi über das USB Kabel die Haupsteuereinheit (Arduino Board) mit Strom versorgt wird, wird dieses dann ebenfalls ausgeschalten.

Auswahl sd Karte

Die Anzahl der Schreibvorgänge auf der sd Karte wird bestimmt über die Anzahl der geloggten Kanäle (Systemparameter) sowie über das eingestellte Log-Intervall im volkszähler. Es hat sich herausgestellt, dass handelsübliche (Consumer) Micro-SD Karten, die direkt in das Raspberry eingesteckt werden zum Teil schon nach kürzester Zeit völlig unbrauchbar werden und ohne Backup sämtliche Logdaten verloren sind. Im industriellen Bereich werden spezielle SD Karten verwendet, die deutlich robuster gegen häufige Schreibzugriffe und äußere Umwelteinflüsse sind. Diese industriellen SD Karten (industrial grade) werden eingeteilt in die MLC- (Multi-Level Cell) und die SLC (Single-Level Cell) Technologie. Detaillierte Infos sind zu finden unter: https://www.elektronikpraxis.vogel.de/zehn-gruende-die-fuer-industrie-sd-karten-sprechen-a-284360/

Vorteile der industriellen SD Karten im Schnellüberblick:

  • hohe Zuverlässigkeit und Langlebigkeit
  • Schreibzyklen von 100.000 (SLC Flash) und für MLC-Flash (10.000) statt 200-300 in neueren SD Karten für Consumer-Anwendungen
  • aufwändige Fehlerkorrekturalgorithmen (z.B. Hamming Code) um Lese- bzw. Schreibfehlern vorzubeugen
  • gleichmäßige Verteilung der Schreibzugriffe auf alle Flash-Zellen durch das Wear-Leveling Verfahren.
  • Sicherer Schutz bei Stromausfall durch markieren fehlerhafter Sektoren
  • Rundum verschweißtes Gehäuse lässt SD Karte unempfindlich gegen äußere Spannungseinflüsse werden
  • Vergrößerte Mechanische Stabilität
  • Extra dicke und stabile Goldauflage auf Kontakten zur Erhöhung der Kontaktsicherheit und Lebensdauer

Im Projekt wurde folgende SD Karte eingesetzt: Transcend micro SDHC Card C10 Industrial 16GB für 30€ incl. Versand und MwSt.

Betriebssysteminstallation

Auf [10] wird ein Image für den Raspberry Pi angeboten, das die vollständige Betriebssysteminstallation incl. Volkszählersoftware enthält. Installation und Einrichtung sind unter folgendem Link beschrieben [11].
Folgende Skripte müssen nach der Betriebssysteminstallation noch manuell hinzugefügt werden:

Wpa_supplicant.conf

Dieses Skript beinhaltet alle Informationen über das Netzwerk, in das sich das Wlan des Raspberrys einwählen soll.

  1. Ausführbare Datei anlegen unter /etc/wpa_supplicant/ oder im Boot Verzeichnis der Linux Installation
  2. Folgender Dateiinhalt in einer Datei namens Wpa_supplicant mit der Endung .conf ablegen. Dabei unter dem Platzhalter >xxx< die jeweiligen Wlan Logindaten eintragen:
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid=">xxx<"
    psk=">xxx<"
    key_mgmt=>xxx<
}

network={
    ssid=">xxx<"
    psk=">xxx<"
    key_mgmt=>xxx<
}

3. Beim nächsten Neustart des Raspberry Pi's wird das Skript ausgeführt

Vzlogger.conf

Mit diesem Skript wird die Verknüpfung zwischen der eindeutigen UUID eines Kanals und den eingehenden Daten der seriellen Schnittstelle hergestellt. (Ausführliche Erklärung siehe Abschnitt „Einrichtung der Kanäle im „web Frontend“ und in der Konfigurationsdatei „vzloggerconf“ unter 24-48V BMS

Push-server.service

Dieses Skript aktiviert den sogenannten push-Server (siehe Abschnitt „Starten des vzloggers über WinSCP“ unter 24-48V BMS bzw. unter [12]). Die Datei ist hier abrufbar: File:push-server.zip

Shutdownbutton.py

Siehe Abschnitt "Manueller Reset/Neustart des Raspberry Pi’s" in dieser Dokumentation. Die Datei ist hier abrufbar: File:shutdownbutton.zip

Vzsqlbackup.sh

Dieses Skript legt eine wöchentliche Sicherung der einige hundert MB großen Volkszähler-Datenbank mit Speicherdatum auf einem USB Stick an. Insgesamt bleiben immer die zwei älteren abgespeicherten Datenbankspeicherstände erhalten. Alle Älteren werden gelöscht. Das Skript vzsqlbackup.sh wird wöchentlich automatisch ausgeführt, angestoßen von folgendem Befehl, der in der, auf einer Linuxinstallation existierenden Datei Crontab, angelegt werden muss. Hierfür wird die Eingabeaufforderung unter WinSCP gestartet, um per Kommandozeile über Menü --> Befehle --> „In PuTTY öffnen“ folgendes einzutippen: (siehe auch Beschreibung unter 24-48V_BMS BMS Doku Unterkapitel “ Starten des vzloggers über WinSCP„ :

# crontab öffnen
crontab -e							
# Folgende Zeile eintragen:
# jeden Sonntag um 22Uhr wird ein Backup erzeugt
00 22 * * 0 /usr/local/bin/raspiBackup.sh

Zum Erstellen des Skripts vzsqlbackup.sh wird zuerst eine leere, mit root Rechten ausführbare Datei angelegt, die unter einem der folgenden Links abgespeichert sein muss:

  1. System-Scripte mit Root-Rechten: "/usr/local/sbin"
  2. Allgemeine User-Scripte mit Benutzer-Rechten: "/usr/local/bin"

Folgender Inhalt wird im Skript niedergeschrieben. Für >xxx< wird ein beliebiges Passwort vergeben. Es erfolgt beim Anlegen des Backups keine Passwortabfrage, da dies ja automatisch ausgeführt werden soll.

#USB Stick mounten
mount /dev/sda1 /mnt/stick

#Backupdatei anlegen und abspeichern
mysqldump -u vz-admin ->xxx< volkszaehler > /mnt/stick/pi/mysqlvzbackup-$(date +%Y%m%d-%H%M%S).sql

#älteste Datei im Verzeichnis löschen
ls -tr /mnt/stick/pi/mysqlvzbackup* | head -n -2 | xargs rm -v

#Ende Skript
exit 0
Datenübergabe Arduinoboard zu Raspberry Pi

Zum Einrichten der Kanäle im Raspberry Pi siehe Abschntt Vzlogger.conf. Folgende Kanäle werden derzeit vom Arduinoboard an das Raspberry übergeben:

  • Batterie Spannung von Laderegler 1
  • Energieerzeugung Laderegler 1 + 2
  • Leistung Laderegler 1 + 2
  • Summe Leistung Laderegler 1 + 2
  • Ladestrom Laderegler 1 + 2
  • Summe Energieerzeugung Laderegler 1+2
  • Summe Ladestrom Laderegler 1 + 2
  • Ladestatus Laderegler 1 + 2
  • Errorstatus Laderegler 1 + 2
  • Vorgabewert Heizstabansteuerung
  • Saldierte Leistung Zweirichtungszähler
  • Leistungsbezug Zweirichtungszähler
  • Leistungseinspeisung Zweirichtungszähler
  • Erzeugungsleistung PV
  • Einspeiseleistung PV
  • Temperatur Schaltschrank
  • Temperatur Boiler
  • Sollwert Leistung Wechselrichter
  • Sollwert Stromaufnahme Wechselrichter
  • Balancing Status
  • SoC (State of Charge)
  • Batteriespannung
  • Lade-/Entladestrom
  • Temperatur Batterie 1 + 2
  • Zellspannung 1 - 9
Einrichtung der Kanäle im „web Frontend“ und in der Konfigurationsdatei „vzloggerconf"

Das Einrichten von Kanälen im „web Frontend“ sowie in der Konfigurationsdatei „vzlogger.conf“, die Bedienung des Web Frontends, das Starten des „vzloggers über WinSCP und letztendlich den Export von Datenbanksätzen ist ausführlich beschrieben unter der Dokumentation 24-48V_BMS im Kapitel 5.

Übertragungsgeschwindigkeit der seriellen Schnittstelle zwischen Arduino und Raspberry

Um die Übertragungsgeschwindigkeit der seriellen Schnittstelle zwischen Arduino und Raspberry zu erhöhen (Standard 9600) bzw. an den derzeitigen Arduinocode anzupassen (115200) muss folgende Zeile in der vzlogger.conf nach der Zeile "device" eingefügt werden:

"device": "/dev/ttyACM0",
"baudrate": 115200,
            "aggtime": 30,
Arduino komfortabel über das Raspberry Pi flashen

Um einen neuen Arduinocode komfortabel direkt vom Raspberry Pi auf das Arduino zu flashen, sind folgende Schritte zu befolgen:
1. Um den Vz logger zu stoppen, folgende Zeile in das Eingabefenster (putty) in WinSCP eingeben:

sudo systemctl stop vzlogger

2. Navigiere in das “home” Verzeichnis und liste alle vorhandenen Ordner auf:

ls

3. Ins Unterverzeichnis „Arduino“ wechseln (change directory):

cd Arduino

4. Code kompilieren mit richtigem Dateinamen (in diesem Falle "PV-System_20190629"):

arduino-cli compile --fqbn arduino:avr:mega PV-System_20190629

5. Code auf Arduino flashen mit richtigem Dateinamen (in diesem Falle "PV-System_20190629"):

arduino-cli upload --fqbn arduino:avr:mega --port /dev/ttyACM0 PV-System_20190629

6. vz-logger starten

sudo systemctl start vzlogger

Eine ausführliche Anleitung zur Installation der benötigten Pakete ist unter folgendem Link zu finden [13]

Einrichtung Node-Red

Die freie Entwicklungsumgebung Node-Red bietet über eine grafische Oberfläche die Möglichkeit Anwendungsfälle im Bereich Internet der Dinge (Internet of Things, IoT) intuitiv im Baukastensystem per drag&drop umzusetzen. Die einzelnen Bausteine werden durch das Ziehen von Verbindungen verbunden. Der Quellcode ist im JavaScript geschrieben. Über Benutzerdefinierte Bausteine, die ebenfalls mit JavaScript gefüllt werden können, besteht somit die Möglichkeit den individuellen Anforderungen gerecht zu werden. Weiterhin besteht die Möglichkeit über ein Webinterface Daten in unterschiedlichster Weise übersichtlich darzustellen, um bspw. dem Solarspeicherbesitzer einen schnellen Überblick über Ladezustand, Spannungsniveau, Ladestrom und Fehlermeldungen zu geben. Über die Exportfunktion können komplette Flows exportiert und in neuen Projekten funktionsfähig importiert werden. Im vorliegenden Projekt wird Node-Red für folgende Funktionen verwendet:

  1. Abgriff der Push-Daten von volkszähler zur Darstellung im Webinterface:
    • Ladestrom
    • Akkuspannung
    • Error-Code
    • Ladezustand Akkumulator
    • Aktuelle Stromerzeugung
    • Aktueller Stromverbrauch
    • Zellbalancing
    • Heizstabbetrieb
    • Heizstableistung
    • Boilertemperatur
  2. Mailversand an Solarspeicherbesitzer bei Error
  3. Berechnung der eingesparten CO2 Menge
  4. Wetterbericht für den aktuellen und die nächsten zwei Tage
  5. Berechnung der eingespeisten und verbrauchten Energie (Erzeugung, Verbrauch) für den aktuellen und die letzten zwei Tage
  6. Ansteuerung der Funksteckdose (wahlweise manuelle Bedienung, automatische Anschaltung bis Tagesende bei Stromüberschuss, automatische Anschaltung nur explizit bei Stromüberschuss

Node-Red ist über einen beliebigen Browser über das Wlannetz, in dem auch das Raspberry registriert ist, über folgenden Link (IP des verwendeten Raspberry = 192.168.1.2) erreichbar:
http://192.168.1.2:1880/
Wie im folgenden Abschnitt beschrieben, sollte die Programmierumgebung über ein Passwort vor unberechtigtem Zugriff geschützt sein. Das sogenannten Dashboard oder „UI – User Interface“ ist die optisch ansprechende Schnittstelle für den Nutzer, um die erfassten Datenströme zu visualisieren. Über verschiedene Zeiger, Balken, Schalter und Ausgaben ist es möglich sich eine professionelle Oberfläche zu gestalten. Der in diesem Projekt verwendete Flow besitzt die in folgender Abbildung dargestellte Oberfläche.

Das User Interface ist über folgenden Link zu erreichen
http://192.168.1.2:1880/ui/#/0
Im UI gibt es folgende Rubriken:

  1. Wlan-Steckdose
    Es kann über das Dropdownmenü zwischen drei verschiedenen Betriebsarten unterschieden werden:
    • Manuell: Manuelles Einschalten der Wlan gesteuerten Steckdose über den Schalter „switch“ im Dashboard
    • Takten: Die Steckdose wird automatisch angeschaltet (Verbraucher hinzugeschalten) zur Stromüberschussverwertung, so lange der Akkumulator voll ist. Fällt die Akkumulatorladung aus der Erhaltungsladung (Float) in die Ladung (Bulk) schält die Steckdose wieder aus.
    • Anbleiben: Die Steckdose wird automatisch angeschaltet (Verbraucher hinzugeschalten) zur Stromüberschussverwertung. Auch wenn der Solarertrag nachlassen und der Akkumulator dadurch entladen werden sollte, bleibt die Steckdose bis 17 Uhr angeschalten. Die Uhrzeit ist im Quellcode natürlich variabel.
  2. Akku
    • Anzeige SOC (State of Charge) Akkumulator
    • Anzeige Akkumulatorspannung
    • Anzeige Lade- und Entladestrom (Positiv und Negativ)
  3. Wechselrichter
    • Anzeige aktuelle Wechselrichterleistung
    • Anzeige letzter 20 min Wechselrichterleistung
    • Anzeige Modbusleistung
  4. Boiler
    • Anzeige Heizstableistung
    • Anzeige Boilertemperatur
  5. Fehlermeldungen
    • Ausgabe Fehlermeldungen Arduino
    • Ausgabe Fehlermeldungen BMS
    • Akku Balancing
    • Anzeige welche Zelle aktuelle gebalanct wird. Das Zellbalancing findet nur im geladenen Zustand des Akkumulator statt.
  6. Allgemein
    • Anzeige der seit Inbetriebnahme der Anlage eingesparte Co2 Menge
    • Schaltschranktemperatur
  7. Allgemein gestern / Allgemein heute
  8. Darstellung der wichtigsten Tagesdaten des laufenden und des vorhergehenden Tages wie:
    • Erzeugung WR in [kWh]
    • Erzeugung Laderegler (LR) [kWh]
    • Eingesparte Stromkosten [€]
    • Solare Deckung [%]
    • CO2 Einsparung [kg]
    • Gesamtstromverbrauch [kWh]
  9. Wettervorhersage morgen, übermorgen, überübermorgen
    • Anzeige einer Kurzwettervorhersage zur Einschätzung des Solarertrags der kommenden Tage

Der Flow befindet sich noch im Entwicklungsstadium, eine Zwischenstand steht hier zum Download bereit File:Nodered Flow.zip.

Installation von Node-Red

Die folgende Installationsanleitung erfolgt in Anlehnung an das Youtube-Video „Node-Red Tutorial Part 1 Installation Haus Automatisierung“.[2] In der Regel ist auf dem Image der Linuxinstallation Raspian Strech Node-Red schon installiert, aber nicht in vollem Funtkionsumfang wie es hier benötigt wird. Deshalb muss zunächst ein Update der vorhandenen Programmpakete durchgeführt werden mit:

update-nodejs-and-nodered

Es erfolgt die Abfrage “Are you really sure to do this?” Mit „Yes“ bestätigen. Die Installation kann bis zu 20min dauern. Im Anschluss wird die installierte Version angezeigt und mittels Häckchen der Erfolg der Installation einzelner Komponenten angezeigt.

Um die Node-Red Oberfläche vor ungewolltem Zugriff zu schützen, wird nun noch der sogenannte "Node-Red-admin" installiert. Dies erfolgt global und nicht im Node-Red Verzeichnis:

sudo npm install -g node-red-admin

Um nun ein sicheres Passwort zu generieren wird folgender Befehl eingeben:

node-red-admin hash-pw

Nun wird ein beliebiges Passwort eingeben, das „gehasht“ werden soll. Den nun angezeigten Hash kopieren und wie folgt beschrieben in der „config“ eintragen.
Folgende Datei öffnen:

vi ~/.node-red/settings.js

Folgende Zeilen einkommentieren und den generierten Hashcode unter „password“ einfügen, sowie einen "username" vergeben.

Datei speichern mit folgendem Befehl

:wq

Nun muss noch der automatische Node Red Start bei Systemstart eingestellt werden mit:

sudo systemctl enable nodered.service

Ein Restart des Programms nach Installation durchführen:

sudo service restart

Ein Zugriff auf die Programmieroberfläche erfolgt über einen beliebigen Browser in der Eingabezeile über die IP des Raspberry Pi's (z.B. 192.168.1.2:1880). Um auf die Nutzeroberfläche zur professionellen Darstellung von Flowergebnissen (Dashboard) von Node-Red zu gelangen, wird dieses nun wie folgt installiert: Auf der Programmieroberfläche unter dem „Burgermenü“ rechts oben auf „Manage palette“ klicken, dann auf „install“ und in die Suche „dashboard“ eingeben. „Node-red-dashboard installieren“ klicken. Der Zugriff auf das Dashboard erfolgt über die IP des Raspberry Pi's (z.B. 192.168.1.2/ui).

Installation von MQTT bzw. des MQTT Brokers

Anleitung in Anlehnung an folgende Tutorials [3][4]
Zuerst muss das “Repository” mit folgenden zwei Befehlen hinzugefügt werden:

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquito-repo.gpg.key

Nun das Verzeichnis wechseln:

cd /etc/apt/sources.list.d/

Die Pakete updaten:

sudo apt-get update

Nun wird die „mosquitto stretch list“ für verschiedene Pakete hinzugefügt:

sudo apt-get install mosquitto mosquitto-clients python-mosquitto

Tritt folgende Fehlermeldung auf, folgenden Workaround durchführen:

# Fehlermeldung: „Konnte nicht alle Pakete installieren, folgende Pakete haben unerfüllte Abhängigkeiten: mosquitto: Hängt ab von libwebsockets3 (>=1.2)ist aber nicht installierbar“

1. Zurück aus dem Verzeichnis /etc/apt/sources.list.d ins Grundverzeichnis wechseln über: cd
2. Manuelle Installation des fehlenden Paketes mit folgenden zwei Befehlen:

wget http://ftp.nz.debian.org/debian/pool/main/libw/libwebsockets/libwebsockets3_1.2.2-1_armhf.deb
sudo dpkg -I libwebsockets3_1.2.2-1_armhf.deb

3. Erneuter Installationsversuch von mosquitto durchführen:

sudo apt-get install mosquito mosquito-clients

4. Starten des MQTT Broker

sudo service mosquito start

In der Programmieroberfläche von Node-red kann nun der Node „mqtt“ auf die Oberfläche gezogen werden (vgl. hierzu auch Kapitel Funksteckdose). Ist das Node angeklickt, so erscheint wie in folgender Abbildung dargestellt, das folgende Fenster. Dort unter Server und Topic abgebildete Inhalte eintragen. Ein Klick auf den Stift hinter dem Eingabefeld Server führt zu dem abgebildeten Eingabefenster: Auch hier den Servernamen „localhost“ eintragen. Unter dem Register„Security“ müssen nun nochmals die oben erwähnten Anmeldedaten eingegeben werden. Abschluss der Einstellungen mit der Schaltfläche „Update“. Für weiterreichende Infos zur Ansteuerung einer Funksteckdose über das MQTT Protokoll siehe Abschnitt „Funksteckdose“.

Funksteckdose

Im vorliegenden Projekt wird die Wlan Steckdose Sonoff Tasmota S 20 Smart verwendet und über NodeRed auf dem Raspberry angesteuert. Diese Steckdose kommuniziert über das MQTT Protokoll mit dem Raspberry, das im Internet der Dinge weite Verbreitung gefunden hat. Vor Verwendung der Steckdose für die eigenen Zwecke muss die Firmware auf dem integrierten Chip ESP 8266 neu geflasht werden. Neuerdings ist es auch möglich einen Steckdosen-Schalter mit Tasmota auch fertig geflasht zu kaufen z.B. unter: [5]

Die theoretischen Grundlagen zur Wlan Steckdose sind unter folgenden Links zu finden:

  • Generelle Beschreibung der Sonoff Tasmota S20 Funksteckdose[6]

Unter Youtube sind folgende Tutorials zu empfehlen:

1. Sonoff Teil 4 - FHEM-Integration haus-automatisierung [7]
2. Sonoff Teil 17 - Die verfügbaren Befehle und die Konsole [8]

Weitere Infos zur Sonoff-Tasmota Steckdose sind unter Github zu finden:[9], [10]

Weitere Infos zum MQTT Protokoll sind unter folgenden Links zu finden:

1. Beschreibung des MQTT (Message Queue Telemetry Transport) Protokolls: [11] [12]
2. Funkkommunikation zwischen Raspberry Pi’s mittels MQTT Broker/Client: [13]

Um die Steckdose über das Raspberry selbst ansteuern zu können, muss die Firmware des IC’s ESP8266 geflasht werden. Eine Beschreibung und ein Wiki sind hierzu unter folgenden Links zu finden: [14] [15]

Das unter folgendem Link vorhandene Tutorial erklärt den Hardwareanschluss des IC’s ESP8266 zu flashen: [16]

Folgendes Tutorial beschreibt den Software-flash mit dem Esp-Tool:[17]

Voraussetzungen zum Flashen der Software der Sonoff Tasmota Funksteckdose sind:

  1. Youtube-Video: „NodeRed Tutorial Part 1 Installation Haus Automatisierung“[2]
  2. Installation von Node-Red und dem Node-Red Dashboard auf dem Raspberry (siehe Abschnitt Einrichtung Node-Red )
  3. NodeRed/UI vor fremden Zugriff schützen (siehe Abschnitt Einrichtung Node-Red )
  4. MQTT Client installieren durch Hinzufügen des mosquitto repository (siehe Abschnitt Einrichtung Node-Red )
  5. Wlan Steckdose einstecken
  6. Installation eines MQTT-Brokers auf dem Raspberry Pi (siehe Abschnitt Einrichtung Node-Red )

Sind alle oben genannten Voraussetzungen erfüllt, so ist die Weboberfläche der Steckdose über deren IP zugänglich. Um die richtige IP herauszufinden ist es ratsam diese nach Einstecken der WLAN Steckdose in den Routereinstellungen auszulesen.

Weboderfläche der Wlan Steckdose

In der Weboberfläche der Wlan-Steckdose gibt es unter "Main Menu" --> "Konsole" die Möglichkeit direkt Befehle an die Steckdose zu senden: Hier können alle Befehle aufgelistet in [18] direkt an die Steckdose gesendet werden und die Antwort direkt beobachtet werden. Z.B. „Power on“ –> Steckdose an; „Power off“ --> Steckdose aus. Der Pfad unter dem die Steckdose später über das MQTT Protokoll vom Raspberry aus erreichbar sein wird, kann selbst gewählt werden und ergibt sich aus der Hierarchiestruktur, die im eigenen Smarthome erwünscht ist. Hier im Beispiel soll die Steckdose die Schreibtischlampe an- und ausschalten. Die Steckdose ist erreichbar unter /SmartHome/Buero/Schreibtischlampe. Dabei bezeichnet man die Hierarchiestufe „Schreibtischlampe“ als „Topic“ und /cmd /stat /tele als „Prefix“. Siehe hierzu auch folgende Abbildung.

Je nachdem ob ein Befehl gesendet oder ein Response an der Steckdose ankommt, ist dann der Pfad entsprechend abgeändert zu …/tele oder …/stat oder …/cmd

Bsp.: In unserem Beispiel heißt das Topic „Schreibtischlampe“. Für die Konfiguration der Funksteckdose also im Feld „Topic“ „Schreibtischlampe“ eintragen. Der Pfad „full topic“ soll heißen:
/SmartHome/Buero/%topic%/%prefix%
Also folgende Einstellungen im Webinterface der Steckdose vornehmen:

Passend zu den Einstellungen in der Wlan Steckdose sind nun auch in Node Red einige Einstellungen vorzunehmen:

1. Zuerst Folgenden Flow mit zwei MQTT Nodes und einem Schalter (switch) aufbauen, der in diesem Beispiel den Namen Schreibtischlampe erhält. Das Dashboard ist erreichbar über die jeweilige IP es Raspberry Pi's 192.168.1.2:1880/

2. Im MQTT IN Node sowie im MQTT OUT Node folgende Einstellungen vornehmen:

3. Mit „Done“ und „deploy“ Eingaben bestätigen. Nun sollte die Funksteckdose beim Schalten des „Switch“ Nodes hörbar klacken und sich dabei an- und aus schalten.

Temperatursensoren

Die Temperaturmessung im Schaltschrank sowie am thermischen Speicher erfolgt mittels LM35 Temperatursensoren (Precision Centigrade Temperature Sensors). Diese analogen Sensoren sitzen im TO-92 Gehäuse, haben eine Temperaturgenauigkeit von +-0,5°C (±¼°C at room temperature and ±¾°C over a full −55°C to 150°C temperature range) und sind für einen Temperaturbereich von -55°C bis 150°C ausgelegt. Der LM 35 ist bei der Herstellung kalibriert in Grad Celsius. Die Ausgangsspannung ist direkt linear zur Temperatur ( Linear 10 mV/°C). In folgender Abbildung ist die Anschlusssituation aus dem Datenblatt erkennbar.

Der Temperatursensor wird mit +5V versorgt und kann direkt an einen digitalen Eingang des Arduino angeschlossen werden. Der LM35 in Form im TO-92 Gehäuse wird folgendermaßen fertig konfektioniert:

  • An die drei Beinchen Verlängerungskabel ansetzen und mit Schrumpfschlauch gegen Kurzschluss sichern
  • Den Temperaturfühler mit Anschlusskabel in eine leere Temperaturfühlerhülse (Durchmesser 6mm) schieben
  • Ggf. mit Isolierband/wasserdichtem Isolierband oder Silikon abdichten
  • Leitungsenden mit Kabelschuhen ausstatten

Heizstabregelmodul

Zur Überschussstromverwertung (bei Nichteinspeisung ins Netz) wird ein Heizstab integriert in den Hauswarmwasserspeicher installiert. Dieser Heizstab kann bei Bedarf modulierend bis zu 30A Überschussstrom in Wärme umsetzen. Das Regelmodul (DC 10-50V Drehzahlsteller Motor Regler Controller 60A PWM 12V 24V 48V 3000WTE573) wird verwendet, um den Heizstab per Pulsweitenmodulation (PWM) in seiner Leistung zu regeln. So wird es möglich zu jedem Zeitpunkt genau den Strom in Wärme zu verwandeln, der nicht zur Ladung des Akkumulators oder zur Deckung des Stromverbrauches im Haushaltes verwendet wird. Die Ansteuerung des Motorreglers, der in der Nähe des Heizstabes sitzen sollte, erfolgt wiederum über einen geglätteten 0-5V Pegel (R-C Glied auf der Arduinoplatine) gesteuert über einen Analogausgang des Arduino.

Der Motorregler besitz folgende technischen Daten:

Überschrift Überschrift
Frequenz 15000 Hz
Nennstrom 60 A (Maximale Leistung)
Spannungsversorgung 10 - 50V DC
Steuermotorleistung 0,01 - 3000 W
12 V, 24 V, 36 V, 50 V 720 W (max), 1440 W (max), 2160 W (max), 3000 W (max)
Bereitschaftsstrom 0,04 A
Regelbereich 5 - 100%
PCB Größe 22 x 87 x 32mm

Über ein Relais wird der Motorregler an und ausgeschalten, um in Zeiten mit wenig Überschussstrom (Winterperiode) oder bei Gefahr des Überhitzens des Wasserspeichers den Heizstab komplett deaktivieren zu können. Um ein Überhitzen des Wasserspeichers zu vermeiden, wird die Wassertemperatur über einen Temperatursensors (LM 35 siehe Abschnitt „Temperatursensoren“) überwacht und ggf. der Heizstab deaktiviert oder gedrosselt. Das Heizstabregelmodul und alle weiteren Anschlüsse für Heizstab und Temperatursensoren sind in ein Gehäuse eingepasst, das zusammen mit dem Relais auf eine Hutschiene montiert wird.

Verdrahtung und Anschluss siehe Verdrahtungsplan im Abschnitt "Aufbau des Systems". Zum Anschluss des Heizstabregelmoduls ist somit eine zweiadrige 6mm^2 Leitung vom Schaltschrank sowie eine geschirmte Daten- und Steuerleitung 2x2 Adern (z.B. LIYCY TP 2X2X0,5) notwendig.
Weiterentwicklung:

Es zeigt sich, dass die Qualität der verwendeten PWM Platine nicht den Erwartungen entspricht. Zum wiederholten Male brennen Mosfets schon bei 50% (ca. 30A) der vom Hersteller angegebenen maximalen Last (60A) durch. Zur Lösung dieses Problems ist es angedacht, eine eigene PWM Platine aus drei Hochleistungsmosfets mit Kühlkörper und einem eigenen Mosfettreiber zu konstruieren. Die Absicherung der Mosfets vor Überlastung und Kurzschluss erfolgt mithilfe eines High Side Switch mit Kühlkörper. Ein erster Prototyp besteht bereits, muss aber an Tagen mit viel Sonne noch getestet werden. Weitere Konstruktionsdetails folgen in Kürze an dieser Stelle.  

Absicherungskonzept

Das System verfügt über mehrere Sicherungsautomaten bzw. Schmelzsicherungen. Wie auch im Verdrahtungsplan im Abschnitt "Aufbau des Systems" zu erkennen ist, wird der Akkumulator im Pluspolkabel mit einer 32A Neozyd Schmelzsicherung abgesichert. Ein Sicherungsautomat erwies sich als ungeeignet, da Rückkopplungen zwischen BMS und Sicherungsautomat ungewohnten Geräusche verursachten. Der Pluspol zur Heizstabplatine ist ebenfalls mit einer 32A Neozyd Schmelzsicherung ausgestattet. Weiterhin sind die PV Module über 16A Sicherungsautomaten abgesichert. AC seitig ist der Solar-Schaltschrank im Haushaltsschrank mit einem 16A Sicherungsautomat abgesichert. Weiterhin verfügen die Laderegler jeweils über eine 20A (Auto-)Schmelzsicherung. Bei Schaltschrankwartungen ist dafür zu sorgen, dass dieser über die Sicherungen sowohl AC als auch DC seitig spannungslos geschalten wird. Reihenfolge für Abschaltung der Anlage (Einschaltung erfolgt in umgekehrter Reihenfolge):

  1. Heizstabsicherung abschalten
  2. PV Module abschalten
  3. BMS ausschalten
  4. Raspberry ausschalten
  5. Akkumulatorsicherung ausschrauben
  6. AC seitige Sicherung im Haushaltschaltschrank abschalten

Modbuszähler

Zur phasen- und richtungsweis korrekten Erfassung des Hausverbrauchs der Phasen L1 bis L3 sowie der Solareinspeisung ins Hausnetz werden Hutschienenmodbuszähler eingesetzt, die per Modbusprotokoll über ein CAT5 Kabel mit dem Arduino kommunizieren. Die erfassten Werte werden für die Regelstrategie des Wechselrichters benötigt. Es ist angedacht bei Systemen mit modernen digitalen Stromzählern mit IR-Schnittstelle und geeigneter Auflösung den Solar- und Hausverbrauch direkt über die IR-Schnittstelle auszulesen und dem Arduino zu übermitteln.

Zweirichtungszähler für Hausverbrauch

Zur Erfassung des Hausverbrauches kommt folgender Zweirichtungszähler zum Einsatz:

Überschrift Überschrift
Modell Drehstromzähler für Hutschiene
Fabrikat DVH4013
Herstellerbezeichnung 4-Leiter Direktanschlußzähler für Wirkenergie
Klasse B
Spezifikation 3 x 230 / 400 V, 5 / 65 A
Messwerke +A, -A
Tarife 4
Sonstiges mit LCD-Display 7-stellig, mit MID-Konformitätszertifizierung

Der Einbau erfolgt durch eine autorisierte Elektrofachkraft in den Hausschaltschrank des jeweiligen Objektes direkt nach dem verplombten Eingangszähler des Netzbetreibers.

Anschluss Modbuskommunikation

Der Anschluss der Modbuskommunikation erfolgt an Klemme 22 auf die grün-weiße Ader eines CAT5 Kabels und an Klemme 23 auf die grüne Ader des CAT 5 Kabels.

Zähler für Solareinspeisung

Die Solareinspeisung des einphaisgen Miniwechselrichters AE Conversion serfolgt über einen 16A Sicherungsautomat auf eine beliebige Phase im Hausschaltschrank. Folgender Einphaseneinrichtungszähler kommt zum Einsatz:

Überschrift Überschrift
Modell Einphasen-Stromzähler für Hutschiene
Fabrikat SDM120 Modbus
Spezifikation 5(45)A 230V
Sonstiges RS485 Modbus and pulse output,

Der Einbau erfolgt durch eine autorisierte Elektrofachkraft in den Hausschaltschrank des jeweiligen Objektes noch vor dem Sicherungsautomaten des Wechselrichters.

Anschluss Modbuskommunikation

Der Anschluss der Modbuskommunikation erfolgt an Klemme 9 auf die grün-weiße Ader eines CAT5 Kabels und an Klemme 10 auf die grüne Ader des CAT 5 Kabels. Beide Modbuszähler werden in Reihe miteinander verbunden. Hierzu dient bisher ein CAT 5 Adapter mit Minischraubklemmen, der in einem Gehäuse auf der Hutschiene befestigt werden kann.

Batteriemanagementsystems (BMS) Libre Solar

Eine ausführliche Anleitung zum Bau und zum Verständis des Batteriemanagementsystems (BMS) für den Akkumulator ist unter folgendem Link zu finden 24-48V_BMS.

Aufbau des Systems

Ziel des Systemaufbaus ist es so einfach und kompakt wie möglich alle Systemkomponenten des Solarspeichers in einem Standardschaltschrank unterzubringen. Die Befestigung mithilfe des Hutschienensystems auf einer geerdeten Grundplatte bietet sich an. Die Kabelführung erfolgt in ausbrechbaren Verdrahtungskanälen, die Stromverteilung erfolgt mithilfe von Wagoklemmen. Mess- und Steuerleitungen sollten im Besten Falle getrennt von den leistungsführenden Leitungen z.B. in zweikammerigen Verdrahtungskanälen verlegt werden. Ziel ist es alle Mess- und Steuerleitungen mit eindeutigen Steckern zu versehen, sodass schnell die passenden Buchsen auf den jeweiligen Platinen gefunden werden können. Die Pulsweitenmodulation (PWM) des Heizstabregelmoduls erzeugt ein elektromagnetisches Störfeld welches die Temperaturmessung am Trinkwarmwasserspeicher (sofern die Messleitung des Temperatursensors in der Nähe der Heizstabversorgungsleitungen liegt) stört. Aufgrund dessen ist das Heizstabregelmodul extern in der Nähe des Trinkwarmwasserspeichers angebracht. Das Anschlusskabel zum Heizstab ist somit kurz und es treten keine elektromagnetischen Störungen entlang des Verbindungskabels Solarschaltschrank --> Haushaltsschaltschrank auf. Aufgrund der Notwendigkeit der dreiphasigen Strommessung am Hauseingangszähler sitzt der dreiphasige Modbuszähler extern im Hausschaltschrank und ist mit einem CAT5 Kabel mit dem Solarspeicher verbunden. Die Modbusmessung der Solareinspeisung erfolgt im vorliegenden Projekt ebenfalls im Hauschaltschrank, kann aber genauso direkt im Schaltschrank des Solarspeichers gemessen werden. Die Reihenschaltung der Solarmodule erfolgt im vorliegenden Projekt mithilfe von gebrückten Wago-Doppelreihenklemmen. Um Kabelmeter und Leitungsverluste zu vermeiden ist zu empfehlen die Verschaltung der Module mittels PV Stecker direkt auf dem Dach herzustellen. Somit erreichen nur noch 2 x 6mm^2 Ölflexkabel den Schaltschrank. Es ist zu empfehlen den Schaltschrank so zu dimensionieren, dass der Lithium-Akkumulator ebenfalls im unteren Teil des Schaltschrankes Platz findet. Im vorliegenden Projekt dienten zuerst große geschlossene Bleiakkumulatoren als Energiespeicher, die außerhalb und direkt hinter dem Schaltschrank zur Aufstellung kamen. Nach Ersatz der Bleiakkumulatoren durch einen LiFePo4 Akkumulator kam mangels Platz im Schaltschrank auch dieser außerhalb zur Aufstellung. Da die Wechselrichter für die Montage unter dem Solarmodul auf dem Dach gedacht sind, gibt es an deren Gehäuse nur zwei stark exzentrische Laschen zur Befestigung. Im vorliegenden Projekt werden die Wechselrichter mithilfe zweier Gewindestangen, Muttern und großen Unterlegscheiben flach übereinander befestigt. Es besteht alternativ auch die Möglichkeit mithilfe von Winkeln den Wechselrichter um 90° gedreht im Schaltschrank unterzubringen.


Interne Systemkomponenten

  • Wechselrichter
  • Laderegler
  • BMS
  • Lüfter
  • Raspberry
  • Arduinoplatine, Mosfetplatine
  • Stromversorgung
  • Sicherungsautomaten
  • Wagoverteiler
  • Temperatursensor Schaltschrank

Externe Systemkomponenten

  • Modbuszähler
  • Zähler Solareinspeisung
  • PV Module
  • Heizstabregelmodul
  • Temperatursensor Trinkwasserspeicher
  • Akkumulator

Schaltschrank

Im vorliegenden Projekt ist folgender Schaltschrak im Einsatz:

  • Schaltschrank (H / B / T) 600mm x 600mm x 300mm IP65 für ca. 100€
  • Kabeleinführung: oben
  • Türanschlag: rechts

Materialliste

Eine ausführliche Materialliste inklusive Preise stehen für das vorliegende Projekt in der Exceltabelle „PV_Berechnung_Energiespeicher“ (siehe Kapitel "Berechnung, Simulation, Auslegung, Kostenberechnung, Optimierung" in dieser Doku) im Registerblatt „Kostenberechnung 2.Prototyp LiFePo“ zur Verfügung.

Verdrahtungsplan

Unter folgendem Link ist der Schaltplan des Solarspeichers entweder als .pdf oder als einzelne .svg Dateien abrufbar .

Systemwirkungsgrad

Um die Gesamteffizienz des Solarspeichersystems zu untersuchen sind im Folgenden vier Beispieltage ausgewählt und die erzeugten und umgesetzten Energiemengen dargestellt. Die Graphiken der jeweiligen Tagesverläufe sind unter folgenden Links abrufbar:

WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)

Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)

Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)

Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)

Auswertung Systemgesamteffizienz (Solaranlage mit 1kWp)

Betrachtungszeitraum 20.07.2019: 22.07.2019 23.07.2019 24.07.2019
Systemkonfiguration 1x WR 350 W, Heizstabbetrieb, WR auf Volleinspeisung sobald Akkumulator annähernd voll 1x WR 350 W, Heizstabbetrieb, WR auf Volleinspeisung sobald Akkumulator annähernd voll 1x WR 350 W, Heizstabbetrieb, WR auf Volleinspeisung sobald Akkumulator annähernd voll 1x WR 350 W, Heizstabbetrieb, WR auf Volleinspeisung sobald Akkumulator annähernd voll
Energieerzeugung
Ladereglererzeugung 3,81 kWh 4,03 kWh 4,13 kWh 4,1 kWh
Energieverbrauch
Temperaturerhöhung Boiler 882 kJ bzw. 0,25 kWh 655 kJ bzw. 0,18 kWh 1961 kJ bzw. 0,54 kWh 0,34 kWh
Wechselrichterleistung 3 kWh 3,03 kWh 3,38 kWh 3,38 kWh
Ladedifferenz Akku/24h Morgens SOC 54 %, abends SOC 63 %, 6,3 Ah = 0,18 kWh Morgens SOC 60 %, abends SOC 79 %, 13,3 Ah bzw. 0,38 kWh Morgens SOC 78 %, abends SOC 60 %, 12,6 Ah bzw. 0,36 kWh Morgens SOC 60 %, abends SOC 50 %, 7 Ah bzw. 0,20 kWh
Systemwirkungsgrad
Nutzen / Aufwand = (0,25 + 3) / (3,81 - 0,18) = 89,5 % =(3,03 + 0,18) / (4,03 - 0,38) = 88 % =(0,544 + 3,38) / (4,13 + 0,36) = 87,4 % = (0,34 + 3,382) / (4,1 + 0,2) = 86,5 %

Berechnung, Simulation, Auslegung, Kostenberechnung, Optimierung

Das Exceltool stellt folgende Funktionen zur Verfügung:

  • Simulation eines Batteriespeichersystems in Anlehnung an das durchgeführte Projekt
  • Material und Preisliste der verwendeten Materialien
  • Möglichkeit der energetischen und wirtschaftlichen Optimierung eines Solarspeichers

Das Exceltool ist unter folgendem Link downloadbar: File:200104_Berechnung_Simulation_Optimierung_Energiespeicher_Soldorado_Open_Solar_Systems.zip

Beschreibung der einzelnen Registerkarten

Registerkartenübersicht

  • Registerkarte 1 Begriffsdefinitionen
  • Registerkarte 2 Anleitung --> Infos zur Benutzung des Exceltools
  • Registerkarte 3 Deckblatt --> Eingabe der Eingabedaten und Ausgabe der Ergebnisse
  • Registerkarte 4 Optimierung --> Möglichkeit der Optimierung der Speichersystemauslegung
  • Registerkarte 5 Berechnung --> Speicherberechnung
  • Registerkarte 6 Kostenberechnung 2.Prototyp LiFePo --> Hauptblatt der Kostenberechnung der untersuchten vier Systemtypen
  • Registerkarte 7 Ladereglerauslegung --> Auslegung und Dimensionierung verschiedener Systemkombinationen aus PV Modulen und Laderegler
  • Registerkarte 8 Kosten BMS Platine --> Unterblatt zur Kostenberechnung
  • Registerkarte 9 Kosten Heizstabmodul --> Unterblatt zur Kostenberechnung
  • Registerkarte 10 Kosten Systemtyp 4 Minipv --> Unterblatt zur Kostenberechnung
  • Registerkarte 11 Kosten Verbindungsmodul Modbus --> Unterblatt zur Kostenberechnung
  • Registerkarte 12 Kosten Spannungswandlermodul --> Unterblatt zur Kostenberechnung
  • Registerkarte 13 Kosten Arduino- und Mosfetplatine --> Unterblatt zur Kostenberechnung
  • Registerkarte 14 solare Einstrahlung --> Wetterdatenbank für solare Einstrahlung in Abhängigkeit der Dachausrichtung
  • Registerkarte 15 Lastprofilablage --> Datenbank unterschiedlicher Lastprofile in Abhängigkeit vom Jahresgesamtstromverbrauch des Haushalts
  • Registerkarte 16 Hintergrunddaten
  • Registerkarte 17 Änderungsmanagement

Registerkarte 1 „Begriffsdefinitionen“

  • Autarkiegrad [%]

Direkt (bzw. indirekt über Batterie) verbrauchte solar erzeugte Strommenge im Haushalt in Prozent gemessen am jährlichen Stromverbrauch.

Autarkie = direkt (bzw. indirekt über Batterie) verbrauchte solare Strommenge / Stromjahresverbrauch

  • Eigenverbrauch bzw. Systemwirkungsgrad [%]

Direkt verbrauchte Strommenge gemessen am jährlichen Verbrauch.

Eigenverbrauch = direkt (bzw. indirekt über Batterie) verbrauchte solare Strommenge / jährliche Erzeugung

  • Systemwirkungsgrad

Systemwirkungsgrad in Prozent sagt aus, wieviel der eingestrahlten Energie auf die PV Mdule letzendlich verwendet wurde

Registerkarte 2 Anleitung

Infos zur Benutzung des Exceltools.

Registerkarte 3 Deckblatt

Hier werden unter den Zeilen „Eingabedaten“ alle relevanten Eckdaten der PV Berechnung eingegeben und unter Ergebnisse alle relevanten Berechnungsergebnisse ausgegeben. Bei der Eingabe ist zu empfehlen die jeweiligen Hinweise in den Eingabezellen zu beachten. Eingabedaten sind im Einzelnen:

  • Modulwirkungsgrad in % z.B. 16%
  • Wirksame Modulfläche in m^2 z.B. 1,66m^2
  • Modulanzahl
  • Dachausrichtung (Auswahlmöglichkeit durch hinterlegten Datensatz für Standort Stuttgart bei 30° Dachneigung: Ost, Süd-Ost, Süd, Süd-West, West)
  • Dachneigung: bisher nur 30° möglich
  • Systemspannung (zur Berechnung der Batteriekapazität) z.B. 24 oder 48V
  • Batteriegröße in Ah zur Berechnung der Batteriekapazität in Wh
  • Maximal zugelassene Tiefentladung der Batterie in %: zur Berechnung der effektiv zur Verfügung stehenden Batteriekapazität z.B. 50% bei Bleiakkumulator, 80% bei LiFePo Akkumulator
  • Batteriewirkungsgrad z.B. 70% bei BleiAkkumulator, 90% bei LiFePo
  • Systemkürzel (definiert für Systemtyp 1 + 2 mögliche Systemkombinationen aus PV Modulen und Ladereglertypen. (Batteriespannung - Modultyp - Anzahl PV Module – Preis) (für Kostenberechnung)
  • Anzahl Batteriezellen (für Kostenberechnung) z.B. 2x 12V bei BleiAkkumulator und 24V Systemspannung oder 15x3,2V bei LiFePo Zellen für ein 48V System
  • Anzahl Miniwechselrichter (für Kostenberechnung)
  • Miniwechselrichtertyp von AE Conversion z.B. 350W oder 500W (für Kostenberechnung)
  • Wechselrichterwirkungsgrad z.B. 92%
  • Stromkosten in €/kWh (für Kostenberechnung)
  • Stromkostensteigerung pro Jahr (für Wirtschaftlichkeitsberechnung) in % (bisher nicht verwendet)
  • Stromjahresbedarf der zu versorgenden Wohnung/ des Hauses in kWh (für die Berechnung eines geeigneten Verbrauchsprofils
  • Typ Verbrauchsprofil: bisher nur EFH möglich (geplant MFH)
  • Primärenergiefaktor Strom nach EnEV (Berechnung der eingesparten Co2 Emissionen)
  • Einspeisevergütung Strom in €/kWh zur (für Amortisationsberechnung)
  • Systempreis €/kWp (bisher nicht verwendet)
  • Wärmekosten €/kWh (für Amortisationsberechnung)
  • Staatliche Förderung Speicher/Solaranlage für Wirtschaftlichkeitsberechnung (bisher nicht verwendet)
  • Installationslänge Solarschaltschrank zu Haushaltsschaltschrank (für Kostenberechnung)
  • Installationslänge Solarmodule zu Haushaltschaltschrank (für Kostenberechnung)
  • Installationslänge Solarmodule zu Solarschaltschrank


Die Berechnungsergebnisse werden für vier Systemtypen berechnet, die wie folgt definiert sind:

  • Systemtyp 1: Speichersystem mit Akkumulator, Eigenverbrauch und Heizstab ohne Netzeinspeisung.
  • Systemtyp 2: Speichersystem mit Akkumulator, Eigenverbrauch und Netzeinspeisung
  • Systemtyp 3: konventionelles System mit Eigenverbrauch.

Hinweis zu Systemtyp 3:
Die Kostenberechnung ist hier sehr einfach gehalten und erfolgt anhand des Systempauschalwertes in €/kWp, der im Deckblatt in der Zelle „Systempreis“ definiert wurde (z.B. 1300€/kWP). Um ein „konventionelles System“ energetisch abzubilden, ist die „Summe der effektiven Wechselrichterleistung“ auf für konventionelle Systeme übliche Werte anzuheben indem z.B. die Anzahl der Wechselrichter im Eingabefeld „WR Typ AE Conversion(350W oder 500W)“ angehoben wird.

  • Systemtyp 4: Minipv ohne Speicher, Direkteinspeisung Steckdose.

Hinweis zu Systemtyp 4:
Diese Systemkonfiguration ergibt Sinn für kleinere Systemkombinationen mit z.B. 2-3 Solarmodulen.

Allgemeine Hinweise: Für eine nachvollziehbare Systemauslegung und Kostenberechnung wurden für Systemtyp 1 und Systemtyp 2 sogenannte Systemkürzel eingeführt. Diese bestehen aus drei Zahlen getrennt durch Bindestrich (Bsp.: 33V-60-4). Dabei steht die erste Zahl für die Batteriespannung (28,8V, 33V oder 48V), die zweite Zahl für den Modultyp (60 zellige Module oder 72 zellige Module) und die dritte Zahl für die Modulanzahl (3 - 20 Module). Diese Systemkürzel müssen im Deckblatt in der Zelle „Systemkürzel“ korrekt definiert werden und manuell darauf geachtet werden, dass die zu einem Systemkürzel dazugehörigen Werte in den anderen Eingabezellen wie „Systemspannung“ (28,8V, 33V oder 48V), „Modultyp“ (60-zellig oder 72-zellig) und die „Modulanzahl“ korrekt eingegeben sind.

Folgende Berechnungsergebnisse werden angezeigt:

  • effektive Batteriegröße [Wh]
  • Anzahl Ladezyklen pro Jahr [-]
  • eingestrahlte Solarenergie pro Jahr [kWh/m^2/a]
  • zur Verfügung stehende Solarenergie in Bezug auf konkrete Anlage (incl. ηModul und ηWR) [kWh]
  • verwendete Solarenergie [kWh]
  • vorgegebenes jährliches Lastprofil [kWh]
  • Eigenverbrauch (ohne Wärme, nur Strom) [%]
  • Batteriespeicherverluste [kWh/a]
  • Prozentualer Anteil eingespeister Leistung an max. möglichem [%]
  • Autarkiegrad [%]
  • Strom an WW Speicher [kWh/a]
  • Netzeinspeisung Überschuss [kWh]
  • Gewinn durch Einspeisevergütung und selbst verbrauchten Strom [€]
  • Aufwand/Kosten ohne MwSt [€]
  • Amortisation [a]
  • Eingesparte Co2 Menge [t/a]

Hinweis: Ist in der Registerkarte Optimierung das Häkchen Optimierung aktiviert, so sind alle rot eingefärbten Eingabefelder in der Registerkarte Deckblatt inaktiv/nicht aktuell!

Registerkarte 4 Optimierung

Diese Registerkarte soll unter Beachtung und mithilfe gezielter Veränderungen verschiedener Randbedingungen bei der Optimierung der Speichersystemauslegung unterstützen und helfen, dass der Nutzer ein energetisch und wirtschaftlich optimales Speichersystem auswählt. Um die Optimierung für die Systemtypen 1 und 2 anzuschalten muss das Häkchen Optimierung aktiviert sein. Beachte, dass dann in der Registerkarte Deckblatt alle rot eingefärbten Eingabefelder inaktiv/nicht aktualisiert werden. Die Registerkarte Optimierung bietet die Möglichkeit zwei Optimierungsziele festzulegen und diese in Bezug zueinander in einem 2 D Diagramm darzustellen und auszuwerten in Abhängigkeit von bis zu 5 Stellgrößen.

Optimierungsziele können sein:

  • Autarkiegrad [%]
  • Eigenverbrauch [%]
  • Systemgesamtkosten [€]
  • Amortisationszeit [a]

Stellgrößen können sein:

  • Modulanzahl [St]
  • wirksame Modulfläche [m^2]
  • Dachausrichtung
  • Dachneigung [°]
  • Batteriegröße [Wh]
  • Anzahl Wechselrichter [St.]
  • Wechselrichtertyp (350W oder 500W)
  • Stromkosten [€]
  • Stromkostensteigerung pro Jahr [€/a]
  • Stromjahresbedarf [kWh/a]
  • Typ Verbrauchsprofil
  • Einspeisevergütung [€/kWh]
  • Wärmekosten [€/kWh]
  • staatliche Förderung Speicher/Solaranlage [€]

Mithilfe der Dropdownfelder können die Optimierungsziele sowie die Stellgrößen ausgewählt werden. Die Optimierungsziele berechnen sich selbst neu in Abhängigkeit von den eingegebenen Zahlen unter den Stellgrößen. Mithilfe des Buttons Zwischenergebnisse einloggen werden die zwei Berechnungsergebnisse für eine Systemkombination in das Diagramm übernommen. Mithilfe des Buttons Zwischenergebnisse löschen werden alle vorhandenen Zwischenergebnisse gelöscht.


Beispiel:
Optimierungsziel 1: x-Achse: Amortisationszeit
Optimierungsziel 2: y-Achse: Autarkiegrad
Stellgröße 1: Batteriegröße. Diese variiert zwischen 20 und 200Ah.


Alle anderen Parameter und Randbedingungen zur Definition der Solaranlage müssen unter dem Deckblatt vor der Optimierung eingetragen werden.

Registerkarte 5 Berechnung

In dieser Registerkarte erscheinen in den ersten Zeilen 1 bis 37 dieselben Eingabedaten und Berechnungsergebnisse wie auf dem Deckblatt. In der Zeile 42 bis 8802 befinden sich die stündlichen Berechnungszwischenschritte für ein Jahr. In den Spalten A bis V sind die Kopfzeilenbeschriftungen zu finden, die die Zwischenergebnisse beschreiben. Es erfolgt für jede Stunde auf Grundlage des ausgewählten Wetterdatensatzes (Standort, Dachneigung) eine komplette Systemberechnung. Ausgehend von der eingestrahlten Solarenergie wird der Solarertrag abzüglich Umwandlungsverluste durch Wechselrichter und PV Modul berechnet. Das ausgewählte elektrische Verbrauchsprofil des Haushaltes dient zur Berechnung des Stromeigenverbrauchs (Direktverbrauch Solar), der überschüssigen Ladeenergie für die Batterie, der überschüssigen Energie für den Heizstab und bei der Systembetrachtung mit Einspeisung der überschüssigen Energie zur Netzeinspeisung. Da die angegebene maximale Wechselrichterleistung bei diesem Solarspeichersystem bewusst auf 300W bzw. 500W beschränkt ist, wirkt die maximale Wechselrichterleistung als der begrenzende Faktor bei der Eigenverbrauchsberechnung. Batteriespeicher- und Umwandlungsverluste werden mitberechnet. Der Ladestatus der Batterie oder des thermischen Speichers zu jeder Stunde im Jahr sowie die Anzahl der Ladezyklen der Batterie werden berechnet. In Zeile 8804 stehen die Jahressummen der Spalten. Alle Ergebnisse werden zusammengefasst in den ersten Zeilen der Registerkarte Berechnung und in der Registerkarte auf dem Deckblatt.

Registerkarte 6 Kostenberechnung 2.Prototyp LiFePo

Um Aussagen über die Amortisationszeit und die Investitionskosten machen zu können, werden in den folgenden Registerblättern die Materialkosten des Speichers aufgeschlüsselt. Die Kostenberechnung erfolgt für die vier untersuchten Systemtypen. Die aufgelisteten Bauteile und deren Preise orientieren sich an den wahren Einkaufspreisen für den Prototypenbau im Jahre 2018/2019. Die Kostenberechnung passt sich dynamisch an das jeweils im Deckblatt ausgewählte System an. Alle Kosten sind skaliert mit hinterlegten Formeln. Deren Beschreibung ist in der Spalte N zu finden.

Registerkarte 7 Ladereglerauslegung

Je nach Systemgröße (Anzahl PV Module) werden unterschiedliche Ladereglergrößen verwendet. Um für die Kostenberechnung einen Preis festzusetzen, ist es somit zunächst notwendig die möglichen Modulverschaltungskombinationen festzulegen. Für kleinere Systeme (bis max. 6 Module) ist eine Kombination mit einem 28,8V Akkumulator (9 Zellen, wie hier im Projekt verwendet) noch möglich. Alle größeren Systeme müssen einen Akkumulator mit höherer Spannung (z.B. 36 V oder 48 V) verwenden. Die Victron Laderegler werden durch zwei Zahlen gekennzeichnet. Z.B. 100/30. Die erste Zahl steht für die maximal erlaubte Leerlaufspannung, die zweite Zahl für den maximalen Outputstrom des Ladereglers. Victron bietet Laderegler für eine Eingangsspannung von 100V, 150V ,250V an. Unter Berücksichtigung zweier Solarmodultypen (60 Zeller mit 300WP (--> Leerlaufspannung bei tiefen Temperaturen max. 45V) und 70Zeller mit 360WP(--> Leerlaufspannung bei tiefen Temperaturen max. 54V) ergeben sich die in folgender Tabelle aufgelisteten möglichen Solarmodulkombinationen für die jeweiligen Ladereglertypen. Das Systemkürzel ist wie folgt definiert: Batteriespannung - Modultyp - Anzahl PV Module - Kosten Laderegler

100V Laderegler - Modulverschaltung mit 60 Zellen pro Modul für 33V Systeme
Systemkürzel Reihe Parallel Anzahl 60 Zellen Module Peakleistung Module [W] Leistung LR Output @ 33V Akku [W] P_LR/P_PV [-] LR Typ LR Kosten [€]
33V - 60 - 4 - 202 2 2 4 1200 990 0,83 100/30 202
33V - 60 - 6 - 303 2 3 6 1800 1650 0,92 100/50 303
150V Laderegler - Modulverschaltung mit 60 Zellen pro Modul für 48V Systeme
Systemkürzel Reihe Parallel Anzahl 60 Zellen Module Peakleistung Module [W] Leistung LR Output @ 50V Akku [W] P_LR/P_PV [-] LR Typ LR Kosten [€]
48V-60-3-326 3 1 3 900 1750 1,94 150/35 326
48V-60-6-326 3 2 6 1800 1750 0,97 150/35 326
48V-60-9-449 3 3 9 2700 2250 0,83 150/45 449
48V-60-12-505 3 4 12 3600 3000 0,83 150/60 505
48V-60-15-556 3 5 15 4500 3500 0,78 150/70 556
48V-60-18-657 3 6 18 5400 4250 0,79 150/85 657
48V-60-21-910 3 7 21 6300 5000 0,79 150/100 910
48V-60-24-910 3 8 24 7200 5000 0,69 150/100 910
150V Laderegler - Modulverschaltung mit 60 Zellen pro Modul für 48V Systeme
Systemkürzel Reihe Parallel Anzahl 60 Zellen Module Peakleistung Module [W] Leistung LR Output @ 50V Akku [W] P_LR/P_PV [-] LR Typ LR Kosten [€]
48V-72-2-326 2 1 2 720 1750 2,43 150/35 326
48V-72-4-326 2 2 4 1440 1750 1,22 150/35 326
48V-72-6-326 2 3 6 2160 1750 0,81 150/35 326
48V-72-8-449 2 4 8 2880 2250 0,78 150/45 449
48V-72-10-505 2 5 10 3600 3000 0,83 150/60 505
48V-72-12-556 2 6 12 4320 3500 0,81 150/70 556
48V-72-14-657 2 7 14 5040 4250 0,84 150/85 657
48V-72-16-910 2 8 16 5760 5000 0,87 150/100 910
48V-72-18-910 2 9 18 6480 5000 0,77 150/100 910
48V-72-20-910 2 10 20 7200 5000 0,69 150/100 910
250V Laderegler - Modulverschaltung mit 60 Zellen pro Modul für 48V Systeme
Systemkürzel Reihe Parallel Anzahl 60 Zellen Module Peakleistung Module [W] Leistung LR Output @ 50V Akku [W] P_LR/P_PV [-] LR Typ LR Kosten [€]
48V-60-16-859 4 4 16 4800 4250 0,89 250/85 859
48V-60-20-910 4 4 20 6000 5000 0,83 250/100 910
48V-60-25-910 5 5 25 7500 5000 0,67 250/100 910
250V Laderegler - Modulverschaltung mit 72 Zellen pro Modul für 48V Systeme
Systemkürzel Reihe Parallel Anzahl 60 Zellen Module Peakleistung Module [W] Leistung LR Output @ 50V Akku [W] P_LR/P_PV [-] LR Typ LR Kosten [€]
48V-72-9-657 3 3 9 3240 3000 0,93 250/60 657
48V-72-15-859 3 5 15 5400 4250 0,79 250/85 859

In der Registerkarte Ladereglerauslegung werden weiterhin gewählte Kabeldurchmesser, Stringanzahl sowie Anzahl an PV-Verbindungsleitungen und MC4 Stecker aufgelistet.

Mit dem hier beschriebenen Speicheraufbau sind Systeme bis max. ca. 60A bei einer Schaltschrankverdrahtung von 16mm^2 möglich/sinnvoll.

Registerkarte 8 Kosten BMS Platine

  • Unterblatt zur Kostenberechnung

Registerkarte 9 Kosten Kosten Heizstabmodul

Registerkarte 10 Kosten Systemtyp 4 Minipv

Registerkarte 11 Kosten Verbindungsmodul Modbus

  • Unterblatt zur Kostenberechnung

Registerkarte 12 Kosten Spannungswandlermodul

  • Unterblatt zur Kostenberechnung

Registerkarte 13 Kosten Arduino- und Mosfetplatine

  • Unterblatt zur Kostenberechnung

Registerkarte 14 solare Einstrahlung

  • Wetterdatenbank für solare Einstrahlung in Abhängigkeit der Dachausrichtung. Quelle satellight.com

Registerkarte 15 Lastprofilablage

  • Datenbank unterschiedlicher Lastprofile in Abhängigkeit vom Jahresgesamtstromverbrauch des Haushalts. Quelle: VDI 4655

Registerkarte 16 Hintergrunddaten

Daten die zur Darstellung in Excel dienen.

Registerkarte 17 Änderungsmanagement

Hier werden chronologisch nach Datum Aktualisierungen und Änderungen am Excelfile dokumentiert

Organisatorisches

Entwickler-Team

Thomas Plaz
Frank Richter

Roadmap and Log

  • Okotber 2015 - Projektstart
  • Juli 2018 - Inbetriebnahme 2. Prototyp
  • November 2019 - Projekt-Seite mit Bauanleitungen im Wiki erstellt
  • 2020 - Überarbeitung Absicherungskonzept BMS
  • 2020 - Neukonstruktion Arduino- und Mosfetplatine in KiCAD mit Gehäuse
  • 2020 - Integration der neuen Arduino- und Mosfetplatine und der damit zusammenhängenden hard- und softwareseitigen Neuerungen
  • 2020 - Überarbeitung Heizstabansteuerung
  • 2020 - Fertigstellung der Node-Red Oberfläche
  • 2020 - Integration der Quelldaten in GitHub
  • 2020 - Bau 3. Prototyp (finanzierende Interessenten für einen Speicher sind noch gesucht)
  • Nachbau durch interessierte Anwender

Aktueller Entwicklungs-Status

Der zweite Prototyp ist seit Juli 2018 in Betrieb. Grundsätzlich funktioniert der Speicher sehr gut und zuverlässig. Dennoch gibt es noch einige Entwicklungsschritte zu tun, um im Betrieb aufgetretene Probleme zu lösen, zukünftig kostengünstiger bauen zu können und Prototypenaufbauten durch Festinstallationen zu ersetzen. Der 3. Prototyp soll eine Qualität aufweisen, die ohne Bedenken von interessierten Anwender nachgebaut werden kann.

ToDo next

  • Fertigstellung der Parameterauslesung über Node Red v.a. Errorfunctions
  • Integration der Projektdokumentation und Quelldaten in GitHub
  • U.U. Integration eines Watchdogs im Arduinocode
  • Freiwerdende serielle Arduinoschnittstelle soll bidirektionalen Kontakt zu Victron Ladereglern aufnehmen
  • Gehäusekonstruktion Arduino- und Mosfetplatine
  • Überarbeitung des Schaltschrankes auf Normkonformität
  • Redesign des Schaltschrankes / Integration des Akkumulators in den Schaltschrank / Bau des 3. Protoypen
  • Nachbau und Austausch durch und mit interessierten Anwendern

Weitere Details siehe im Abschnitt "Projekthistorie und Ziele".

Open Tasks for volunteers ;-)

  • Mitarbeit und Diskussion im und mit dem Entwicklungsteam
  • Gehäusekonstruktion für die Arduino- und Mosfetplatine
  • Planung und Optimierung des Schaltschrankaufbaus für den 3. Prototypen
  • Übersetzung der Dokumentation und Quelldaten auf Englisch
  • Integration der Quelldaten auf GitHub
  • Verbreitung und Nachbau des Solar-Speichers
  • Bei Interesse, auch wenn die obigen Aufgaben euch nicht 100% zusagen, kommt auf uns zu (siehe Abschnitt Kontakt) und wir sprechen direkt über Möglichkeiten der Mitarbeit im Bereich deines Interesses und deiner Fähigkeiten. Wir freuen uns schon ;-)

Spenden

Wenn euch dieses Projekt unterstützungswürdig erscheint und eine Projektzukunft gesichert werden soll, dann drückt gerne auf folgenden Button und gedenkt dabei an unsere bisherigen zeitlichen und finanziellen Aufwendungen dieses Gedankengut öffentlich zur Verfügung zu stellen:

Literatur und Links