Solarspeicher (stationär): Unterschied zwischen den Versionen
(303 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | <gallery widths="422" heights="188" perrow="2> | ||
+ | File:Abbildung_1.1_Logo_Soldorado_und_OSE.svg | ||
+ | </gallery> | ||
− | [[ | + | {{Projektdaten |
− | + | |Projektname=Soldorado Solarspeicher | |
+ | |Gesamtstatus=aktiv | ||
+ | |Kurzbeschreibung=Das von OPEN SOLAR SYSTEMS erarbeitete Projekt, verfolgt die Idee, einen professionellen, kostengünstigen und intelligenten Solarspeicher zu entwickeln, der für kleinere {{Abk.|PV}}-Anlagen, auf Dach- oder Balkonflächen geringeren Ausmaßes, den Grundlaststrom in einem Haushalt regenerativ abdecken kann. | ||
+ | |Stichwörter=Solar; Energiespeicher; Sonnenenergie; | ||
+ | |Sortierbegriffe=Strom; Solarspeicher (stationär); | ||
+ | |Entwicklungsstufen=Prototyp gefertigt; veröffentlicht | ||
+ | |Kontakt=* [[Thomas Plaz]] [mailto:soldorado@posteo.de <soldorado@posteo.de>] | ||
+ | * Frank Richter | ||
+ | |Verfasser=* [[Thomas Plaz]] [mailto:soldorado@posteo.de <soldorado@posteo.de>] | ||
+ | |Diskussion=* [https://forum.opensourceecology.de/viewforum.php?f=64&sid=3ad0408453877f4353a9c490400abb7a Forum] | ||
+ | * Signal-Gruppe Solarspeicher | ||
+ | |Repositorien=* https://github.com/LibreSolar/bms-15s80-sc/tree/rev2 | ||
+ | * https://gitlab.opensourceecology.de/soldorado-open-solar-system/solar-storage-controller-hardware | ||
+ | * https://gitlab.opensourceecology.de/soldorado-open-solar-system/solar-storage-controller-software | ||
+ | * https://gitlab.opensourceecology.de/soldorado-open-solar-system/solar_storage_simulation_sheet | ||
+ | |OKH Metadaten= | ||
+ | |Lizenzen=[https://www.gnu.org/licenses/gpl-3.0.html Allgemeine Öffentliche GNU-Lizenz (GPL v3.0)] | ||
+ | |Vorschauklasse=release | ||
+ | |Vorschaubild=Datei:Logo Soldorado auf OSE Homepage.svg | ||
+ | |Vorschaukurztext=Solarspeicher<br>(stationär) | ||
+ | }} | ||
+ | __INHALTSVERZEICHNIS__ | ||
==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 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.<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> |
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.<br> | 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.<br> | ||
Zeile 16: | Zeile 40: | ||
[[Datei:Abbildung 1.1 GNU General Public License v3.0.pdf|mini]]<br> | [[Datei:Abbildung 1.1 GNU General Public License v3.0.pdf|mini]]<br> | ||
Der hier dokumentierte Aufbau des Solarspeichers basiert auf Open-Source Hard- und Software und unterliegt der GNU General Public License v3.0. <br> | Der hier dokumentierte Aufbau des Solarspeichers basiert auf Open-Source Hard- und Software und unterliegt der GNU General Public License v3.0. <br> | ||
− | 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 | + | 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 sind unter Gitlab oder GitHub verfügbar (siehe obenstehende Links).<br> |
==Projektbeschreibung== | ==Projektbeschreibung== | ||
===Motivation=== | ===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.<br> | 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.<br> | ||
− | 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. | + | 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. | Ü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. | 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. | ||
[[Datei:Abbildung 2 Mietobjekt ohne und mit PV Speichersystem-001.pdf|x300px|mini|rechts|Mietobjekt ohne und mit PV Speichersystem]] | [[Datei:Abbildung 2 Mietobjekt ohne und mit PV Speichersystem-001.pdf|x300px|mini|rechts|Mietobjekt ohne und mit PV Speichersystem]] | ||
− | |||
===Einige Vorteile des Solarspeichersystems auf einen Blick=== | ===Einige Vorteile des Solarspeichersystems auf einen Blick=== | ||
− | * Kompletter Eigenverbrauch der erzeugten Energiemenge möglich | + | * Kompletter Eigenverbrauch der erzeugten Energiemenge möglich in Form von Strom und Wärme |
− | * System auch als Einspeisesystem | + | * System auch als Einspeisesystem nutzbar |
* Hoher Systemwirkungsgrad (ca. 88-89%) durch DC gekoppelten Speicher (siehe Kapitel Systemwirkungsgrad) | * Hoher Systemwirkungsgrad (ca. 88-89%) durch DC gekoppelten Speicher (siehe Kapitel Systemwirkungsgrad) | ||
* Dezentrale Stromerzeugung zur Entlastung und Stabilisierung der Stromnetze | * Dezentrale Stromerzeugung zur Entlastung und Stabilisierung der Stromnetze | ||
− | * Anlage optimiert für kleine Dach- oder Balkonflächen (ab drei Modulen | + | * 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 | * EEG Anmeldung bei Verwendung der Überschussenergie als Wärme nicht notwendig | ||
* größere Unabhängig gegenüber Strompreissteigerungen | * größere Unabhängig gegenüber Strompreissteigerungen | ||
* weniger Bürokratie bei Anlagenanmeldung | * weniger Bürokratie bei Anlagenanmeldung | ||
− | * Verbesserung der eigenen CO2 Bilanz, Vermiedene | + | * 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 | * 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) | * Möglichkeit der Skalierung des Systems bis zu 25 Modulen (7,5kWP) | ||
− | * Amortisation des Solarspeichersystems innerhalb von 12 | + | * Amortisation des Solarspeichersystems innerhalb von ca. 12 Jahren |
* Für Weiterentwickler und Interessierte liegt der komplette Programmiercode und alle Schnittstellen offen zu Verfügung | * Für Weiterentwickler und Interessierte liegt der komplette Programmiercode und alle Schnittstellen offen zu Verfügung | ||
* Kostengünstige Lösung im Vergleich zu Mitbewerbern | * Kostengünstige Lösung im Vergleich zu Mitbewerbern | ||
Zeile 46: | Zeile 69: | ||
* Optimierung des Eigenverbrauchs durch intelligent programmierbare schaltbare Steckdosen in zwei Betriebsmodi | * Optimierung des Eigenverbrauchs durch intelligent programmierbare schaltbare Steckdosen in zwei Betriebsmodi | ||
* Solares Laden des eigenen E-Bike Akkumulators möglich | * Solares Laden des eigenen E-Bike Akkumulators möglich | ||
− | * Power to heat des Überschussstromes unterstützt im Sommer die Warmwasserbereitung und reduziert somit | + | * 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 | * 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=== | ===Projekthistorie und Ziele=== | ||
2015: | 2015: | ||
* Erste Ideen und Visionen, Kauf des Smappee Energiemnonitors zur Aufnahme des eigene Lastprofiles | * 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 | * Entwicklung eines Exceltools zur Jahressimulation des Speichers und Auslegung der Batterie und Wechselrichtergröße | ||
− | * Kauf und Montage von vier PV Modulen, von | + | * Kauf und Montage von vier PV Modulen, von zwei Bleibatterien (70Ah geschlossen) und einer Regelung (4 Panel Controller von Solarelectrix). |
2016: | 2016: | ||
− | * sukzessiver Ersatz der Funktionen des 4 Panel Cotrollers, um die volle Leistungsfähigkeit des Mikrowechselrichters von 300W ausschöpfen zu können, sowie | + | * 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: | 2017: | ||
− | * Integration des Systems in einen Schaltschrank und Integration der Anlagenüberwachung mithilfe eines | + | * 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 | + | * Anschluß eines geregelten Heizstabes zur Beheizung des Brauchwarmwasserspeichers bei Überschussstrom im Sommer. |
2018: | 2018: | ||
− | * Ersatz der Bleiakkumulatoren durch einen 60Ah LiFePo mit Batteriemanagementsystem von Libre Solar. | + | * 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 von Funksteckdosen angesteuert über das MQTT Protokoll über Node Red | ||
* Integration der Anlagenvisualisierung über das Dash Board von Node Red | * Integration der Anlagenvisualisierung über das Dash Board von Node Red | ||
Zeile 69: | Zeile 93: | ||
* Untersuchung der Skalierung des Systems auf 48V Systemspannung | * Untersuchung der Skalierung des Systems auf 48V Systemspannung | ||
* Integration der Heizstabregelung | * Integration der Heizstabregelung | ||
+ | 2020 / 2021: | ||
+ | * Redesign des Schaltschrankes / Integration des Akkumulators in den Schaltschrank / Bau des 3. Protoypen | ||
+ | * Komplette Neukonstruktion der sogenannten Hautplatine, die nun alle Funktionen der bisherigen Arduino- und Mosfetplatine und den Leistungsteil des Batteriemanagementssystems vereint | ||
+ | * Gehäuseintegration der Hauptplatine | ||
+ | * Umfangreiche Überarbeitung des Arduino Codes z.B. Integration der Auslesung von SML Zähler per Magnet-Lesekopf und Ansteuerung mehrerer Wechselrichter in Kaskade | ||
+ | * Hauptplatine verfügt nun über die Möglichkeit der bidirektionalen Kommunikation zu Victron Ladereglern und der elektrischen Isolation zu allen Schnittstellen. | ||
+ | * Neuauflage der BMS und SNS Platine unter Behebung kleiner Hardwarefehler | ||
+ | 2021 / 2022: | ||
+ | * Integration intelligentere SOC Berechnung im BMS | ||
+ | * Erstellung Schaltplan des 3. Prototypen | ||
+ | * Integration der Projektdokumentation und Quelldaten in GitLab | ||
+ | 2023: | ||
+ | * erfolgreiche Inbetriebnahme 3. Protoyp und Test aller Funktionen | ||
+ | * 3. Protoyp in Regelbetrieb | ||
+ | * Überarbeitung der SML Auswerteroutine | ||
+ | * Aktualisierung des Frontpanels des NodeRed UI | ||
+ | * Einbindung einer manuell oder automatisch schaltenden Schaltsteckdose bei Überschussstrom über NodeRed und MQTT | ||
+ | * Integration der Überschusseinspeisung mit zwei Wechselrichtern (ca. 1kW) auch wenn Hauslast geringer ist (Bei einem System ohne angeschlossenen Heizstab ist es schade Solarenergie nicht zu nutzen wenn der Speicher voll ist) | ||
+ | |||
Zukünftige Ziele: | Zukünftige Ziele: | ||
− | * | + | * Inbetriebnahme weiterer Solarspeicher, Anfragen werden gerne entgegen genommen |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
===Systemaufbau=== | ===Systemaufbau=== | ||
Zeile 84: | Zeile 122: | ||
# Der Stromzähler 1 erfasst die PV Einspeisung und den elektrischen Verbrauch auf allen drei Phasen im Haus und kommuniziert mit der Steuereinheit 2 | # Der Stromzähler 1 erfasst die PV Einspeisung und den elektrischen Verbrauch auf allen drei Phasen im Haus und kommuniziert mit der Steuereinheit 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 | # 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 | ||
− | # 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 | + | # 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. |
<gallery widths="1034" heights="382" perrow="2> | <gallery widths="1034" heights="382" perrow="2> | ||
− | File:Stromeinspeisung_geregelt_nach_Hausbedarf.pdf| 05.06.2019 Stromeinspeisung geregelt nach Hausverbrauch - Solarertrag (rot), Stromverbrauch | + | File:Stromeinspeisung_geregelt_nach_Hausbedarf.pdf| 05.06.2019 Stromeinspeisung geregelt nach Hausverbrauch, System mit Akkumulator - Solarertrag (Ladereglerleistung, rot), momentane elektrische Hausverbrauch (Stromverbrauch, blau) und Wechselrichtereinspeisung orientiert am momentanen Hausverbrauch (Stromeinspeisung ins Hausnetz, grün) |
</gallery> | </gallery> | ||
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. | 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. | ||
Zeile 92: | Zeile 130: | ||
File:Volleinspeisung_ohne_Akkumulator.pdf| Stromeinspeisung ins Stromnetz (Solarertrag) (grün) und Stromverbrauch (blau) | File:Volleinspeisung_ohne_Akkumulator.pdf| Stromeinspeisung ins Stromnetz (Solarertrag) (grün) und Stromverbrauch (blau) | ||
</gallery> | </gallery> | ||
− | Es wurden hierzu zwei 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. | + | 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. |
− | # Ziel der Systemauslegung ist es die Deckung der elektrischen Grundlast im Haushalt (je nach Wechselrichtertyp 300W oder 500W) von ca. 0-300W | + | # 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. |
# 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. | # 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=== | ===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 | + | 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 | + | 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=== | ===Detaillierter Systemaufbau=== | ||
Zeile 108: | Zeile 146: | ||
===Komponentenwahl und deren Spezifizierung=== | ===Komponentenwahl und deren Spezifizierung=== | ||
====Wechselrichter==== | ====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 | + | ======Prototyp 2====== |
− | 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 | + | 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. |
− | + | ======Prototyp 3====== | |
− | + | Für die Weiterentwicklung des Solarspeichers wird eine Version des Wechselrichters „MICRO INVERTER, INV500-90EU RS485“ verwendet, die von AE Conversion an Firmenkunden als Batteriewechselrichter verkauft wird. Vorteil dieser Variante ist der geringere Platzbedarf im Schaltschrank durch sein kompakteres Gehäuse und Anschlussstecker. Auch wenn der Wechselrichter als „Batteriewechselrichter“ verkauft wird muss noch aktiv per Schnittstelle der Batteriemodus vor jedem setzen einer Leistung mitgeteilt werden. Werden mehrere Wechselrichter hintereinander angesprochen, so ist zwischen den Befehlen eine Mindestzeit von einigen Millisekunden (z.B. 800ms) abzuwarten, damit die Antwort des ersten Wechselrichters nicht mit dem Befehl für den zweiten Wechselrichter kollidiert. | |
+ | |||
+ | Es kommen folgende Stecker zum Einsatz: | ||
+ | AC seitig wird folgender Gegenstecker benötigt: Adels-Contact 165663V9 Netz-Steckverbinder. | ||
+ | DC seitig wird für die Stromversorgung und Kommunikation folgender Gegenstecker mit Crimpkontakten benötigt: MolexCrimpgehäuse-Mini-FitJr-2x6-polig-Stecker MOLEX39012121. | ||
+ | [[Datei:Abbildung_5.1_Wechselrichter_OEM_Version_MICRO_INVERTER_INV500-90EU_RS485.pdf|x300px|mini|rechts|Wechselrichter_OEM_Version_MICRO_INVERTER_INV500-90EU_RS485]] | ||
+ | ======Berechnung der Wechselrichteradresse====== | ||
+ | Die Adresse des Wechselrichters kann auch berechnet werden. Die Formel lautet: | ||
+ | Adresse = (Seriennummer des Wechselrichters Modulo 32) + 1 | ||
+ | |||
+ | Beispiel: | ||
+ | |||
+ | Seriennummer des Wechselrichters: 0405500348 | ||
+ | Seriennummer des Wechselrichters Modulo 32: 28 (berechnet mit [https://modulocalculator.com/0-mod-48 Modulokalkulator]) | ||
− | + | Es errechnet sich somit die Wechselrichteradresse 29. | |
− | + | ======Protokoll und Kommunikation====== | |
+ | Mit dem Miniwechselrichter kann über zwei verschiedene Protokolle kommuniziert werden: | ||
+ | # KACO/Schueco Protokoll (ASCII String): bidirektionale Kommunikation | ||
+ | # 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. | + | Grundsätzlich ist die Kommunikation mit dem {{Abk.|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: | 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 ( | + | 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. |
<gallery widths="207" heights="245" perrow="2> | <gallery widths="207" heights="245" perrow="2> | ||
− | File:Abbildung_7_Anschluss_der_RS485_Schnittstelle_des_Wechselrichters.svg| | + | File:Abbildung_7_Anschluss_der_RS485_Schnittstelle_des_Wechselrichters.svg| Anschluss der RS485 Schnittstelle des Wechselrichters |
</gallery> | </gallery> | ||
− | Um | + | 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 [https://www.reichelt.de/raspberry-pi-usb-rs485-schnittstelle-ch340c-rpi-usb-rs485-p242783.html?PROVID=2788&gclid=CjwKCAiAob3vBRAUEiwAIbs5TkjhZ_wpbXkACdoUZzlozu6ZwAWPzpdAYcWR0gubl4wYl4RR3wOEOxoC7kQQAvD_BwE&&r=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: | Folgende Voreinstellungen sind für die serielle Kommunikation notwendig: | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 130: | Zeile 184: | ||
! !! Serial port configuration | ! !! Serial port configuration | ||
|- | |- | ||
− | | Baud rate || | + | | Baud rate || 9600 |
|- | |- | ||
| Data bits || 8 | | Data bits || 8 | ||
Zeile 156: | Zeile 210: | ||
[https://www.photovoltaikforum.com/wechselrichter-f3/auslesen-aeconversion-micro-wechselrichter-t105173-s70.html] | [https://www.photovoltaikforum.com/wechselrichter-f3/auslesen-aeconversion-micro-wechselrichter-t105173-s70.html] | ||
− | Folgende Tabelle schlüsselt die wesentlichen Befehle auf, die umgewandelt in das hexadezimale Zahlensystem dem Wechselrichter direkt über die serielle Schnittstelle zugesendet werden kann. | + | Folgende Tabelle schlüsselt die wesentlichen Befehle auf, die umgewandelt in das hexadezimale Zahlensystem, dem Wechselrichter direkt über die serielle Schnittstelle zugesendet werden kann. |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 177: | Zeile 231: | ||
| Ausgabe Wechselrichtertyp || #<ID>9<CR> || <LF>*<ID>9_PV350W_z<CR> || - | | 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, | | 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 | 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!!!) | 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, | | Leistungsreduzierung setzen || #<ID>L_001<CR> || <LF>*<ID>L_001_z<CR> || nur im MPP-Modus sinnvoll, | ||
Zeile 190: | Zeile 250: | ||
| Leistungsreduzierung abfragen || #<ID>L<CR> || <LF>*<ID>L_001_z || 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 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! | | Stromvorgabe abfragen || #<ID>S<CR> || <LF>*<ID>S_ii.i || nur im Modus 2 sinnvoll! | ||
− | | | + | |} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 2. WR Stromvorgabe setzen (um Leistung zu reduzieren): | + | Beispiele: |
− | Anfrage: #32S_08.0<CR> | + | Folgende Beispiele sind für einen Wechselrichter mit Wechselrichternummer 32, bei max. 60V: |
− | Antwort: <LF>*<ID> | + | # WR auf Modus 2 setzen (Spannungs- und Stromvorgabe): |
+ | #* Anfrage: <syntaxhighlight lang="text" inline>#32B_2_27.0<CR></syntaxhighlight> | ||
+ | #* Antwort: <syntaxhighlight lang="text" inline><LF>*<ID>B_2_27.0_z<CR><br></syntaxhighlight><!-- Kommentar: <br> in der Code Antwort ? Andreas 2020-03-20 18:52:19 --> | ||
+ | # WR Stromvorgabe setzen (um Leistung zu reduzieren): | ||
+ | #* Anfrage: <syntaxhighlight lang="text" inline>#32S_08.0<CR></syntaxhighlight> | ||
+ | #* Antwort: <syntaxhighlight lang="text" inline><LF>*<ID>S_08.0_z<br></syntaxhighlight><!-- Kommentar: <br> in der Code Antwort ? Andreas 2020-03-20 18:52:19 --> | ||
− | |||
− | |||
− | |||
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: | 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: | ||
<gallery widths="759" heights="115" perrow="2> | <gallery widths="759" heights="115" perrow="2> | ||
− | File:Abbildung_9_Kommunikation_mit_dem_Wechselrichter_über_das_Programm_HTherm.svg| | + | File:Abbildung_9_Kommunikation_mit_dem_Wechselrichter_über_das_Programm_HTherm.svg| Kommunikation mit dem Wechselrichter über das Programm HTherm |
</gallery> | </gallery> | ||
− | Die Leistungsanpassung erfolgt im Arduinocode unter Reiter „WR“ in der Funktion „sendPowerAESGI4(int P_WR_temp)“. Die Leistungsanpassung des Wechselrichters erfolgt durch die Vorgabe des Stromes. | + | 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: [https://github.com/swissembedded/em/blob/master/basicapps/aspiro_aeconversion_d0_storage/start.bas] | Der gesetzte Betriebsmodus 2 (Spannungs- und Stromvorgabe) geht nach Unterbrechung der Stromversorgung des Wechselrichters verloren. Quelle: [https://github.com/swissembedded/em/blob/master/basicapps/aspiro_aeconversion_d0_storage/start.bas] | ||
− | =====Wirkungsgradkennlinie Wechselrichter===== | + | ======Wirkungsgradkennlinie Wechselrichter Prototyp 2====== |
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. | 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. | ||
<gallery widths="491" heights="265" perrow="2> | <gallery widths="491" heights="265" perrow="2> | ||
File:Abbildung_9.2_Messung_der_Wirkungsgradkennlinie_des_Wechselrichters_INV_350-60_von_AE_Conversion.svg|Messung der Wirkungsgradkennlinie des Wechselrichters INV 350-60 von AE Conversion | File:Abbildung_9.2_Messung_der_Wirkungsgradkennlinie_des_Wechselrichters_INV_350-60_von_AE_Conversion.svg|Messung der Wirkungsgradkennlinie des Wechselrichters INV 350-60 von AE Conversion | ||
+ | </gallery> | ||
+ | |||
+ | |||
+ | ======Wirkungsgradkennlinie Wechselrichter Prototyp 3====== | ||
+ | Der im Prototyp 3 verbaute Microwechselrichter MICRO INVERTER, INV500-90EU RS485 hat eine maximale DC seitige Stromaufnahme von ca. 10,5A (bei ca. 49,4V primärseitiger Spannung) und hat folgenden Wirkungsgradverlauf: | ||
+ | <gallery widths="491" heights="265" perrow="2> | ||
+ | File:Abbildung_9.3_Messung_der_Wirkungsgradkennlinie_des_Wechselrichters_INV500-90EU_RS485_von_AE_Conversion.pdf|Messung der Wirkungsgradkennlinie des Wechselrichters INV500-90EU RS485 von AE Conversion.pdf | ||
</gallery> | </gallery> | ||
====PV Module==== | ====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 | + | =====Prototyp 2===== |
+ | 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. | ||
+ | |||
+ | =====Prototyp 3===== | ||
+ | Der 3. Protoyp ist ausgelegt für 6 Solarmodule (Solarworld SW 280 Wp, 60 Zellen, mit STC Uo: 39,5 V; Umpp: 31,2 V; Isc: 9,71 A; Impp: 9,07 A) wobei jeweils 3 in Reihe geschaltet sind. Die Solarmodule sind auf einem flachen Garagendach in zwei Reihen zu je 3 Modulen unter einem Winkel von 10° hintereinander angeordnet. Die Ausrichtung beträgt 165° Süd-Süd Ost. Die Solarmodule befinden sich auf dem Garagendach zwischen zwei Gebäudekomplexen wie auf folgenden Bildern zu erkennen ist.<gallery widths="219" heights="174" perrow="2> | ||
+ | File:Abbildung_9.4_Solarmodulinstallation_3._Prototyp.pdf|Abbildung 9.4 Solarmodulinstallation 3. Prototyp | ||
+ | </gallery> | ||
+ | |||
+ | =====Überstromschutz===== | ||
+ | Die Modulerdung erfolgt mithilfe eines 10qmm dicken grün-gelben Erdungskabel (Litze H07V-K 1 x 10 mm²), das im Hausverteilerkasten auf die Potenzialschiene aufgeklemmt ist. | ||
+ | Es besteht neben der direkten Modulerdung die Möglichkeit der Integration eines Kombischutzes für die Ableitung von Blitzströmen und Schutz vor Spannungsspitzen. Beim Prototyp 3 wurde hierzu der Kombiableiter CITEL - DS50VGPV-1000G/12KT1 verwendet. Es erfolgt der Anschluss des positiven PV Strings sowie des negativen PV Strings an den Kombiableiter und der Anschluss an die Hauserde. Es sollte ebenfalls mindestens ein 10qmm grün-gelbes Erdungskabel (Litze H07V-K 1 x 10 mm²) verwendet und direkt an der Hauspotenzialschiene angeschlossen werden. | ||
====Laderegler==== | ====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. 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. | + | =====Prototyp 2===== |
+ | |||
+ | Durch die unterschiedliche Dachausrichtung sind im vorliegenden Projekt zwei Laderegler mit integriertem MPP Tracking in Verwendung an die jeweils 2 Module mit 60 Zellen angeschlossen sind. Es handelt sich um zwei Victron MPPT 100-15, die über eine Schnittstelle und eine tauschbare 20A Sicherung verfügen. | ||
+ | =====Prototyp 3===== | ||
+ | Es werden insgesamt 6 Solarmodule verwendet wobei 2 Strings parallel angeschlossen sind und bei jedem String jeweils 3 Module in Reihe geschaltet sind. Mithilfe von Abschnitt „Registerkarte 7 Ladereglerauslegung“ wurde hierfür der Laderegler Victron BlueSolar MPPT 150/35 ausgewählt. | ||
+ | |||
+ | Maximal erlaubte Leerlaufspannung: 150V; vorhanden 3 x 39,5V = 118,5V | ||
+ | |||
+ | Maximal mögliche Strombelastung des Ladereglers: 35A; vorhanden: 3 x 9,71A = 29,13A | ||
+ | |||
+ | =====Schnittstelle===== | ||
+ | |||
+ | 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: | Ausführliche Informationen zur Kommunikation finden sich im pdf „VE.Direct-Protocol“ sowie im dazugehörigen „Whitepaper“ unter: | ||
[https://www.victronenergy.com/support-and-downloads/whitepapers]. | [https://www.victronenergy.com/support-and-downloads/whitepapers]. | ||
− | 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 | + | 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. | + | 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 | + | |
+ | =====Anschluss der Schnittstelle===== | ||
Für eine bidirektionale Kommunikation ist folgender Anschluss vorzunehmen: | Für eine bidirektionale Kommunikation ist folgender Anschluss vorzunehmen: | ||
[[Datei:Abbildung_10_Schnittstelle_Laderegler_Victron_MPPT_100-15.svg|x150px|mini|rechts|Schnittstelle Laderegler Victron MPPT 100-15]] | [[Datei:Abbildung_10_Schnittstelle_Laderegler_Victron_MPPT_100-15.svg|x150px|mini|rechts|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: | 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 | + | "Konfektionierte Litze Polzahl Gesamt 4 Rastermaß: 2 mm" <br> |
− | Im vorliegenden Projekt wird das Schnittstellensignal direkt ohne | + | |
+ | 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: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 262: | Zeile 342: | ||
| Flow control || None | | Flow control || None | ||
|} | |} | ||
− | Folgende Daten werden von der Steuereinheit (Arduino) | + | Folgende Daten werden von beiden Ladereglern mithilfe der Steuereinheit (Arduino) ausgelesen: |
− | |||
* Laderegler Erzeugung | * Laderegler Erzeugung | ||
* Laderegler Leistung | * Laderegler Leistung | ||
Zeile 272: | Zeile 351: | ||
=====Vorgehensweise Anschluss und Einrichtung des Ladereglers===== | =====Vorgehensweise Anschluss und Einrichtung des Ladereglers===== | ||
− | *Zuerst wird der Laderegler an den Akkumulator angeschlossen, sodass dieser die Systemspannung erkennt. Danach an die PV Module. 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 | + | *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: |
<gallery widths="328" heights="300" perrow="2> | <gallery widths="328" heights="300" perrow="2> | ||
File:Abbildung_11_Anschluss_Laderegler_MPPT_100-15.svg| Anschluss Laderegler MPPT 100-15 | File:Abbildung_11_Anschluss_Laderegler_MPPT_100-15.svg| Anschluss Laderegler MPPT 100-15 | ||
</gallery> | </gallery> | ||
− | *Zur Einrichtung des Ladereglers das Schnittstellenkabel mit USB Wandler wie im Abschnitt „Anschluss der Schnittstelle“ beschrieben verbinden | + | *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 | + | *Installation und Starten des Programms "VE Power Setup" von victron energy |
*Über den Button „Connect to this Computer“ Verbindung zum Laderegler herstellen | *Ü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 | + | *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 | ||
<gallery widths="328" heights="300" perrow="2> | <gallery widths="328" heights="300" perrow="2> | ||
File:Abbildung_12_Hauptansicht_Victron_Connect.svg| Hauptansicht Victron Connect | File:Abbildung_12_Hauptansicht_Victron_Connect.svg| Hauptansicht Victron Connect | ||
</gallery> | </gallery> | ||
− | *Über das Zahnrädchen in der rechten oberen Ecke | + | *Ü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. |
<gallery widths="350" heights="335" perrow="2> | <gallery widths="350" heights="335" perrow="2> | ||
File:Abbildung_13_Aktualisierung_der_Firmware.svg| Aktualisierung der Firmware | File:Abbildung_13_Aktualisierung_der_Firmware.svg| Aktualisierung der Firmware | ||
</gallery> | </gallery> | ||
− | *Unter Einstellungen werden nun für den LiFePo Akkumulator mit neun Zellen folgende Parameter eingestellt: | + | ======Prototyp 2====== |
+ | *Unter Einstellungen werden nun für den LiFePo Akkumulator mit neun Zellen folgende Parameter eingestellt (Firmware: v1.56): | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 296: | Zeile 379: | ||
| Max. Ladestrom || 15A | | Max. Ladestrom || 15A | ||
|- | |- | ||
− | | Konstantspannung || 31,05V | + | | Batterievoreinstellung || Benutzerdefiniert |
+ | |- | ||
+ | | Expertenmodus || On | ||
+ | |- | ||
+ | | Absorptionsspannung (Konstantspannung) || 31,05V | ||
|- | |- | ||
| Maximale Konstantspannungsdauer || 30min | | Maximale Konstantspannungsdauer || 30min | ||
Zeile 302: | Zeile 389: | ||
| Erhaltungsspannung || 31,05V | | Erhaltungsspannung || 31,05V | ||
|- | |- | ||
− | | Ausgleichsspannung || | + | | Ausgleichsspannung || 31,05V |
+ | |- | ||
+ | | Schweifstrom || 2A | ||
+ | |- | ||
+ | | Automatischer Zellenausgleich || Deaktiviert | ||
+ | |- | ||
|} | |} | ||
<gallery widths="295" heights="580" perrow="2> | <gallery widths="295" heights="580" perrow="2> | ||
Zeile 311: | Zeile 403: | ||
*Unter dem Lastausgang „Immer aus“ einstellen | *Unter dem Lastausgang „Immer aus“ einstellen | ||
*Straßenlichtfunktion „aus“ einstellen | *Straßenlichtfunktion „aus“ einstellen | ||
+ | |||
+ | ======Prototyp 3====== | ||
+ | *Unter Einstellungen werden nun für den LiFePo Akkumulator mit 15 Zellen folgende Parameter eingestellt: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Eigenschaft || Parameter | ||
+ | |- | ||
+ | | Batteriespannung || 48V | ||
+ | |- | ||
+ | | Max. Ladestrom || 35A | ||
+ | |- | ||
+ | | Konstantspannung || 51,75V | ||
+ | |- | ||
+ | | Maximale Konstantspannungsdauer || 30min | ||
+ | |- | ||
+ | | Erhaltungsspannung || 51,75V | ||
+ | |- | ||
+ | | Ausgleichsspannung || 0V | ||
+ | |} | ||
====Akkumulator==== | ====Akkumulator==== | ||
− | + | =====Prototyp 2===== | |
− | Detaillierte Infos zum Aufbau, Verkabelung und Anschluss an das BMS ist in der Doku auf [https://wiki.opensourceecology.de/24-48V_BMS] in der Rubrik BMS 24V im | + | Für den 2. Prototypen werden neun Zellen a 3,2V-3,6V 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 [https://wiki.opensourceecology.de/24-48V_BMS] in der Rubrik BMS 24V im Abschnitt "Schematischer Aufbau, Komponenten Akkumulator" zu finden. | ||
+ | =====Prototyp 3===== | ||
+ | Für den 3. Prototypen werden 15 Zellen a 3,2-3,6V des Lithium-Eisen-Mangan-Phosphat Akku von Innopower INNO-LFMP 60 AH verwendet. Es entsteht somit ein Akkupack mit 48V – 54V Spannung mit einer Speicherkapazität von 60Ah bzw. ca. 3 kWh. | ||
+ | <gallery widths="681" heights="260" perrow="2> | ||
+ | File:Abbildung_14.1_Lithium-Eisen-Mangan-Phosphat_Akkumulator_INNO-LFMP_60_AH,_15_Zellen_a_3,2-3,6V.pdf| Lithium-Eisen-Mangan-Phosphat_Akkumulator_INNO-LFMP_60_AH,_15_Zellen_a_3,2-3,6V | ||
+ | </gallery> | ||
+ | Abmessungen Zelle: 125x65x185mm, Gewicht:ca.2,0 kg pro Zelle. Innopower liefert den Akkupack per Post fertig mit Kunststoffband verspannt incl. Polverbinder, Polschrauben und Zellabdeckung. Die Zyklenzahl ist bei einer DoD (Depth of Discharge) von 80% mit >= 5000 angegeben. | ||
+ | Der Hauptanschluss erfolgt über zwei 16qm Kabel, die Absicherung über einen Lasttrennschalter Typ: Siemens 5SG7113 und einer Schmelzsicherung D02 32A gG 400Vschw NEOZED Sicherungseinsatz. Der gesamte Akkupack kommt im Schaltschrank unter und wird mit Gurten an der Montageplatte verspannt um ein Herausrutschen/Umkippen zu vermeiden. Die von Innopower mitgelieferten Zellabdeckungen dienen als Berührungsschutz und Kurzschlussschutz und werden nach Montage auf die Oberseite der Zellen aufgeclipt. | ||
+ | Da 15 Zellen in Verwendung sind, muss auf dem BMS Board der IC BQ 76940 verwendet werden. Siehe hierzu die ausführliche Doku unter [[24-48V_BMS]] | ||
+ | Schaltplan und Boarlayout sind im aktuellen Repo unter [https://github.com/LibreSolar/bms-15s80-sc/tree/rev2] zu finden. | ||
+ | Beim Anschluss des Akkumulators ist besonderen Wert auf die korrekte Zellzuordnung bei der Belegung des Molexstecker J1 / J2 zu achten, zu finden im oben verlinkten Schaltplan des BMS. | ||
+ | Da beim 3. Prototypen das Switch-N-Sense Modul auf dem Solar-Storage-Controller mit aufgebracht ist, entfällt die Verwendung des separaten SNS Modul. Das BMS kann also nach Variante 1 unter [[24-48V_BMS#Hardware.C3.A4nderungen]] verwendet werden. | ||
− | ==== | + | ====Steuer- und Regelzentrale==== |
− | =====ArduinoBoard===== | + | =====Prototyp 2===== |
+ | ======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. | 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. | Es wird ein Arduino Mega 2560 verwendet, das über vier serielle Hardware-Schnittstellen verfügt. | ||
Zeile 325: | Zeile 449: | ||
*Schnittstelle 4: Textbasiertes Protokoll zum Raspberry Pi | *Schnittstelle 4: Textbasiertes Protokoll zum Raspberry Pi | ||
*Software Schnittstelle 1: RS 485 zum Wechselrichter | *Software Schnittstelle 1: RS 485 zum Wechselrichter | ||
− | Die Zusammenhänge und Kommunikationsprotokolle der einzelnen Komponenten des Solarspeichers sind in Abbildung | + | 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. | 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 | + | 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. |
<gallery widths="700" heights="793" perrow="2> | <gallery widths="700" heights="793" perrow="2> | ||
File:Abbildung_15_Arduinoplatine_und_deren_Schnittstellen.png | Arduinoplatine und deren Schnittstellen | File:Abbildung_15_Arduinoplatine_und_deren_Schnittstellen.png | Arduinoplatine und deren Schnittstellen | ||
</gallery> | </gallery> | ||
− | Die Klemmen Stromversorgung DC (5V) | + | 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===== | + | ======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 | + | 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 | + | 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. | In folgender Abbildung ist das Platinenlayout mit den entsprechenden Platinenschnittstellen dargestellt. | ||
<gallery widths="671" heights="742" perrow="2> | <gallery widths="671" heights="742" perrow="2> | ||
File:Abbildung_16_Mosfetplatine_und_deren_Schnittstellen.png| Mosfetplatine und deren Schnittstellen | File:Abbildung_16_Mosfetplatine_und_deren_Schnittstellen.png| Mosfetplatine und deren Schnittstellen | ||
</gallery> | </gallery> | ||
− | Der Schaltplan sowie das Boardlayout sind hier als .zip downloadbar. | + | 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. | 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. | ||
<gallery widths="800" heights="393" perrow="2> | <gallery widths="800" heights="393" perrow="2> | ||
File:Abbildung_17_Arduino-_und_Mosfetplatine_im_Gehäuse_(Deckel_geöffnet).pdf| Mosfetplatine und deren Schnittstellen | File:Abbildung_17_Arduino-_und_Mosfetplatine_im_Gehäuse_(Deckel_geöffnet).pdf| Mosfetplatine und deren Schnittstellen | ||
</gallery> | </gallery> | ||
+ | ======Strom-, Spannungsversorgung====== | ||
+ | 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. | ||
+ | =====Prototyp 3===== | ||
+ | ======Solar-Storage-Controller (Hauptplatine)====== | ||
+ | Um einen kostengünstigeren und einfacheren Aufbau des Solarspeichers zu ermöglichen werden die bisherigen drei Einzelplatinen Arduinoplatine, Mosfetplatine und Switch-N-Sense Platine (SNS Platine siehe [[24-48V]]) auf einer großen Hauptplatine (Solar-Storage-Controller) vereinigt. Einige Hardwaremodifikationen und Hardwareerweiterungen die sich während des Betriebes des 2. Prototypen ergeben haben sind eingearbeitet. | ||
+ | Steuer- und Regelungseinheit ist nach wie vor das Arduino Mega, in diesem Fall das MEGA2560PRO-EMBED, das auf die Solar-Storage-Controller PCB aufgesteckt wird. Der Solar-Storage-Controller ist mit 24V- 48V Systemen kompatibel und ermöglicht es nun auch (Batterie-) Miniwechselrichter von AE Conversion mit einer Leistung von 500W anzuschließen. Dies war bisher aufgrund der geringeren Systemspannung des 9-zelligen Akkumulators (32 V) nicht möglich. | ||
+ | Der Solar-Storage-Controller hat folgende Abmaße: Breite = 242 mm, Höhe = 122 mm und wird in einem Hutschienengehäuse von Bopla untergebracht: | ||
+ | Typ: | ||
+ | * Strangprofil CRP 122 Sonderprofillänge 226,0 mm | ||
+ | * CR 122-KS (Set Seitenelemente), | ||
+ | * CRPM 73/63-220-E (Modulabdeckung), | ||
+ | * CRM 73/63 mm (Modulkappensatz), | ||
+ | * CR-LF2 (LP Fixierung) | ||
+ | <gallery widths="743" heights="260" perrow="2> | ||
+ | File:Abbildung_17.2_Solar_Storage_Controller_(Hauptplatine)_mit_und_ohne_Abdeckung.pdf| Solar Storage Controller (Hauptplatine) mit und ohne Abdeckung | ||
+ | </gallery> | ||
+ | An den Solar-Storage-Controller werden alle wesentlichen Anschlüsse der Subkomponenten im Schaltschrank mittels genormter Steckverbinder oder Kabelklemmen angeschlossen. Die Verkabelung innerhalb des Schaltschrankes soll dadurch vereinfach werden. Eine Übersicht über alle Anschlussklemmen gibt folgende Abbildung: | ||
+ | <gallery widths="800" heights="468" perrow="2> | ||
+ | File:Abbildung_17.1_Kombinierte_Arduino-_und_Mosfetplatine.pdf| Solar-Storage-Controller / Hauptplatine und deren Schnittstellen | ||
+ | </gallery> | ||
+ | Im Einzelnen können an den Solar-Storage-Controller folgende Sub-Komponenten angeschlossen werden (von oben links im Uhrzeigersinn): | ||
+ | * Anschluss Modbus 3-Phasenzähler über RJ 45 Stecker oder Anschluss der Modbus / SML PCB (s.d.). Diese Subkomponenten sitzen in der Regel im Hausverteilschrank. Buchse: RJ45 | ||
+ | * Anschluss Modbus 1-Phasenzähler für die Messung der Einspeisung des Solarspeichers ins Hausnetz. Buchse: Wago THT Stiftleiste 733-362 | ||
+ | * Anschlussmöglichkeit für ein Display (über I2C) und einem Rotary Encoder an den „interrupt pins“ des Arduinos. Hierdurch wird es möglich eine menügestützte Benutzerbedienung in den Solarspeicher zu implementieren. Buchse: Multicomp Box_header_connector_4x2 | ||
+ | * Serieller Anschluss für das Datenkabel vom BMS. Trennung beider Seiten über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden. Buchse: Multicomp Box_header_connector_5x2 | ||
+ | * Anschlussmöglichkeit eines (z.b: OLED) Displays zur Anzeige wesentlicher Parameter der BMS Tätigkeit (Daten sind auch über den vzlogger einzusehen). Buchse: Wago THT-Stiftleiste733-364 | ||
+ | * Anschluss der Wechselrichter über ihre serielle Schnittstelle z.B. mit der der vorhandenen RJ45 Buchse umgesetzt im Arduino als softwareseitige Schnittstelle (software serial).Buchse: RJ45 | ||
+ | * Datenverbindung vom BMS zur Ansteuerung der Akkumulatorschutzfunktionen (SNS) (Tiefentladeschutz, Überladeschutz). Buchse: Multicomp Box_header_connector_4x2 | ||
+ | * Anschluss der Batterieausgänge der verwendeten Laderegler. Klemme: Wago 2606-1104 (6 – 10mm^2) | ||
+ | * Anschlussmöglichkeit eines Heizstabes (geregelt über Heizstabregelmodul) (max. 70 A) Klemme: Wago 2616-1102 (16-25mm^2) | ||
+ | * Anschluss von Verbraucher / Wechselrichter 1: Klemme Wago 2606-1102 (6-10 mm^2) | ||
+ | * Anschluss von Verbraucher / Wechselrichter 2: Klemme Wago 2606-1102 (6-10 mm^2) | ||
+ | * Anschluss von Verbraucher / Wechselrichter 3: Klemme Wago 2606-1102 (6-10 mm^2) | ||
+ | * Anschluss eines Kleinverbrauchers (z.B. Schaltschranklüfter): Buchse: Wago THT Stiftleiste 733-362 | ||
+ | * Anschluss des Akkumulators: Klemme: Wago 2616-1102 (16 – 25 mm^2) | ||
+ | * Stromversorgung des Arduino und Datenverbindung per USB vom Raspberry. Buchse: USB-B | ||
+ | * Anschlussmöglichkeit für einen oder mehrere Temperatursensoren (LM35). Buchse: Wago THT Stiftleiste 733-364 | ||
+ | * Anschlussmöglichkeit von Taster oder Schalter gegen GND, um eine Aktion im Arduinocode auszulösen. Buchse: Wago THT Stiftleiste 733-364 | ||
+ | * Anschlussmöglichkeit des Heizstabregelmoduls „PWM Controller“. Buchse: Wago THT Stiftleiste 733-365 | ||
+ | * Serieller Anschluss an Laderegler 2 (bidirektionale Kommunikation möglich). Trennung beider Seiten über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden. Buchse: Wago THT Stiftleiste 733-364 | ||
+ | * Serieller Anschluss an Laderegler 1 (bidirektionale Kommunikation möglich). Trennung beider Seiten über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden. Buchse: Wago THT Stiftleiste 733-364 | ||
+ | * Anschlussmöglichkeit an diverse Reservepins. Buchse: Multicomp Box_header_connector_5x2 | ||
+ | |||
+ | Alle relevanten Daten zum Bau des Solar-Storage-Controller incl. Stückliste der elektronischen Bauteile findet sich in folgendem Repo: | ||
+ | [https://gitlab.opensourceecology.de/soldorado-open-solar-system/solar-storage-controller-hardware gitlab.opensourceecology.de/] | ||
+ | |||
+ | Hergestellt wurde die PCB des Solar-Storage-Controller ohne Bestückung über RP Engineering in Esslingen bei JLCPCB in China. Es ist eine 2-lagige Platine (Top, Bottom) mit 2 oz Kupferschichtdicke (70 µm) und einem gold finish (Frühjahr 2021: Netto 83€/5 Stck). Die Kupferschichtdicke von 2 oz ist notwendig, um im Leistungsteil die hohen Ströme ohne zu großen Verluste weiterleiten zu können. Theoretisch sind mit 2 oz Dicke bei 20mm Leiterbahndicke und einer Temperaturerhöhung von 30K ca. 56A möglich. Praktische Grenze bilden aber die parallel angeordneten Mosfets IRFS7730 die sich im Betrieb erwärmen und im Zweifel bei zu hohen Strömen durchbrennen. Ab wann und in welchem Maße diese Erwärmung stattfindet muss in der Praxis noch untersucht werden (z.B. bei Heizstabbetrieb unter Dauerlast). | ||
=====Quellcode Arduinoboard===== | =====Quellcode Arduinoboard===== | ||
− | Um über die serielle Schnittstelle zwischen BMS und Arduino-Board im Binärprotokoll ( | + | 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:<br> |
[http://shelvin.de/arduino-serial-buffer-size-aendern/]<br> | [http://shelvin.de/arduino-serial-buffer-size-aendern/]<br> | ||
Je nach Installation ist die Datei „HardwareSerial.h“ auch unter folgendem Verzeichnis zu finden:<br> | Je nach Installation ist die Datei „HardwareSerial.h“ auch unter folgendem Verzeichnis zu finden:<br> | ||
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino<br> | C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino<br> | ||
− | VORSICHT: Die Änderung des seriellen Puffers wirkt sich global auf die Kompilierungssoftware Arduino aus und somit auf jedes kompilierte Projekt. | + | oder<br> |
− | 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, | + | C:\Users\Thomas\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\cores\arduino<br> |
+ | oder wenn der Arduinocode über das Raspberry geflasht wird wie unter Abschnitt [https://wiki.opensourceecology.de/Solarspeicher_(station%C3%A4r)#Arduino_komfortabel_.C3.BCber_das_Raspberry_Pi_flashen] | ||
+ | [[Arduino komfortabel über das Raspberry Pi flashen]] beschrieben, muss die Anpassung des seriellen Puffers in folgender Datei erfolgen im versteckten Dateipfad:<br> | ||
+ | /home/pi/.arduino15/packages/arduino/hardware/avr/1.8.3/cores/arduino/HardwareSerial.h<br> | ||
+ | Also dort wo ursprünglich das Paket "arduino-cli" für das flashen des Arduinos über das Raspberry installiert wurde. | ||
+ | VORSICHT: Die Änderung des seriellen Puffers wirkt sich global auf die Kompilierungssoftware Arduino aus und somit auf jedes kompilierte Projekt.<br> | ||
+ | |||
+ | 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. Der aktuelle Arduinoquellcode ist unter folgendem Link abrufbar [https://gitlab.opensourceecology.de/soldorado-open-solar-system/solar-storage-controller-software gitlab.opensourceecology.de/] | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 400: | Zeile 577: | ||
|- | |- | ||
| WR (Wechselrichter) || void calcPower() || | | WR (Wechselrichter) || void calcPower() || | ||
− | *Ständige Neuberechnung des Wechselrichtersollwertes in Abhängigkeit des Systemstatus ( | + | *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) || | | WR (Wechselrichter) || void sendPowerAESGI4(int P_WR_temp) || | ||
− | *Senden der Daten zur Leistungsreduktion an den Wechselrichter umgerechnet in Stromstärke | + | *Senden der Daten zur Leistungsreduktion an den Wechselrichter umgerechnet in Stromstärke |
|- | |- | ||
| WR (Wechselrichter) || Loop || | | WR (Wechselrichter) || Loop || | ||
*Systematischer Aufruf der obigen Funktionen in den jeweiligen Tabs des Programmiercodes | *Systematischer Aufruf der obigen Funktionen in den jeweiligen Tabs des Programmiercodes | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Raspberry Pi==== | ====Raspberry Pi==== | ||
− | Das Raspberry Pi besitzt die Aufgabe alle relevanten Parameter und Messwerte des Systems zu loggen | + | 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: | Das Raspberry Pi wird zur Hutschienenmontage in folgendem Gehäuse untergebracht: | ||
− | (Voelkner: RASPBERRY HUTSCHIENEN-GEH RASPB B+2B3B | + | (Voelkner: RASPBERRY HUTSCHIENEN-GEH RASPB B+2B3B.<ref name="voelkner1">[https://www.voelkner.de/ RASPBERRY HUTSCHIENEN-GEH RASPB B+2B3B auf voelkner.de]</ref> |
<gallery widths="541" heights="171" perrow="2> | <gallery widths="541" heights="171" perrow="2> | ||
File:Abbildung_19_Hutschienengehäuse_für_Raspberry_Pi.svg| Hutschienengehäuse für Raspberry Pi | File:Abbildung_19_Hutschienengehäuse_für_Raspberry_Pi.svg| Hutschienengehäuse für Raspberry Pi | ||
Zeile 432: | Zeile 595: | ||
=====Manueller Reset/Neustart des Raspberry Pi‘s===== | =====Manueller Reset/Neustart des Raspberry Pi‘s===== | ||
− | Um | + | 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: [http://www.gtkdb.de/index_18_2680.html] Nachfolgend dargestellt ist der Schaltplan mit den erwähnten zwei Tastern S1 (Herunterfahren/OFF) und S2 (reset/ON). |
<gallery widths="800" heights="209" perrow="2> | <gallery widths="800" heights="209" perrow="2> | ||
− | File:Abbildung_20_Schaltplan_für_Taster_Herunterfahren_und_Reset_Raspberry.svg| Schaltplan für Taster Herunterfahren und Reset Raspberry | + | File:Abbildung_20_Schaltplan_für_Taster_Herunterfahren_und_Reset_Raspberry.svg| Schaltplan für Taster Herunterfahren und Reset Raspberry Pi |
</gallery> | </gallery> | ||
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 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 | + | 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 | + | 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:<br> | 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:<br> | ||
− | [http://www.gtkdb.de/index_36_2238.html] | + | [http://www.gtkdb.de/index_36_2238.html]<br> |
− | Wird | + | 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. | Da das Raspberry Pi über das USB Kabel die Haupsteuereinheit (Arduino Board) mit Strom versorgt wird, wird dieses dann ebenfalls ausgeschalten. | ||
=====Auswahl sd Karte===== | =====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 | + | 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/ | https://www.elektronikpraxis.vogel.de/zehn-gruende-die-fuer-industrie-sd-karten-sprechen-a-284360/ | ||
+ | |||
Vorteile der industriellen SD Karten im Schnellüberblick: | Vorteile der industriellen SD Karten im Schnellüberblick: | ||
*hohe Zuverlässigkeit und Langlebigkeit | *hohe Zuverlässigkeit und Langlebigkeit | ||
Zeile 467: | Zeile 631: | ||
#Ausführbare Datei anlegen unter /etc/wpa_supplicant/ oder im Boot Verzeichnis der Linux Installation | #Ausführbare Datei anlegen unter /etc/wpa_supplicant/ oder im Boot Verzeichnis der Linux Installation | ||
#Folgender Dateiinhalt in einer Datei namens Wpa_supplicant mit der Endung .conf ablegen. Dabei unter dem Platzhalter >xxx< die jeweiligen Wlan Logindaten eintragen: | #Folgender Dateiinhalt in einer Datei namens Wpa_supplicant mit der Endung .conf ablegen. Dabei unter dem Platzhalter >xxx< die jeweiligen Wlan Logindaten eintragen: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text"> |
country=DE | country=DE | ||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev | ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev | ||
Zeile 489: | Zeile 653: | ||
======Vzlogger.conf====== | ======Vzlogger.conf====== | ||
− | Mit diesem Skript wird die Verknüpfung zwischen der eindeutigen UUID eines Kanals und den eingehenden Daten | + | 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 | (Ausführliche Erklärung siehe Abschnitt „Einrichtung der Kanäle im „web Frontend“ und in der Konfigurationsdatei „vzloggerconf“ unter | ||
[[24-48V BMS]] | [[24-48V BMS]] | ||
Zeile 495: | Zeile 659: | ||
======Push-server.service====== | ======Push-server.service====== | ||
Dieses Skript aktiviert den sogenannten push-Server (siehe | Dieses Skript aktiviert den sogenannten push-Server (siehe | ||
− | Abschnitt „Starten des vzloggers über WinSCP“ bzw. unter [https://wiki.volkszaehler.org/software/middleware/push-server]) | + | Abschnitt „Starten des vzloggers über WinSCP“ unter [[24-48V BMS]] bzw. unter [https://wiki.volkszaehler.org/software/middleware/push-server]). Die Datei ist hier abrufbar: [[:File:push-server.zip]] |
======Shutdownbutton.py====== | ======Shutdownbutton.py====== | ||
− | Siehe Abschnitt "Manueller Reset/Neustart des Raspberry Pi’s" in dieser Dokumentation | + | Siehe Abschnitt "Manueller Reset/Neustart des Raspberry Pi’s" in dieser Dokumentation. Die Datei ist hier abrufbar: [[:File:shutdownbutton.zip]] |
+ | |||
======Vzsqlbackup.sh====== | ======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 | + | 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 die Eingabeaufforderung unter WinSCP | + | 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„ : |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
− | # crontab öffnen | + | # crontab von root öffnen |
− | crontab -e | + | sudo crontab -e |
− | # Folgende Zeile eintragen: | + | # Folgende Zeile am Ende eintragen: |
# jeden Sonntag um 22Uhr wird ein Backup erzeugt | # jeden Sonntag um 22Uhr wird ein Backup erzeugt | ||
00 22 * * 0 /usr/local/bin/raspiBackup.sh | 00 22 * * 0 /usr/local/bin/raspiBackup.sh | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 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: | + | Zum Erstellen des Skripts vzsqlbackup.sh wird zuerst eine leere, mit root Rechten ausführbare Datei angelegt (siehe hierzu:[[https://www.elektronik-kompendium.de/sites/raspberry-pi/2006091.htm]]), die unter einem der folgenden Links abgespeichert sein muss: |
#System-Scripte mit Root-Rechten: "/usr/local/sbin" | #System-Scripte mit Root-Rechten: "/usr/local/sbin" | ||
#Allgemeine User-Scripte mit Benutzer-Rechten: "/usr/local/bin" | #Allgemeine User-Scripte mit Benutzer-Rechten: "/usr/local/bin" | ||
Folgender Inhalt wird im Skript niedergeschrieben. | Folgender Inhalt wird im Skript niedergeschrieben. | ||
− | |||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
#USB Stick mounten | #USB Stick mounten | ||
mount /dev/sda1 /mnt/stick | mount /dev/sda1 /mnt/stick | ||
#Backupdatei anlegen und abspeichern | #Backupdatei anlegen und abspeichern | ||
− | mysqldump | + | mysqldump volkszaehler > /mnt/stick/pi/mysqlvzbackup-$(date +%Y%m%d-%H%M%S).sql |
#älteste Datei im Verzeichnis löschen | #älteste Datei im Verzeichnis löschen | ||
Zeile 530: | Zeile 694: | ||
exit 0 | exit 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
=====Datenübergabe Arduinoboard zu Raspberry Pi===== | =====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: | Zum Einrichten der Kanäle im Raspberry Pi siehe Abschntt Vzlogger.conf. Folgende Kanäle werden derzeit vom Arduinoboard an das Raspberry übergeben: | ||
Zeile 559: | Zeile 724: | ||
*Zellspannung 1 - 9 | *Zellspannung 1 - 9 | ||
=====Einrichtung der Kanäle im „web Frontend“ und in der Konfigurationsdatei „vzloggerconf"===== | =====Einrichtung der Kanäle im „web Frontend“ und in der Konfigurationsdatei „vzloggerconf"===== | ||
− | Das Einrichten von Kanälen im „web Frontend“ sowie in der Konfigurationsdatei | + | 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===== | =====Übertragungsgeschwindigkeit der seriellen Schnittstelle zwischen Arduino und Raspberry===== | ||
− | Um die Ü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: |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="xorg.conf"> |
"device": "/dev/ttyACM0", | "device": "/dev/ttyACM0", | ||
"baudrate": 115200, | "baudrate": 115200, | ||
"aggtime": 30, | "aggtime": 30, | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
=====Arduino komfortabel über das Raspberry Pi flashen===== | =====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:<br> | Um einen neuen Arduinocode komfortabel direkt vom Raspberry Pi auf das Arduino zu flashen, sind folgende Schritte zu befolgen:<br> | ||
− | 1. Um den Vz logger zu stoppen, folgende Zeile in das | + | 1. Um den Vz logger zu stoppen, folgende Zeile in das Eingabefenster (putty) in WinSCP eingeben: |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
sudo systemctl stop vzlogger | sudo systemctl stop vzlogger | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 2. Navigiere in das “home” Verzeichnis und liste alle vorhandenen Ordner auf | + | 2. Navigiere in das “home” Verzeichnis und liste alle vorhandenen Ordner auf: |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
ls | ls | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 3. | + | 3. Ins Unterverzeichnis „Arduino“ wechseln (change directory): |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash" > |
cd Arduino | cd Arduino | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 4. Code kompilieren mit richtigem Dateinamen (in diesem Falle PV-System_20190629): | + | 4. Code kompilieren mit richtigem Dateinamen (in diesem Falle "PV-System_20190629"): |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash" > |
arduino-cli compile --fqbn arduino:avr:mega PV-System_20190629 | arduino-cli compile --fqbn arduino:avr:mega PV-System_20190629 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 5. Code auf Arduino flashen mit richtigem Dateinamen (in diesem Falle PV-System_20190629): | + | 5. Treten Probleme beim Kompilieren auf, so fehlen in der Regel dem Raspberry Arduinobibliotheken. Diese sind nach folgender Anleitung zu installieren: |
− | <syntaxhighlight lang=" | + | [https://arduino.github.io/arduino-cli/0.19/commands/arduino-cli_lib_install/ arduino-cli_lib_install/] |
− | arduino-cli upload --fqbn arduino:avr:mega --port /dev/ttyACM0 | + | |
+ | 6. Code auf Arduino flashen mit richtigem Dateinamen (in diesem Falle "PV-System_20190629"): | ||
+ | <syntaxhighlight lang="bash" > | ||
+ | arduino-cli upload --fqbn arduino:avr:mega --port /dev/ttyACM0 PV-System_20190629 | ||
+ | </syntaxhighlight> | ||
+ | 6.1 Speziell fürs Arduino Mega 2560 Pro (Embed) | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:mega PV-System_20190629 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 7. vz-logger starten | |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
sudo systemctl start vzlogger | sudo systemctl start vzlogger | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Eine ausführliche Anleitung zur Installation der benötigten Pakete ist unter folgendem Link zu finden [https://github.com/arduino/arduino-cli/blob/master/README.md] | Eine ausführliche Anleitung zur Installation der benötigten Pakete ist unter folgendem Link zu finden [https://github.com/arduino/arduino-cli/blob/master/README.md] | ||
+ | |||
=====Einrichtung Node-Red===== | =====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 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. | + | 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. | Ü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:<br> | Im vorliegenden Projekt wird Node-Red für folgende Funktionen verwendet:<br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Node-Red ist über einen beliebigen Browser über das Wlannetz, in dem auch das Raspberry registriert ist, über folgenden Link erreichbar:<br> | + | # 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 | ||
+ | # Mailversand an Solarspeicherbesitzer bei Error | ||
+ | # Berechnung der eingesparten CO<sub>2</sub> Menge | ||
+ | # Wetterbericht für den aktuellen und die nächsten zwei Tage | ||
+ | # Berechnung der eingespeisten und verbrauchten Energie (Erzeugung, Verbrauch) für den aktuellen und die letzten zwei Tage | ||
+ | # 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:<br> | ||
http://192.168.1.2:1880/<br> | http://192.168.1.2:1880/<br> | ||
Wie im folgenden Abschnitt beschrieben, sollte die Programmierumgebung über ein Passwort vor unberechtigtem Zugriff geschützt sein. | 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. | 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. | Der in diesem Projekt verwendete Flow besitzt die in folgender Abbildung dargestellte Oberfläche. | ||
− | <gallery widths=" | + | <gallery widths="1039" heights="437" perrow="2> |
− | File:Abbildung_20. | + | File:Abbildung_20.22_User_Interface_(Weboderfläche_von_Node_Red).svg| User Interface (Weboderfläche von Node Red) |
</gallery> | </gallery> | ||
− | Das User Interface ist zu erreichen | + | Das User Interface ist über folgenden Link zu erreichen<br> |
+ | http://192.168.1.2:1880/ui/#/0<br> | ||
Im UI gibt es folgende Rubriken:<br> | Im UI gibt es folgende Rubriken:<br> | ||
− | + | # '''Wlan-Steckdose'''<br>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. | |
− | + | # '''Akku''' | |
+ | #* Anzeige SOC (State of Charge) Akkumulator | ||
+ | #* Anzeige Akkumulatorspannung | ||
+ | #* Anzeige Lade- und Entladestrom (Positiv und Negativ) | ||
+ | # '''Wechselrichter''' | ||
+ | #* Anzeige aktuelle Wechselrichterleistung | ||
+ | #* Anzeige letzter 20 min Wechselrichterleistung | ||
+ | #* Anzeige Modbusleistung | ||
+ | # '''Boiler''' | ||
+ | #* Anzeige Heizstableistung | ||
+ | #* Anzeige Boilertemperatur | ||
+ | # '''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. | ||
+ | # '''Allgemein''' | ||
+ | #* Anzeige der seit Inbetriebnahme der Anlage eingesparte Co2 Menge | ||
+ | #* Schaltschranktemperatur | ||
+ | # '''Allgemein gestern / Allgemein heute''' | ||
+ | # Darstellung der wichtigsten Tagesdaten des laufenden und des vorhergehenden Tages wie: | ||
+ | #* Erzeugung WR in [kWh] | ||
+ | #* Erzeugung Laderegler (LR) [kWh] | ||
+ | #* Eingesparte Stromkosten [€] | ||
+ | #* Solare Deckung [%] | ||
+ | #* CO<sub>2</sub> Einsparung [kg] | ||
+ | #* Gesamtstromverbrauch [kWh] | ||
+ | # '''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]]. | |
− | |||
− | |||
− | |||
− | + | Eine überarbeitete Version ist hier verfügbar: [[:File:20231128_flow.zip]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=====Installation von Node-Red===== | =====Installation von Node-Red===== | ||
− | + | Die folgende Installationsanleitung erfolgt in Anlehnung an das Youtube-Video „Node-Red Tutorial Part 1 Installation Haus Automatisierung“.<ref name="youtube2">[https://www.youtube.com/watch?v=ktGprvHi5jU auf youtube.com]</ref> | |
− | |||
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: | 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: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
update-nodejs-and-nodered | update-nodejs-and-nodered | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Es | + | Es erfolgt die Abfrage “Are you really sure to do this?” |
Mit „Yes“ bestätigen. | Mit „Yes“ bestätigen. | ||
− | Die Installation kann bis zu 20min dauern. Im Anschluss wird die installierte Version angezeigt und mittels | + | 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. |
<gallery widths="726" heights="269" perrow="2> | <gallery widths="726" heights="269" perrow="2> | ||
File:Abbildung_21_Installationsübersicht_Node-Red.svg| Installationsübersicht Node-Red | File:Abbildung_21_Installationsübersicht_Node-Red.svg| Installationsübersicht Node-Red | ||
</gallery> | </gallery> | ||
− | 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: | + | 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: |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
− | + | sudo npm install -g node-red-admin | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Um nun ein sicheres Passwort zu generieren | + | Um nun ein sicheres Passwort zu generieren wird folgender Befehl eingeben: |
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
− | + | node-red-admin hash-pw | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Nun ein beliebiges | + | Nun wird ein beliebiges Passwort eingeben, das „gehasht“ werden soll. Den nun angezeigten Hash kopieren und wie folgt beschrieben in der „config“ eintragen.<br> |
Folgende Datei öffnen:<br> | Folgende Datei öffnen:<br> | ||
− | vi ~/.node-red/settings.js< | + | <syntaxhighlight lang="bash"> |
+ | vi ~/.node-red/settings.js | ||
+ | </syntaxhighlight> | ||
Folgende Zeilen einkommentieren und den generierten Hashcode unter „password“ einfügen, sowie einen "username" vergeben. | Folgende Zeilen einkommentieren und den generierten Hashcode unter „password“ einfügen, sowie einen "username" vergeben. | ||
Zeile 700: | Zeile 872: | ||
</gallery> | </gallery> | ||
Datei speichern mit folgendem Befehl | Datei speichern mit folgendem Befehl | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text"> |
:wq | :wq | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Nun muss noch der automatische Node Red Start bei Systemstart eingestellt werden mit: | Nun muss noch der automatische Node Red Start bei Systemstart eingestellt werden mit: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
sudo systemctl enable nodered.service | sudo systemctl enable nodered.service | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ein Restart des Programms nach Installation durchführen: | Ein Restart des Programms nach Installation durchführen: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
sudo service restart | sudo service restart | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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). | 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 | + | 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. | 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). | Der Zugriff auf das Dashboard erfolgt über die IP des Raspberry Pi's (z.B. 192.168.1.2/ui). | ||
Zeile 719: | Zeile 891: | ||
Anleitung in Anlehnung an folgende Tutorials <ref>[https://www.open-homeautomation.com/de/2016/06/09/install-an-mqtt-broker-on-your-raspberry-pi/ install-an-mqtt-broker-on-your-raspberry-pi],auf open-homeautomation.com.</ref><ref>[https://randomnerdtutorials.com/how-to-install-mosquitto-broker-on-raspberry-pi/ how-to-install-mosquitto-broker-on-raspberry-pi],auf randomnerdtutorials.com.</ref><br> | Anleitung in Anlehnung an folgende Tutorials <ref>[https://www.open-homeautomation.com/de/2016/06/09/install-an-mqtt-broker-on-your-raspberry-pi/ install-an-mqtt-broker-on-your-raspberry-pi],auf open-homeautomation.com.</ref><ref>[https://randomnerdtutorials.com/how-to-install-mosquitto-broker-on-raspberry-pi/ how-to-install-mosquitto-broker-on-raspberry-pi],auf randomnerdtutorials.com.</ref><br> | ||
Zuerst muss das “Repository” mit folgenden zwei Befehlen hinzugefügt werden: | Zuerst muss das “Repository” mit folgenden zwei Befehlen hinzugefügt werden: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key | wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key | ||
sudo apt-key add mosquito-repo.gpg.key | sudo apt-key add mosquito-repo.gpg.key | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Nun das Verzeichnis wechseln: | Nun das Verzeichnis wechseln: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
cd /etc/apt/sources.list.d/ | cd /etc/apt/sources.list.d/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die Pakete updaten: | Die Pakete updaten: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
sudo apt-get update | sudo apt-get update | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Nun wird die „mosquitto stretch list“ für verschiedene Pakete hinzugefügt: | Nun wird die „mosquitto stretch list“ für verschiedene Pakete hinzugefügt: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
sudo apt-get install mosquitto mosquitto-clients python-mosquitto | sudo apt-get install mosquitto mosquitto-clients python-mosquitto | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Tritt folgende Fehlermeldung auf, folgenden Workaround durchführen:<br> | Tritt folgende Fehlermeldung auf, folgenden Workaround durchführen:<br> | ||
− | „Konnte nicht alle Pakete installieren, folgende Pakete haben unerfüllte Abhängigkeiten: mosquitto: Hängt ab von libwebsockets3 (>=1.2)ist aber nicht installierbar“< | + | <syntaxhighlight lang="bash"> |
+ | # 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“ | ||
+ | </syntaxhighlight> | ||
1. Zurück aus dem Verzeichnis /etc/apt/sources.list.d ins Grundverzeichnis wechseln über: cd<br> | 1. Zurück aus dem Verzeichnis /etc/apt/sources.list.d ins Grundverzeichnis wechseln über: cd<br> | ||
2. Manuelle Installation des fehlenden Paketes mit folgenden zwei Befehlen:<br> | 2. Manuelle Installation des fehlenden Paketes mit folgenden zwei Befehlen:<br> | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
− | + | 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 | |
</syntaxhighlight> | </syntaxhighlight> | ||
3. Erneuter Installationsversuch von mosquitto durchführen: | 3. Erneuter Installationsversuch von mosquitto durchführen: | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
− | + | sudo apt-get install mosquito mosquito-clients | |
</syntaxhighlight> | </syntaxhighlight> | ||
4. Starten des MQTT Broker | 4. Starten des MQTT Broker | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="bash"> |
− | + | sudo service mosquito start | |
</syntaxhighlight> | </syntaxhighlight> | ||
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. | 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. | ||
Zeile 759: | Zeile 933: | ||
=====Funksteckdose===== | =====Funksteckdose===== | ||
− | Im vorliegenden Projekt wird die Wlan Steckdose Sonoff Tasmota S 20 Smart verwendet und über NodeRed auf dem Raspberry | + | 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: | Neuerdings ist es auch möglich einen Steckdosen-Schalter mit Tasmota auch fertig geflasht zu kaufen z.B. unter: | ||
<ref>[https://www.delock.de/produkte/H/11826/merkmale.html/ Steckdosen-Schalter mit Tasmota fertig geflasht],auf www.delock.de.</ref><br> | <ref>[https://www.delock.de/produkte/H/11826/merkmale.html/ Steckdosen-Schalter mit Tasmota fertig geflasht],auf www.delock.de.</ref><br> | ||
− | Die theoretischen Grundlagen zur Wlan Steckdose sind unter folgenden Links zu finden:<ref>[http://sonoff.itead.cc/en/products/residential/s20-socket Generelle Bechreibung der Sonoff S20],auf www.itead.cc.</ref> | + | Die theoretischen Grundlagen zur Wlan Steckdose sind unter folgenden Links zu finden: |
+ | |||
+ | *Generelle Beschreibung der Sonoff Tasmota S20 Funksteckdose<ref>[http://sonoff.itead.cc/en/products/residential/s20-socket Generelle Bechreibung der Sonoff S20],auf www.itead.cc.</ref> | ||
Unter Youtube sind folgende Tutorials zu empfehlen:<br> | Unter Youtube sind folgende Tutorials zu empfehlen:<br> | ||
Zeile 806: | Zeile 982: | ||
In der Weboberfläche der Wlan-Steckdose gibt es unter "Main Menu" --> "Konsole" die Möglichkeit direkt Befehle an die Steckdose zu senden: | 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 <ref>[https://github.com/arendst/Sonoff-Tasmota/wiki/Commands Sonoff-Tasmota Commands],auf www.github.com.</ref> direkt an die Steckdose gesendet werden und die Antwort direkt beobachtet werden. Z.B. „Power on“ –> Steckdose an; „Power off“ --> Steckdose aus. | Hier können alle Befehle aufgelistet in <ref>[https://github.com/arendst/Sonoff-Tasmota/wiki/Commands Sonoff-Tasmota Commands],auf www.github.com.</ref> 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 | + | 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“. | Dabei bezeichnet man die Hierarchiestufe „Schreibtischlampe“ als „Topic“ und /cmd /stat /tele als „Prefix“. | ||
Siehe hierzu auch folgende Abbildung. | Siehe hierzu auch folgende Abbildung. | ||
Zeile 812: | Zeile 988: | ||
File:Abbildung_25_Hierarchiestruktur_MQTT_Protokoll_und_definition_des_Prefix_cmd,_stat_und_tele.svg| Hierarchiestruktur MQTT Protokoll und definition des Prefix cmd, stat und tele | File:Abbildung_25_Hierarchiestruktur_MQTT_Protokoll_und_definition_des_Prefix_cmd,_stat_und_tele.svg| Hierarchiestruktur MQTT Protokoll und definition des Prefix cmd, stat und tele | ||
</gallery> | </gallery> | ||
− | Je nachdem ob | + | 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<br> |
− | Bsp.: In unserem Beispiel heißt das Topic „Schreibtischlampe“. | + | |
+ | 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: <br> | Der Pfad „full topic“ soll heißen: <br> | ||
/SmartHome/Buero/%topic%/%prefix%<br> | /SmartHome/Buero/%topic%/%prefix%<br> | ||
Zeile 820: | Zeile 997: | ||
File:Abbildung_26_Konfiguration_der_Wlan_Steckdose_über_das_Webinterface.svg| Konfiguration der Wlan Steckdose über das Webinterface | File:Abbildung_26_Konfiguration_der_Wlan_Steckdose_über_das_Webinterface.svg| Konfiguration der Wlan Steckdose über das Webinterface | ||
</gallery> | </gallery> | ||
− | Passend zu den Einstellungen in der Wlan Steckdose sind nun auch | + | 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. Das Dashboard ist erreichbar über | + | 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/ |
<gallery widths="729" heights="152" perrow="2> | <gallery widths="729" heights="152" perrow="2> | ||
File:Abbildung_27_Flow_für_Wlan_Steckdose_gesteuert_über_MQTT_Protokoll.svg| Flow für Wlan Steckdose gesteuert über MQTT Protokoll | File:Abbildung_27_Flow_für_Wlan_Steckdose_gesteuert_über_MQTT_Protokoll.svg| Flow für Wlan Steckdose gesteuert über MQTT Protokoll | ||
Zeile 833: | Zeile 1.010: | ||
====Temperatursensoren==== | ====Temperatursensoren==== | ||
− | Die Temperaturmessung im Schaltschrank sowie am thermischen Speicher erfolgt mittels LM35 Temperatursensoren (Precision Centigrade Temperature Sensors). Diese analogen Sensoren sitzen im Gehäuse | + | 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. |
<gallery widths="207" heights="245" perrow="2> | <gallery widths="207" heights="245" perrow="2> | ||
File:Abbildung_29_Anschlusssituation_Temperatursensor_LM_35.svg| Anschlusssituation Temperatursensor LM 35 | File:Abbildung_29_Anschlusssituation_Temperatursensor_LM_35.svg| Anschlusssituation Temperatursensor LM 35 | ||
</gallery> | </gallery> | ||
Der Temperatursensor wird mit +5V versorgt und kann direkt an einen digitalen Eingang des Arduino angeschlossen werden. | Der Temperatursensor wird mit +5V versorgt und kann direkt an einen digitalen Eingang des Arduino angeschlossen werden. | ||
− | Der LM35 in Form | + | 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 | *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 | *Den Temperaturfühler mit Anschlusskabel in eine leere Temperaturfühlerhülse (Durchmesser 6mm) schieben | ||
Zeile 845: | Zeile 1.022: | ||
====Heizstabregelmodul==== | ====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. | + | 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. Hierfür wird eine eigens dafür konstruierte Platine mit Leistungsmosfets (parallel 3x SUP75N06) eingesetzt. Der Heizstab wird dabei per Pulsweitenmodulation (PWM) in seiner Leistung geregelt. 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 Haushalt verwendet wird. Die Ansteuerung des Heizstabregelmoduls erfolgt direkt vom Arduino mit einem PWM Signal. |
− | Die Ansteuerung des | + | Über einen High-Side Switch (parallel 3x BTS 442 D2) wird das Heizstabmodul 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 ab 95°C der Heizstab deaktiviert. Weiterhin schützt der High-Side Switch die restliche Installation bei einem Schaden / Kurzschluss der Leistungsmosfets. |
+ | Ein Schaltplan des Heizstabregelmoduls ist hier zu finden: [[:File:Schaltplan Heizstabregelmodul.pdf]]. Das Heizstabregelmodul existiert bisher nur als Prototypenaufbau auf einer Lochrasterplatine wie in folgender Abbildung zu erkennen ist: Obere Platine: High Side Switch; untere Platine: Leistungsmosfets und Gate Driver zu deren Ansteuerung. | ||
+ | <gallery widths="1123" heights="796" perrow="2> | ||
+ | File:Abbildung_30.1_Heizstabregelmodul.pdf| Heizstabregelmodul | ||
+ | </gallery> | ||
+ | |||
+ | =====Anschluss Heizstabregelmodul===== | ||
+ | Der Leistungsanschluss der Platine vom Akkumulator ist über eine zweiadrige 6mm^2 Leitung ausgeführt. Die Daten und Signale werden über eine geschirmte Daten- und Steuerleitung 2x2 Adern (z.B. LIYCY TP 2X2X0,5) geführt. An dem Solar-Storage-Controller angeschlossen wird die Daten- und Steuerleitung über eine Wago THT Stiftleiste 733-365. | ||
+ | Das Heizstabregelmodul sitzt im Keller unmittelbar neben dem Heizstab ca. 20m Kabelweg entfernt vom Solarspeicher. Die Leistungsmosfets auf dem Heizstabregelmodul werden sehr heiß und müssen aktiv mit einem kleinen PC Lüfter gekühlt werden, um ein Durchbrennen zu verhindern. Die passive Kühlung über den angebrachten Kühlkörper im kühlen Keller reicht nicht aus. | ||
− | Der | + | Die Spannungsversorgung des Temperatursensors LM 35 erfolgt momentan mit Batteriespannung (laut Datenblatt max. bis 30 V). Allerdings wird dann bei Deaktivierung des Heizstabregelmoduls über den High Side Switch auch der Temperatursensor deaktiviert und es gibt keine Temperaturmesswerte mehr im Volkszähler-Log. Der Solar-Storage-Controller verfügt im Aufbau des 3. Prototypen über eine eigene Spannungsversorgung des LM35 (Vorsicht: Somit benötigt man ein Datenkabel mit 5 Adern als Verbindung zwischen Solar-Storage-Controller und Heizstabregelmodul). |
− | + | Um mit einem Arduino Mega ein PWM Signal über einen digitalen Pin in der gewollten Frequenz zu erzeugen sind hierzu im void setup() einige Einstellungen zu tätigen. Eine sehr gute Erklärung ist auf folgender Internetseite zu finden:[https://forum.arduino.cc/t/mega-2560-pwm-frequency/71434/2] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Grundsätzlich haben am Arduino Mega 2560 12 Pins (Pin 2 bis Pin 13) die Möglichkeit ein PWM Signal auszugeben. | |
− | + | Die Standardfrequenz liegt bei 490Hz. Angepasst wird timer 3, der die Pins 2, 3 und 5 kontrolliert. Genutzt wird im Arduinocode Pin 5, der nun auf 4000 Hz eingestellt ist (prescaler = 2), | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Absicherungskonzept==== | ====Absicherungskonzept==== | ||
− | Das System verfügt über mehrere Sicherungsautomaten bzw. Schmelzsicherungen. Wie auch im | + | 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): | Reihenfolge für Abschaltung der Anlage (Einschaltung erfolgt in umgekehrter Reihenfolge): | ||
#Heizstabsicherung abschalten | #Heizstabsicherung abschalten | ||
Zeile 893: | Zeile 1.047: | ||
#BMS ausschalten | #BMS ausschalten | ||
#Raspberry ausschalten | #Raspberry ausschalten | ||
− | #Akkumulatorsicherung | + | #Akkumulatorsicherung ausschrauben |
#AC seitige Sicherung im Haushaltschaltschrank abschalten | #AC seitige Sicherung im Haushaltschaltschrank abschalten | ||
− | ==== | + | |
− | Zur phasen- und richtungsweis korrekten Erfassung des Hausverbrauchs der Phasen L1 bis L3 | + | ====Stromzähler==== |
+ | Zur phasen- und richtungsweis korrekten Erfassung des Hausverbrauchs der Phasen L1 bis L3 werden SML Zähler oder Hutschienenmodbuszähler eingesetzt, die per HEX- oder Modbusprotokoll über ein CAT5 Kabel mit dem Arduino kommunizieren. Die erfassten Werte werden für die Regelstrategie des Wechselrichters benötigt. Während es bei modernen SML Zählern möglich ist über die IR-Schnittstelle und geeignetem Schreib-Lesekopf den Hausverbrauch direkt über ein HEX Protokoll auszulesen benötigt man bei älteren Zählermodellen einen zusätzlichen Hutschienenmodbuszähler. | ||
+ | Die Solareinspeisung ins Hausnetz wird über einen 1-phasen Hutschienenmodbuszähler direkt im Solarspeicher erfasst. | ||
+ | |||
=====Zweirichtungszähler für Hausverbrauch===== | =====Zweirichtungszähler für Hausverbrauch===== | ||
− | Zur Erfassung des Hausverbrauches kommt folgender Zweirichtungszähler zum Einsatz: | + | Zur Erfassung des Hausverbrauches kommt bei Prototyp 2 folgender Zweirichtungszähler zum Einsatz: |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 907: | Zeile 1.064: | ||
| Fabrikat || DVH4013 | | Fabrikat || DVH4013 | ||
|- | |- | ||
− | | | + | | Herstellerbezeichnung || 4-Leiter Direktanschlußzähler für Wirkenergie |
|- | |- | ||
| Klasse || B | | Klasse || B | ||
|- | |- | ||
− | | | + | | Spezifikation || 3 x 230 / 400 V, 5 / 65 A |
|- | |- | ||
| Messwerke || +A, -A | | Messwerke || +A, -A | ||
Zeile 918: | Zeile 1.075: | ||
|- | |- | ||
| Sonstiges || mit LCD-Display 7-stellig, mit MID-Konformitätszertifizierung | | Sonstiges || mit LCD-Display 7-stellig, mit MID-Konformitätszertifizierung | ||
+ | |- | ||
+ | | Bezug || DZG Metering GmbH, Bezug als Geschäftskunde möglich | ||
|} | |} | ||
Zeile 924: | Zeile 1.083: | ||
</gallery> | </gallery> | ||
Der Einbau erfolgt durch eine autorisierte Elektrofachkraft in den Hausschaltschrank des jeweiligen Objektes direkt nach dem verplombten Eingangszähler des Netzbetreibers. | Der Einbau erfolgt durch eine autorisierte Elektrofachkraft in den Hausschaltschrank des jeweiligen Objektes direkt nach dem verplombten Eingangszähler des Netzbetreibers. | ||
− | Anschluss Modbuskommunikation | + | |
+ | '''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. | 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. | ||
+ | |||
+ | |||
+ | '''Konfiguration Modbuskommunikation''' | ||
+ | |||
+ | Um die Register des Zählers über das Modbusprotokoll auszulesen sind im Arduinocode auf der Hauptregisterkarte die Registeranfragen "requests" hinterlegt. Es sollen die Register 1.7.0 für die Wirkleistung (gridPower), 1.8.0 für den Netzbezug (gridImport) als auch 2.8.0 für Netzeinspeisung (gridExport) ausgelesen werden. Die Wirkleistung wird im Arduinocode als Regelgröße verwendet. Netzbezug und Netzeinspeisung werden nur für das Datenlogging benötigt und direkt in die Volkszählerdatenbank auf dem Raspberry-Pi weitergereicht. Da bei diesen Registeranfragen aber sowohl die Modbuszählernummer als auch eine Checksumme in der Anfragesequenz steckt muss diese für jeden Modbuszähler neu zusammengestellt werden. | ||
+ | |||
+ | Bisherige Modbus requests: | ||
+ | |||
+ | {0x39, 0x03, 0x00, 0x00, 0x00, 0x04, 0x40, 0xB1}, // 0 : Wirkleistung, gridPower (grid 1.7.0)[W] | ||
+ | {0x39, 0x03, 0x40, 0x00, 0x00, 0x02, 0xD5, 0x73}, // 1 : Netz_Bezug, gridImport (grid 1.8.0) [kWh] | ||
+ | {0x39, 0x03, 0x41, 0x00, 0x00, 0x02, 0xD4, 0x8F}, // 2 : Netz_Einspeisung, gridExport (grid 2.8.0) [kWh] | ||
+ | |||
+ | Vorgehensweise:<br> | ||
+ | |||
+ | *Gerätenummer des Modbuszählers auf dem Gehäuse abschreiben. Die letzten beiden Ziffern freistellen. Begreife diese Ziffern als Hexadezimale Zahl. Addiere 1 dazu. Beispiel: 0x38 sind die letzten beiden Ziffern auf der Gerätenummer. | ||
+ | Addiere Eins: 0x38 + 1 = 0x39. Oder im Dezimalsystem 56(dez) + 1 = 57(dez) = 0x39. | ||
+ | *Ersetze das erste Byte im obigen Modbus Request mit der ermittelten Zahl. | ||
+ | *Gehe auf folgende Internetseite zur automatischen Berechnung der neuen Checksumme (CRC): https://www.lammertbies.nl/comm/info/crc-calculation | ||
+ | *Kopiere dir den Modbus Request ohne die letzten beiden Bytes und füge diesen in das Eingabefeld ein. Eingabe „Input type“ auf „Hex“ umstellen. Die neue Checksumme (CRC) kann nun in Zeile CRC-16 (Modbus) ausgelesen werden. | ||
+ | *Diese neu ermittelten 2 Bytes in umgekehrter Reihenfolge an den Request anhängen. | ||
+ | *Gehe für die anderen beiden Requests an den Modbuszähler in gleicher Weise vor und aktualisiere den Arduinocode. | ||
=====Zähler für Solareinspeisung===== | =====Zähler für Solareinspeisung===== | ||
− | Die Solareinspeisung des | + | Die Solareinspeisung des einphasigen Miniwechselrichters AE Conversion erfolgt über einen 16A Sicherungsautomat auf eine beliebige Phase im Hausschaltschrank. Folgender Einphaseneinrichtungszähler kommt zum Einsatz: |
− | + | {| class="wikitable" | |
− | SDM120 Modbus | + | |- |
− | 5(45)A 230V | + | ! Überschrift !! Überschrift |
− | RS485 Modbus and pulse output, | + | |- |
+ | | Modell || Einphasen-Stromzähler für Hutschiene | ||
+ | |- | ||
+ | | Fabrikat || SDM120 Modbus | ||
+ | |- | ||
+ | | Spezifikation || 5(45)A 230V | ||
+ | |- | ||
+ | | Sonstiges || RS485 Modbus and pulse output, | ||
+ | |} | ||
+ | |||
<gallery widths="207" heights="245" perrow="2> | <gallery widths="207" heights="245" perrow="2> | ||
File:Abbildung_32_Modbuszähler_Solar_1_Phasen_Zähler.svg| Modbuszähler Solar 1 Phasen Zähler | File:Abbildung_32_Modbuszähler_Solar_1_Phasen_Zähler.svg| Modbuszähler Solar 1 Phasen Zähler | ||
</gallery> | </gallery> | ||
− | Der Einbau erfolgt durch eine autorisierte Elektrofachkraft in den Hausschaltschrank des jeweiligen Objektes noch vor dem Sicherungsautomaten. | + | Der Einbau erfolgt durch eine autorisierte Elektrofachkraft in den Hausschaltschrank des jeweiligen Objektes noch vor dem Sicherungsautomaten des Wechselrichters. Der Zähler ist so einzubauen, dass die Solareinspeisung im Menüpunkt 1-2 im dortigen Zählregister aufsummiert wird. Der elektrische Eigenverbrauch des Speichers (Raspberry Pi, Arduino Board) werden im Menüpunkt 1-1 im dortigen Zählregister aufsummiert. |
− | Anschluss Modbuskommunikation | + | Folgende Einstellungen müssen im Menü durch den Drucktaster (3 sec drücken) einprogrammiert werden: |
− | Der Anschluss der Modbuskommunikation erfolgt an Klemme 9 auf die grün-weiße Ader | + | {| class="wikitable" |
− | 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. Die | + | |- |
− | <gallery widths=" | + | ! Überschrift !! Überschrift |
− | File: | + | |- |
+ | | Id || 058 | ||
+ | |- | ||
+ | | b (Baudrate)|| 9600 | ||
+ | |- | ||
+ | | Prty (Parity) || E (Even) | ||
+ | |} | ||
+ | '''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. | ||
+ | |||
+ | =====Modbus / SML PCB===== | ||
+ | Die Modbus / SML PCB wird in den elektrischen Verteilerschrank des jeweiligen Haushalts, in dem auch der Eingangs-Stromzähler sitzt, auf eine Hutschiene aufgeclipt und ist in handelsübliche Schaltschrankabdeckungen integrierbar. Sinn und Zweck dieser Platine ist der komfortable und sichere Anschluss diverser Komponenten im Verteilerschrank. Die Modbus / SML PCB verfügt über folgende Anschlüsse: | ||
+ | - | ||
+ | |||
+ | *1x Schraubklemmenpaar für Modbusanschluss (unterhalb der Schaltschrankabdeckung) | ||
+ | *1x RJ22 Anschluss für einen IR-Lesekopf (oberhalb der Schaltschrankabdeckung) | ||
+ | *1x RJ45 Anschluss für die Datenverbindung zum Solar-Storage-Controller / Solarspeicher (unterhalb der Schaltschrankabdeckung) | ||
+ | <gallery widths="450" heights="300" perrow="2> | ||
+ | File:Abbildung_31.1_Modbus-SML_PCB.pdf| Modbus / SML PCB mit / ohne Gehäuse | ||
+ | </gallery> | ||
+ | Ist kein digitaler Stromzähler im Verteilerschrank verfügbar, so kann für rund 80 € ein digitaler 3-Phasen Modbuszähler (z.B. DVH4013 bei DZG Metering AG) nachgerüstet werden, dessen Messwerte der Solar-Storage-Controller zur Regelung weiterverarbeitet. Dieser digitale 3-Phasen Modbuszähler kann dann an die Modbus / SML PCB (Schraubklemmen) angeschlossen werden. | ||
+ | |||
+ | Ist ein digitaler Zähler verfügbar so ist es oft möglich mithilfe eines magnetischen IR-Kopfes die Verbrauchsdaten auszulesen (z.B. über SML Code). Es existieren diverse Bausätze zum Nachbau aber auch kauffertige Produkte. Da der magnetische IR Kopf i.d.R. außerhalb der Schaltschrankabdeckung aufgelegt wird dieser mit einem RJ11 Stecker ausgestattet direkt von oben in das Gehäuse der Modbus / SML PCB eingesteckt werden. Die Verbindung zum Solar-Storage-Controller erfolgt über eine RS235 Verbindung. Modbus und SML Code werden abwechselnd vom Arduinocode ausgelesen und ausgewertet. | ||
+ | |||
+ | Der Schaltplan, Hardwarelayout (KiCAD) sowie Bestückungsübersichten der Modbus / SML PCB finden sich hier [[:File:RS485-Modbus Satellitenboard.zip]]. Es wurde ein Gehäuse von Camdenboss CNMB/2/KIT gewählt. | ||
+ | |||
+ | Die RJ 11 Buchse [https://de.aliexpress.com/item/32817882805.html?src=google&albch=shopping&acnt=494-037-6276&isdl=y&slnk=&plac=&mtctp=&albbt=Gploogle_7_shopping&aff_atform=google&aff_short_key=UneMJZVf&&albagn=888888&albcp=9317151805&albag=93621837065&trgt=296730740870&crea=de32817882805&netw=u&device=c&albpg=296730740870&albpd=de32817882805&gclid=EAIaIQobChMIheDLlead7QIVApntCh2QpwKpEAQYBiABEgKDL_D_BwE&gclsrc=aw.ds Aliexpress] wird in den clipbaren Deckel integriert, indem mit der Laubsäge ein entsprechendes Rechteck ausgesägt und Löcher für die Befestigungsschrauben geschaffen wird. Vier Kontakte des RJ11 Steckers werden auf der Modbus / SML PCB aufgelötet nach Zuordnung in nachfolgender Tabelle. An den IR Sensor wird ein Ringeltelefonkabel angelötet, das auf der anderen Seite einen RJ11 Stecker nach nachfolgender Tabelle aufgecrimpt bekommt. Details zum Bau des IR Sensors unter Abschnitt xy. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Zuordnung der Anschlüsse der RJ 11 Buchse auf der Modbus / SML PCB sowie Zuordnung der Anschlüsse für das Crimpen des RJ11 Steckers | ||
+ | |- | ||
+ | ! RJ11 Buchse auf Modbus / SML PCB !! Aderfarben - Ringelkabel von IR Sensor mit RJ 11 Stecker | ||
+ | |- | ||
+ | | GND (gelb) || schwarz | ||
+ | |- | ||
+ | | - || weiß | ||
+ | |- | ||
+ | | Rx (IR) (grün) || rot | ||
+ | |- | ||
+ | | Tx (IR) (rot) || grün | ||
+ | |- | ||
+ | | - || blau | ||
+ | |- | ||
+ | | 5V (Braun) || gelb | ||
+ | |} | ||
+ | <gallery widths="240" heights="321" perrow="2> | ||
+ | File:Abbildung_31.2_SML_Zähler.pdf| Beispiel der Anbringung des magnetischen IR Lesekopfes an der vorderen IR Schnittstelle eines SML Zählers hier Typ ED300L | ||
+ | </gallery> | ||
+ | Da sich die SML Zähler im Detail im SML Protokoll unterscheiden sind je nach Zähler Modifikationen im Arduinocode vorzunehmen. Details siehe folgende Abschnitte. | ||
+ | |||
+ | =====IR Schreib- Lesekopf===== | ||
+ | Es existieren diverse Bausätze und Bauanleitungen im Internet sowie die Möglichkeit fertig zusammengebaute IR Schreib- Leseköpfe zu erwerben. | ||
+ | Für die Auslesung des SML Smart Meters / SML Zählers über das Arduinoboard benötigen wir einen Lesekopf mit TTL Pegel Ausgang. | ||
+ | Zum Debuggen und unkompliziertes Auslesen des SML Zählers empfiehlt sich zusätzlich einen Lesekopf mit USB Schnittstelle zu erwerben. Auslesung erfolgt dann komfortabel z.B. mithilfe des kostenlosen Programms Emlog – Testprogramm v.1.17 von Weidmüller Elektronik unter [http://www.weidmann-elektronik.de/Downloads.html Weidmann-elektronik] | ||
+ | |||
+ | Hier eine Übersicht: | ||
+ | *TTL IR Schreib Lesekopf: | ||
+ | Bauanleitung: [https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-ttl-ausgang volkszaehler] | ||
+ | |||
+ | Fertig aufgebaut: [https://www.ebay.de/itm/ttl-ir-lesekopf-lese-schreib-Kopf-EHZ-Volkszahler-Hichi-Smartmeter/313460034498 ebay] | ||
+ | |||
+ | *USB Leseköpfe: [https://de.elv.com/elv-bausatz-lesekopf-mit-usb-schnittstelle-fuer-digitale-zaehler-usb-iec-155523 elv] | ||
+ | |||
+ | TTL IR und USB Leseköpfe gibt es fertig aufgebaut direkt bei ardubel@web.de | ||
+ | |||
+ | siehe hierzu folgende Links in das PV-Forum: | ||
+ | |||
+ | TTL: [https://www.photovoltaikforum.com/thread/141332-neue-lesekopf-baus%C3%A4tze-ohne-smd-l%C3%B6ten/ Photovoltaikforum] | ||
+ | USB: [https://www.photovoltaikforum.com/thread/145886-habe-lesk%C3%B6pfe-mit-usb-%C3%BCber/ Photovoltaikforum] | ||
+ | |||
+ | Der im Projekt verwendete Lesekopf ist nach folgender Anleitung aufgebaut: [https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-ttl-ausgang Volkszaehler.org] | ||
+ | In folgender Abbildung ist dieser dargestellt. | ||
+ | <gallery widths="707" heights="266" perrow="2> | ||
+ | File:Abbildung_31.3_IR_Lese-Schreibkopf.pdf| IR Lese-Schreibkopf | ||
</gallery> | </gallery> | ||
+ | Aufgrund der Umschaltung mithilfe der Modbus – SML PCB zwischen bidirektionalem Modbus und unidirektional ausgelesenem SML Code, kann es dazu kommen, dass der Smartmeter eine Eingabe erwartet und in den Eingabemodus wechselt. Um dies zu verhindern ist die Sendediode abzukleben. | ||
+ | |||
+ | =====Eigenheiten SML Zähler Registerauslesung===== | ||
+ | Der im Projekt verwendete SML Zweirichtungszähler ist ein Easymeter Q3A. Dieser sendet ohne Aufforderung jede Sekunde ein Datenpaket das aus 784 HEX Zeichen besteht (Einstellung serielle Schnittstelle: Baud 9600 8N1 unidirektional). Für die Auswertelogik auf dem Arduino werden nur die folgend dargestellten Werte aus der SML Nachricht benötigt, die extrahiert und in lesbare Zahlen formatiert werden: | ||
+ | *1.8.0 Bezug Gesamt - gridImport [kWh] | ||
+ | *1.7.0 oder 16.7.0 Wirkleistung – gridPower [W] | ||
+ | Hinweis: | ||
+ | Folgende Werte werden von der Auswertelogik ebenfalls benötigt, stammen aber vom Modbus 1-Phasenzähler für die Messung der Einspeiselesitung der Wechselrichter ins Hausnetz: | ||
+ | *2.7.0 PV_Leistung,pvPower [W] | ||
+ | *2.8.0 PV_Einspeisung, pvExport [kWh] | ||
+ | Für die Dechiffrierung des SML Codes ist folgende Lektüre sehr empfehlenswert. | ||
+ | [https://www.schatenseite.de/2016/05/30/smart-message-language-stromzahler-auslesen/comment-page-1/ schatenseite.de] | ||
− | + | Zur Extrahierung der Werte (Leistung, Energie) aus der SML Nachricht wird im Arduinocode die entsprechende für einen Zähler unveränderliche Hex Sequenz, die der gesuchten Leistung (1.7.0 oder 16.7.0) oder Energie (1.8.0) im SML Code vorangestellt ist, gesucht, die folgenden HEX Werte extrahiert und in eine Zahl umgewandelt, die der Code weiterverarbeiten kann. Die Hex Sequenzen nach denen in der SML Nachricht gesucht werden soll, ist im Code unter folgenden Variablen hinterlegt und muss für jeden SML Zähler entsprechend angepasst werden: | |
− | + | *powerSequence[] | |
+ | *consumptionSequence[] | ||
+ | Je nach Zähler wird die Leistung oder Energie nicht nur in Basiseinheiten wie W oder Wh angegeben sondern ggf. in kW oder kWh. Dies muss im Code über die Variablenwerte scaler_gridPower_SML und scaler_gridImport_SML angepasst werden. | ||
+ | |||
+ | Start und Stopsequenz sind bei jeder gültigen SML Nachricht gleich und sind folgendermaßen definiert: | ||
+ | *startSequence[] = { 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x01, 0x01, 0x01 }; | ||
+ | *stopSequence[] = { 0x1B, 0x1B, 0x1B, 0x1B, 0x1A }; | ||
+ | Herausfordernd sind im Detail die kleinen Unterschiede der SML Nachrichten. So gibt es Zähler, die die Leistung nicht vorzeichenbehaftet ausgeben. D.h. Stromverbrauch und Einspeisung ist nicht am Vorzeichen der Leistung zu erkennen. Dafür ändert sich bei Einspeisung aber ein bestimmtes Byte in der Sequenz des Bezuges 1.8.0! was entsprechend in der Auswerteroutine berücksichtigt werden muss. | ||
+ | Es empfiehlt sich also beim Einsatz eines unbekannten SML Zählers zuerst die HEX Nachricht mithilfe des USB Schreib- Lesekopfes und dem Programm Emlog anzeigen zu lassen, die entsprechenden Sequenzen zu ermitteln, zu extrahieren für Stromverbrauch und Stromeinspeisung und dann im Arduinocode zu hinterlegen. | ||
===Aufbau des Systems=== | ===Aufbau des Systems=== | ||
+ | ====2. Prototyp==== | ||
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. | 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. | 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 | + | 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. | 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 | + | 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 | + | 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 nur zwei stark exzentrische Laschen zur Befestigung | + | 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. |
<gallery widths="486" heights="287" perrow="2> | <gallery widths="486" heights="287" perrow="2> | ||
File:Abbildung_34_Wechselrichteranordnung_im_Schaltschrank.svg| Wechselrichteranordnung im Schaltschrank | File:Abbildung_34_Wechselrichteranordnung_im_Schaltschrank.svg| Wechselrichteranordnung im Schaltschrank | ||
Zeile 976: | Zeile 1.263: | ||
*Temperatursensor Trinkwasserspeicher | *Temperatursensor Trinkwasserspeicher | ||
*Akkumulator | *Akkumulator | ||
− | ====Schaltschrank==== | + | =====Schaltschrank===== |
Im vorliegenden Projekt ist folgender Schaltschrak im Einsatz: | Im vorliegenden Projekt ist folgender Schaltschrak im Einsatz: | ||
− | *Schaltschrank (H/B/T) 600mm x 600mm x 300mm IP65 für ca. 100€ | + | *Schaltschrank (H / B / T) 600mm x 600mm x 300mm IP65 für ca. 100€ |
*Kabeleinführung: oben | *Kabeleinführung: oben | ||
*Türanschlag: rechts | *Türanschlag: rechts | ||
− | ====Materialliste==== | + | =====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. | 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==== | + | =====Verdrahtungsplan===== |
− | Unter folgendem Link ist der Schaltplan des Solarspeichers abrufbar | + | Unter folgendem Link ist der Schaltplan des Solarspeichers entweder als .pdf oder als einzelne .svg Dateien abrufbar . |
+ | *[[:File:Schaltplan Schaltschrank gesamt.pdf]] | ||
+ | *[[:File:svg Dateien.zip]] | ||
+ | ====Prototyp 3==== | ||
+ | |||
+ | =====Schaltschrank===== | ||
+ | Der 3. Prototyp wird incl. Akkumulator in einem Schaltschrank untergebracht. Die Abmaße des Schaltschrankes (Rittal AX 1180.000) betragen 800 mm x 1000 mm x 300 mm (B x H x T). Zum Einführen der Kabel wird die Flanschplatte SZ 2565.400 verwendet. Ausgehend von dem Solar-Storage-Controller werden alle Komponenten angeschlossen. | ||
+ | <gallery widths="486" heights="287" perrow="2> | ||
+ | File:Abbildung_34.1_Komponentenanordnung_3._Prototyp.pdf| Komponentenanordnung 3. Prototyp | ||
+ | </gallery><br> | ||
+ | =====Materialliste===== | ||
+ | Folgende Komponenten- und Kostenliste listet alle verwendeten Materialien incl. Preis und Bezugsort auf [[:File:20220601_Komponenten- und Kostenübersicht Soldorado Solarspeicher.pdf]]. | ||
− | ====Systemwirkungsgrad==== | + | =====Verdrahtungsplan===== |
+ | Unter folgendem Link ist der Schaltplan des Solarspeichers entweder als .pdf oder als einzelne .svg Dateien abrufbar . | ||
+ | *[[:File:20221215_Schaltplan gesamt 3. Prototyp.pdf]] | ||
+ | *[[:File:Schaltplan Schaltschrank 3. Prototyp svg Dateien.zip]] | ||
+ | |||
+ | ====Systemwirkungsgrad (2. Prototyp)==== | ||
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:<br> | 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:<br> | ||
− | Abbildung 34.2 | + | *20.07.2019: Erzeugungs- und Verbrauchsprofil [[:File:Abbildung 34.2 20.07.2019- Erzeugungs- und Verbrauchsprofil.pdf]] |
+ | WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau) <br> | ||
− | Abbildung 34.3 | + | *23.07.2019: Erzeugungs- und Verbrauchsprofil [[:File:Abbildung 34.3 23.07.2019- Erzeugungs- und Verbrauchsprofil.pdf]] |
+ | Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)<br> | ||
− | Abbildung 34.4 | + | *24.07.2019: Erzeugungs- und Verbrauchsprofil [[:File:Abbildung 34.4 24.07.2019- Erzeugungs- und Verbrauchsprofil.pdf]] |
+ | Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)<br> | ||
− | Abbildung 34.5 | + | *22.07.2019: Erzeugungs- und Verbrauchsprofil [[:File:Abbildung 34.5 22.07.2019- Erzeugungs- und Verbrauchsprofil.pdf]] |
− | Auswertung Systemgesamteffizienz (Solaranlage mit 1kWp) | + | Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau) <br> |
+ | |||
+ | '''Auswertung Systemgesamteffizienz (Solaranlage mit 1kWp)''' | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 1.014: | Zeile 1.322: | ||
| '''Energieverbrauch''' || || || || | | '''Energieverbrauch''' || || || || | ||
|- | |- | ||
− | | Temperaturerhöhung Boiler || 882 kJ bzw. 0,25 kWh || 655 kJ bzw. 0,18 kWh || 1961 kJ bzw. 0,54 kWh || | + | | 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 | | Wechselrichterleistung || 3 kWh || 3,03 kWh || 3,38 kWh || 3,38 kWh | ||
|- | |- | ||
− | | Ladedifferenz Akku/24h || Morgens SOC 54 % | + | | Ladedifferenz Akku/24h || Morgens SOC 54 %, abends SOC 63 %, 6,3 Ah = 0,18 kWh |
− | abends SOC 63 % | + | || Morgens SOC 60 %, abends SOC 79 %, 13,3 Ah bzw. 0,38 kWh |
− | 6,3 Ah = 0,18 kWh | + | || Morgens SOC 78 %, abends SOC 60 %, 12,6 Ah bzw. 0,36 kWh |
− | || Morgens SOC 60 % | + | || Morgens SOC 60 %, abends SOC 50 %, 7 Ah bzw. 0,20 kWh |
− | |||
− | |||
− | || Morgens SOC 78 % | ||
− | |||
− | |||
− | || Morgens SOC 60 % | ||
− | |||
− | |||
|- | |- | ||
Zeile 1.044: | Zeile 1.344: | ||
*Material und Preisliste der verwendeten Materialien | *Material und Preisliste der verwendeten Materialien | ||
*Möglichkeit der energetischen und wirtschaftlichen Optimierung eines Solarspeichers | *Möglichkeit der energetischen und wirtschaftlichen Optimierung eines Solarspeichers | ||
+ | Das Exceltool ist in folgendem Repo abgelegt: [https://gitlab.opensourceecology.de/soldorado-open-solar-system/solar_storage_simulation_sheet gitlab.opensourceecology.de/] | ||
====Beschreibung der einzelnen Registerkarten==== | ====Beschreibung der einzelnen Registerkarten==== | ||
Registerkartenübersicht | Registerkartenübersicht | ||
Zeile 1.067: | Zeile 1.368: | ||
*Autarkiegrad [%] | *Autarkiegrad [%] | ||
Direkt (bzw. indirekt über Batterie) verbrauchte solar erzeugte Strommenge im Haushalt in Prozent gemessen am jährlichen Stromverbrauch. | 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 | Autarkie = direkt (bzw. indirekt über Batterie) verbrauchte solare Strommenge / Stromjahresverbrauch | ||
*Eigenverbrauch bzw. Systemwirkungsgrad [%] | *Eigenverbrauch bzw. Systemwirkungsgrad [%] | ||
− | Direkt verbrauchte Strommenge gemessen am jährlichen Verbrauch | + | Direkt verbrauchte Strommenge gemessen am jährlichen Verbrauch. |
+ | |||
Eigenverbrauch = direkt (bzw. indirekt über Batterie) verbrauchte solare Strommenge / jährliche Erzeugung | Eigenverbrauch = direkt (bzw. indirekt über Batterie) verbrauchte solare Strommenge / jährliche Erzeugung | ||
Zeile 1.077: | Zeile 1.380: | ||
====Registerkarte 2 Anleitung==== | ====Registerkarte 2 Anleitung==== | ||
− | + | Infos zur Benutzung des Exceltools. | |
====Registerkarte 3 Deckblatt==== | ====Registerkarte 3 Deckblatt==== | ||
Zeile 1.091: | Zeile 1.394: | ||
*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 | *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 | *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) ( | + | *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 ( | + | *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 ( | + | *Anzahl Miniwechselrichter (für Kostenberechnung) |
− | *Miniwechselrichtertyp von AE Conversion z.B. 350W oder 500W ( | + | *Miniwechselrichtertyp von AE Conversion z.B. 350W oder 500W (für Kostenberechnung) |
*Wechselrichterwirkungsgrad z.B. 92% | *Wechselrichterwirkungsgrad z.B. 92% | ||
− | *Stromkosten in €/kWh ( | + | *Stromkosten in €/kWh (für Kostenberechnung) |
*Stromkostensteigerung pro Jahr (für Wirtschaftlichkeitsberechnung) in % (bisher nicht verwendet) | *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 | *Stromjahresbedarf der zu versorgenden Wohnung/ des Hauses in kWh (für die Berechnung eines geeigneten Verbrauchsprofils | ||
Zeile 1.111: | Zeile 1.414: | ||
Die Berechnungsergebnisse werden für vier Systemtypen berechnet, die wie folgt definiert sind: | Die Berechnungsergebnisse werden für vier Systemtypen berechnet, die wie folgt definiert sind: | ||
− | *Systemtyp 1: Speichersystem mit Akkumulator, Eigenverbrauch und Heizstab ohne Netzeinspeisung. | + | *'''Systemtyp 1:''' Speichersystem mit Akkumulator, Eigenverbrauch und Heizstab ohne Netzeinspeisung. |
− | *Systemtyp 2: Speichersystem mit Akkumulator, Eigenverbrauch und Netzeinspeisung | + | *'''Systemtyp 2:''' Speichersystem mit Akkumulator, Eigenverbrauch und Netzeinspeisung |
− | *Systemtyp 3: konventionelles System mit Eigenverbrauch. | + | *'''Systemtyp 3:''' konventionelles System mit Eigenverbrauch.<br> |
− | 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 | + | Hinweis zu Systemtyp 3:<br> |
− | Systemtyp 4: Minipv ohne Speicher, Direkteinspeisung Steckdose. Diese Systemkonfiguration ergibt Sinn für kleinere Systemkombinationen mit z.B. 2-3 Solarmodulen. | + | 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. |
− | Allgemeine Hinweise: | + | |
− | Für eine nachvollziehbare Systemauslegung und Kostenberechnung wurden für Systemtyp 1 und | + | *'''Systemtyp 4:''' Minipv ohne Speicher, Direkteinspeisung Steckdose. <br> |
− | 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 oder 48V), „Modultyp“ (60-zellig oder 72-zellig) und die „Modulanzahl“ korrekt eingegeben sind. | + | Hinweis zu Systemtyp 4:<br> |
+ | 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: | Folgende Berechnungsergebnisse werden angezeigt: | ||
Zeile 1.139: | Zeile 1.447: | ||
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! | 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==== | ====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. | 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. | ||
Zeile 1.170: | Zeile 1.479: | ||
− | Beispiel: | + | Beispiel:<br> |
− | Optimierungsziel 1 x-Achse: | + | Optimierungsziel 1: x-Achse: Amortisationszeit<br> |
− | Optimierungsziel 2 y-Achse: Autarkiegrad | + | Optimierungsziel 2: y-Achse: Autarkiegrad<br> |
− | Stellgröße 1:Batteriegröße variiert zwischen 20 und 200Ah | + | Stellgröße 1: Batteriegröße. Diese variiert zwischen 20 und 200Ah. |
<gallery widths="479" heights="261" perrow="2> | <gallery widths="479" heights="261" perrow="2> | ||
Zeile 1.192: | Zeile 1.501: | ||
Alle Ergebnisse werden zusammengefasst in den ersten Zeilen der Registerkarte Berechnung und in der Registerkarte auf dem Deckblatt. | Alle Ergebnisse werden zusammengefasst in den ersten Zeilen der Registerkarte Berechnung und in der Registerkarte auf dem Deckblatt. | ||
====Registerkarte 6 Kostenberechnung 2.Prototyp LiFePo==== | ====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. | + | 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==== | ====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. | + | 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. | 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 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 |
{| class="wikitable" | {| class="wikitable" | ||
Zeile 1.234: | Zeile 1.543: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! 150V Laderegler - Modulverschaltung mit | + | ! 150V 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 [€] | | 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 [€] | ||
Zeile 1.275: | Zeile 1.584: | ||
! 250V Laderegler - Modulverschaltung mit 72 Zellen pro Modul für 48V Systeme!! !! !! !! !! !! !! !! | ! 250V Laderegler - Modulverschaltung mit 72 Zellen pro Modul für 48V Systeme!! !! !! !! !! !! !! !! | ||
|- | |- | ||
− | | Systemkürzel || Reihe || Parallel || Anzahl | + | | Systemkürzel || Reihe || Parallel || Anzahl 72 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-9-657 || 3 || 3 || 9 || 3240 || 3000 || 0,93 || 250/60 || 657 | ||
Zeile 1.304: | Zeile 1.613: | ||
====Registerkarte 17 Änderungsmanagement==== | ====Registerkarte 17 Änderungsmanagement==== | ||
Hier werden chronologisch nach Datum Aktualisierungen und Änderungen am Excelfile dokumentiert | Hier werden chronologisch nach Datum Aktualisierungen und Änderungen am Excelfile dokumentiert | ||
+ | |||
== Organisatorisches == | == Organisatorisches == | ||
===Entwickler-Team=== | ===Entwickler-Team=== | ||
− | Thomas Plaz | + | [[Thomas Plaz]]<br> |
Frank Richter | Frank Richter | ||
===Roadmap and Log=== | ===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 - Überarbeitung Absicherungskonzept BMS | ||
* 2020 - Neukonstruktion Arduino- und Mosfetplatine in KiCAD mit Gehäuse | * 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 - Integration der neuen Arduino- und Mosfetplatine und der damit zusammenhängenden hard- und softwareseitigen Neuerungen | ||
* 2020 - Überarbeitung Heizstabansteuerung | * 2020 - Überarbeitung Heizstabansteuerung | ||
− | * | + | * 2021 - Redesign des Schaltschrankes / Integration des Akkumulators in den Schaltschrank / Bau des 3. Protoypen |
− | * | + | * 2021 - Komplette Neukonstruktion der sogenannten Hautplatine, die nun alle Funktionen der bisherigen Arduino- und Mosfetplatine und den Leistungsteil (SNS) des Batteriemanagementssystems vereint |
− | * | + | * 2021 - Neuauflage der BMS Platine unter Behebung kleiner Hardwarefehler |
− | * | + | * 2021 - Gehäuseintegration der Hauptplatine |
+ | * 2021 - Umfangreiche Überarbeitung des Arduino Codes z.B. Integration der Auslesung von SML Zähler per Magnet-Lesekopf und Ansteuerung mehrerer Wechselrichter in Kaskade | ||
+ | 2021 / 2022: | ||
+ | * Integration intelligentere SOC Berechnung im BMS | ||
+ | * Erstellung Schaltplan des 3. Prototypen | ||
+ | * Integration der Projektdokumentation und Quelldaten in GitLab | ||
+ | 2023: | ||
+ | * erfolgreiche Inbetriebnahme 3. Protoyp und Test aller Funktionen | ||
+ | * 3. Protoyp in Regelbetrieb | ||
+ | * Überarbeitung der SML Auswerteroutine | ||
+ | * Aktualisierung des Frontpanels des NodeRed UI | ||
+ | * Einbindung einer manuell oder automatisch schaltenden Schaltsteckdose bei Überschussstrom über NodeRed und MQTT | ||
+ | * Integration der Überschusseinspeisung mit zwei Wechselrichtern (ca. 1kW) auch wenn Hauslast geringer ist (Bei einem System ohne angeschlossenen Heizstab ist es schade Solarenergie nicht zu nutzen wenn der Speicher voll ist) | ||
+ | Zukünftige Ziele: | ||
+ | * Inbetriebnahme weiterer Solarspeicher, Anfragen werden gerne entgegen genommen | ||
===Aktueller Entwicklungs-Status=== | ===Aktueller Entwicklungs-Status=== | ||
− | Der | + | Der 3. Prototyp wurde 2023 erfolgreich in einem Einfamilienhaus in Betrieb gesetzt und verrichtet seither seine Dienste. Über das volkszähler Frontend sind für uns Entwickler die Betriebsdaten einsehbar, sodass ein Monitoring möglich ist. |
− | |||
===ToDo next=== | ===ToDo next=== | ||
− | * | + | * Monitoring des 3. Prototypen im Regelbetrieb |
− | * | + | * Auslagerung der Auslesung des SML Zählers auf ein externes Arduino in der Satellitenplatine |
− | * | + | * Protokollüberarbeitung der seriellen Schnittstelle zwischen BMS und Arduino |
− | + | * Auslegung des Heizstabregelmoduls für ein 48V System | |
− | |||
− | |||
− | * | ||
* Nachbau und Austausch durch und mit interessierten Anwendern | * Nachbau und Austausch durch und mit interessierten Anwendern | ||
Zeile 1.342: | Zeile 1.662: | ||
===Open Tasks for volunteers ;-)=== | ===Open Tasks for volunteers ;-)=== | ||
+ | * Mitarbeit und Diskussion im und mit dem Entwicklungsteam | ||
+ | * Planung und Optimierung des Schaltschrankaufbaus für weitere Prototypen | ||
+ | * Auslegung des Heizstabregelmoduls für ein 48V System und Konstruktion in KiCAD | ||
* Übersetzung der Dokumentation und Quelldaten auf Englisch | * Übersetzung der Dokumentation und Quelldaten auf Englisch | ||
− | |||
* Verbreitung und Nachbau des Solar-Speichers | * 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 === | === 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: | ||
+ | <html> | ||
+ | <table><tr><td style="text-align:left; vertical-align: top; min-width: 300px; padding-left: 10px; "> | ||
+ | <div id="moneycontainer" class="round" style="padding: 10px 15px 10px 15px; font-size: 16px; text-align: center; background-color: #EEEEEE;"> | ||
+ | <div id="spendencontainer" style="padding-top: 0px;"> | ||
+ | <a href="http://wiki.opensourceecology.de/Solarspeicher_station%C3%A4r/Spenden" class="roundtable spendenbutton-small" style="display: block; text-align: center;">Spenden</a><br/> | ||
− | + | </table> | |
− | + | </html> | |
− | |||
== Literatur und Links == | == Literatur und Links == |
Aktuelle Version vom 13. Dezember 2023, 06:53 Uhr
Beschreibung, Lizenz, Entwicklungsstand | |
---|---|
Projekt: Soldorado Solarspeicher. Beschreibung: Das von OPEN SOLAR SYSTEMS erarbeitete Projekt, verfolgt die Idee, einen professionellen, kostengünstigen und intelligenten Solarspeicher zu entwickeln, der für kleinere PV-Anlagen, auf Dach- oder Balkonflächen geringeren Ausmaßes, den Grundlaststrom in einem Haushalt regenerativ abdecken kann. | |
Stichwörter | Solar; Energiespeicher; Sonnenenergie |
Lizenz | Allgemeine Öffentliche GNU-Lizenz (GPL v3.0) |
Status | aktiv |
Erreichte Stufen | Prototyp gefertigt; veröffentlicht |
Austausch | |
Kontakt |
|
Urheber, Verfasser | |
Diskussion |
|
Entwicklersammlungen (engl. Repositories) |
|
Daten | |
Verfügbare Metadaten (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.
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 sind unter Gitlab oder GitHub verfügbar (siehe obenstehende Links).
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.
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
2020 / 2021:
- Redesign des Schaltschrankes / Integration des Akkumulators in den Schaltschrank / Bau des 3. Protoypen
- Komplette Neukonstruktion der sogenannten Hautplatine, die nun alle Funktionen der bisherigen Arduino- und Mosfetplatine und den Leistungsteil des Batteriemanagementssystems vereint
- Gehäuseintegration der Hauptplatine
- Umfangreiche Überarbeitung des Arduino Codes z.B. Integration der Auslesung von SML Zähler per Magnet-Lesekopf und Ansteuerung mehrerer Wechselrichter in Kaskade
- Hauptplatine verfügt nun über die Möglichkeit der bidirektionalen Kommunikation zu Victron Ladereglern und der elektrischen Isolation zu allen Schnittstellen.
- Neuauflage der BMS und SNS Platine unter Behebung kleiner Hardwarefehler
2021 / 2022:
- Integration intelligentere SOC Berechnung im BMS
- Erstellung Schaltplan des 3. Prototypen
- Integration der Projektdokumentation und Quelldaten in GitLab
2023:
- erfolgreiche Inbetriebnahme 3. Protoyp und Test aller Funktionen
- 3. Protoyp in Regelbetrieb
- Überarbeitung der SML Auswerteroutine
- Aktualisierung des Frontpanels des NodeRed UI
- Einbindung einer manuell oder automatisch schaltenden Schaltsteckdose bei Überschussstrom über NodeRed und MQTT
- Integration der Überschusseinspeisung mit zwei Wechselrichtern (ca. 1kW) auch wenn Hauslast geringer ist (Bei einem System ohne angeschlossenen Heizstab ist es schade Solarenergie nicht zu nutzen wenn der Speicher voll ist)
Zukünftige Ziele:
- Inbetriebnahme weiterer Solarspeicher, Anfragen werden gerne entgegen genommen
Systemaufbau
- Der Stromzähler 1 erfasst die PV Einspeisung und den elektrischen Verbrauch auf allen drei Phasen im Haus und kommuniziert mit der Steuereinheit 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
- 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.
- 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.
- 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
Prototyp 2
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.
Prototyp 3
Für die Weiterentwicklung des Solarspeichers wird eine Version des Wechselrichters „MICRO INVERTER, INV500-90EU RS485“ verwendet, die von AE Conversion an Firmenkunden als Batteriewechselrichter verkauft wird. Vorteil dieser Variante ist der geringere Platzbedarf im Schaltschrank durch sein kompakteres Gehäuse und Anschlussstecker. Auch wenn der Wechselrichter als „Batteriewechselrichter“ verkauft wird muss noch aktiv per Schnittstelle der Batteriemodus vor jedem setzen einer Leistung mitgeteilt werden. Werden mehrere Wechselrichter hintereinander angesprochen, so ist zwischen den Befehlen eine Mindestzeit von einigen Millisekunden (z.B. 800ms) abzuwarten, damit die Antwort des ersten Wechselrichters nicht mit dem Befehl für den zweiten Wechselrichter kollidiert.
Es kommen folgende Stecker zum Einsatz: AC seitig wird folgender Gegenstecker benötigt: Adels-Contact 165663V9 Netz-Steckverbinder. DC seitig wird für die Stromversorgung und Kommunikation folgender Gegenstecker mit Crimpkontakten benötigt: MolexCrimpgehäuse-Mini-FitJr-2x6-polig-Stecker MOLEX39012121.
Berechnung der Wechselrichteradresse
Die Adresse des Wechselrichters kann auch berechnet werden. Die Formel lautet: Adresse = (Seriennummer des Wechselrichters Modulo 32) + 1
Beispiel:
Seriennummer des Wechselrichters: 0405500348 Seriennummer des Wechselrichters Modulo 32: 28 (berechnet mit Modulokalkulator)
Es errechnet sich somit die Wechselrichteradresse 29.
Protokoll und Kommunikation
Mit dem Miniwechselrichter kann über zwei verschiedene Protokolle kommuniziert werden:
- KACO/Schueco Protokoll (ASCII String): bidirektionale Kommunikation
- 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:
- WR auf Modus 2 setzen (Spannungs- und Stromvorgabe):
- Anfrage:
#32B_2_27.0<CR>
- Antwort:
<LF>*<ID>B_2_27.0_z<CR><br>
- Anfrage:
- WR Stromvorgabe setzen (um Leistung zu reduzieren):
- Anfrage:
#32S_08.0<CR>
- Antwort:
<LF>*<ID>S_08.0_z<br>
- Anfrage:
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 Prototyp 2
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.
Wirkungsgradkennlinie Wechselrichter Prototyp 3
Der im Prototyp 3 verbaute Microwechselrichter MICRO INVERTER, INV500-90EU RS485 hat eine maximale DC seitige Stromaufnahme von ca. 10,5A (bei ca. 49,4V primärseitiger Spannung) und hat folgenden Wirkungsgradverlauf:
PV Module
Prototyp 2
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.
Prototyp 3
Der 3. Protoyp ist ausgelegt für 6 Solarmodule (Solarworld SW 280 Wp, 60 Zellen, mit STC Uo: 39,5 V; Umpp: 31,2 V; Isc: 9,71 A; Impp: 9,07 A) wobei jeweils 3 in Reihe geschaltet sind. Die Solarmodule sind auf einem flachen Garagendach in zwei Reihen zu je 3 Modulen unter einem Winkel von 10° hintereinander angeordnet. Die Ausrichtung beträgt 165° Süd-Süd Ost. Die Solarmodule befinden sich auf dem Garagendach zwischen zwei Gebäudekomplexen wie auf folgenden Bildern zu erkennen ist.
Überstromschutz
Die Modulerdung erfolgt mithilfe eines 10qmm dicken grün-gelben Erdungskabel (Litze H07V-K 1 x 10 mm²), das im Hausverteilerkasten auf die Potenzialschiene aufgeklemmt ist. Es besteht neben der direkten Modulerdung die Möglichkeit der Integration eines Kombischutzes für die Ableitung von Blitzströmen und Schutz vor Spannungsspitzen. Beim Prototyp 3 wurde hierzu der Kombiableiter CITEL - DS50VGPV-1000G/12KT1 verwendet. Es erfolgt der Anschluss des positiven PV Strings sowie des negativen PV Strings an den Kombiableiter und der Anschluss an die Hauserde. Es sollte ebenfalls mindestens ein 10qmm grün-gelbes Erdungskabel (Litze H07V-K 1 x 10 mm²) verwendet und direkt an der Hauspotenzialschiene angeschlossen werden.
Laderegler
Prototyp 2
Durch die unterschiedliche Dachausrichtung sind im vorliegenden Projekt zwei Laderegler mit integriertem MPP Tracking in Verwendung an die jeweils 2 Module mit 60 Zellen angeschlossen sind. Es handelt sich um zwei Victron MPPT 100-15, die über eine Schnittstelle und eine tauschbare 20A Sicherung verfügen.
Prototyp 3
Es werden insgesamt 6 Solarmodule verwendet wobei 2 Strings parallel angeschlossen sind und bei jedem String jeweils 3 Module in Reihe geschaltet sind. Mithilfe von Abschnitt „Registerkarte 7 Ladereglerauslegung“ wurde hierfür der Laderegler Victron BlueSolar MPPT 150/35 ausgewählt.
Maximal erlaubte Leerlaufspannung: 150V; vorhanden 3 x 39,5V = 118,5V
Maximal mögliche Strombelastung des Ladereglers: 35A; vorhanden: 3 x 9,71A = 29,13A
Schnittstelle
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:
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.
Prototyp 2
- Unter Einstellungen werden nun für den LiFePo Akkumulator mit neun Zellen folgende Parameter eingestellt (Firmware: v1.56):
Eigenschaft | Parameter |
---|---|
Batteriespannung | 24V |
Max. Ladestrom | 15A |
Batterievoreinstellung | Benutzerdefiniert |
Expertenmodus | On |
Absorptionsspannung (Konstantspannung) | 31,05V |
Maximale Konstantspannungsdauer | 30min |
Erhaltungsspannung | 31,05V |
Ausgleichsspannung | 31,05V |
Schweifstrom | 2A |
Automatischer Zellenausgleich | Deaktiviert |
- 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
Prototyp 3
- Unter Einstellungen werden nun für den LiFePo Akkumulator mit 15 Zellen folgende Parameter eingestellt:
Eigenschaft | Parameter |
---|---|
Batteriespannung | 48V |
Max. Ladestrom | 35A |
Konstantspannung | 51,75V |
Maximale Konstantspannungsdauer | 30min |
Erhaltungsspannung | 51,75V |
Ausgleichsspannung | 0V |
Akkumulator
Prototyp 2
Für den 2. Prototypen werden neun Zellen a 3,2V-3,6V 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.
Prototyp 3
Für den 3. Prototypen werden 15 Zellen a 3,2-3,6V des Lithium-Eisen-Mangan-Phosphat Akku von Innopower INNO-LFMP 60 AH verwendet. Es entsteht somit ein Akkupack mit 48V – 54V Spannung mit einer Speicherkapazität von 60Ah bzw. ca. 3 kWh.
Abmessungen Zelle: 125x65x185mm, Gewicht:ca.2,0 kg pro Zelle. Innopower liefert den Akkupack per Post fertig mit Kunststoffband verspannt incl. Polverbinder, Polschrauben und Zellabdeckung. Die Zyklenzahl ist bei einer DoD (Depth of Discharge) von 80% mit >= 5000 angegeben. Der Hauptanschluss erfolgt über zwei 16qm Kabel, die Absicherung über einen Lasttrennschalter Typ: Siemens 5SG7113 und einer Schmelzsicherung D02 32A gG 400Vschw NEOZED Sicherungseinsatz. Der gesamte Akkupack kommt im Schaltschrank unter und wird mit Gurten an der Montageplatte verspannt um ein Herausrutschen/Umkippen zu vermeiden. Die von Innopower mitgelieferten Zellabdeckungen dienen als Berührungsschutz und Kurzschlussschutz und werden nach Montage auf die Oberseite der Zellen aufgeclipt. Da 15 Zellen in Verwendung sind, muss auf dem BMS Board der IC BQ 76940 verwendet werden. Siehe hierzu die ausführliche Doku unter 24-48V_BMS Schaltplan und Boarlayout sind im aktuellen Repo unter [7] zu finden. Beim Anschluss des Akkumulators ist besonderen Wert auf die korrekte Zellzuordnung bei der Belegung des Molexstecker J1 / J2 zu achten, zu finden im oben verlinkten Schaltplan des BMS. Da beim 3. Prototypen das Switch-N-Sense Modul auf dem Solar-Storage-Controller mit aufgebracht ist, entfällt die Verwendung des separaten SNS Modul. Das BMS kann also nach Variante 1 unter 24-48V_BMS#Hardware.C3.A4nderungen verwendet werden.
Steuer- und Regelzentrale
Prototyp 2
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.
Strom-, Spannungsversorgung
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.
Prototyp 3
Solar-Storage-Controller (Hauptplatine)
Um einen kostengünstigeren und einfacheren Aufbau des Solarspeichers zu ermöglichen werden die bisherigen drei Einzelplatinen Arduinoplatine, Mosfetplatine und Switch-N-Sense Platine (SNS Platine siehe 24-48V) auf einer großen Hauptplatine (Solar-Storage-Controller) vereinigt. Einige Hardwaremodifikationen und Hardwareerweiterungen die sich während des Betriebes des 2. Prototypen ergeben haben sind eingearbeitet. Steuer- und Regelungseinheit ist nach wie vor das Arduino Mega, in diesem Fall das MEGA2560PRO-EMBED, das auf die Solar-Storage-Controller PCB aufgesteckt wird. Der Solar-Storage-Controller ist mit 24V- 48V Systemen kompatibel und ermöglicht es nun auch (Batterie-) Miniwechselrichter von AE Conversion mit einer Leistung von 500W anzuschließen. Dies war bisher aufgrund der geringeren Systemspannung des 9-zelligen Akkumulators (32 V) nicht möglich. Der Solar-Storage-Controller hat folgende Abmaße: Breite = 242 mm, Höhe = 122 mm und wird in einem Hutschienengehäuse von Bopla untergebracht: Typ:
- Strangprofil CRP 122 Sonderprofillänge 226,0 mm
- CR 122-KS (Set Seitenelemente),
- CRPM 73/63-220-E (Modulabdeckung),
- CRM 73/63 mm (Modulkappensatz),
- CR-LF2 (LP Fixierung)
An den Solar-Storage-Controller werden alle wesentlichen Anschlüsse der Subkomponenten im Schaltschrank mittels genormter Steckverbinder oder Kabelklemmen angeschlossen. Die Verkabelung innerhalb des Schaltschrankes soll dadurch vereinfach werden. Eine Übersicht über alle Anschlussklemmen gibt folgende Abbildung:
Im Einzelnen können an den Solar-Storage-Controller folgende Sub-Komponenten angeschlossen werden (von oben links im Uhrzeigersinn):
- Anschluss Modbus 3-Phasenzähler über RJ 45 Stecker oder Anschluss der Modbus / SML PCB (s.d.). Diese Subkomponenten sitzen in der Regel im Hausverteilschrank. Buchse: RJ45
- Anschluss Modbus 1-Phasenzähler für die Messung der Einspeisung des Solarspeichers ins Hausnetz. Buchse: Wago THT Stiftleiste 733-362
- Anschlussmöglichkeit für ein Display (über I2C) und einem Rotary Encoder an den „interrupt pins“ des Arduinos. Hierdurch wird es möglich eine menügestützte Benutzerbedienung in den Solarspeicher zu implementieren. Buchse: Multicomp Box_header_connector_4x2
- Serieller Anschluss für das Datenkabel vom BMS. Trennung beider Seiten über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden. Buchse: Multicomp Box_header_connector_5x2
- Anschlussmöglichkeit eines (z.b: OLED) Displays zur Anzeige wesentlicher Parameter der BMS Tätigkeit (Daten sind auch über den vzlogger einzusehen). Buchse: Wago THT-Stiftleiste733-364
- Anschluss der Wechselrichter über ihre serielle Schnittstelle z.B. mit der der vorhandenen RJ45 Buchse umgesetzt im Arduino als softwareseitige Schnittstelle (software serial).Buchse: RJ45
- Datenverbindung vom BMS zur Ansteuerung der Akkumulatorschutzfunktionen (SNS) (Tiefentladeschutz, Überladeschutz). Buchse: Multicomp Box_header_connector_4x2
- Anschluss der Batterieausgänge der verwendeten Laderegler. Klemme: Wago 2606-1104 (6 – 10mm^2)
- Anschlussmöglichkeit eines Heizstabes (geregelt über Heizstabregelmodul) (max. 70 A) Klemme: Wago 2616-1102 (16-25mm^2)
- Anschluss von Verbraucher / Wechselrichter 1: Klemme Wago 2606-1102 (6-10 mm^2)
- Anschluss von Verbraucher / Wechselrichter 2: Klemme Wago 2606-1102 (6-10 mm^2)
- Anschluss von Verbraucher / Wechselrichter 3: Klemme Wago 2606-1102 (6-10 mm^2)
- Anschluss eines Kleinverbrauchers (z.B. Schaltschranklüfter): Buchse: Wago THT Stiftleiste 733-362
- Anschluss des Akkumulators: Klemme: Wago 2616-1102 (16 – 25 mm^2)
- Stromversorgung des Arduino und Datenverbindung per USB vom Raspberry. Buchse: USB-B
- Anschlussmöglichkeit für einen oder mehrere Temperatursensoren (LM35). Buchse: Wago THT Stiftleiste 733-364
- Anschlussmöglichkeit von Taster oder Schalter gegen GND, um eine Aktion im Arduinocode auszulösen. Buchse: Wago THT Stiftleiste 733-364
- Anschlussmöglichkeit des Heizstabregelmoduls „PWM Controller“. Buchse: Wago THT Stiftleiste 733-365
- Serieller Anschluss an Laderegler 2 (bidirektionale Kommunikation möglich). Trennung beider Seiten über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden. Buchse: Wago THT Stiftleiste 733-364
- Serieller Anschluss an Laderegler 1 (bidirektionale Kommunikation möglich). Trennung beider Seiten über einen elektronischen Isolator (Dual-Channel Digital Isolators ADuM1200) um Störströme zu vermeiden. Buchse: Wago THT Stiftleiste 733-364
- Anschlussmöglichkeit an diverse Reservepins. Buchse: Multicomp Box_header_connector_5x2
Alle relevanten Daten zum Bau des Solar-Storage-Controller incl. Stückliste der elektronischen Bauteile findet sich in folgendem Repo: gitlab.opensourceecology.de/
Hergestellt wurde die PCB des Solar-Storage-Controller ohne Bestückung über RP Engineering in Esslingen bei JLCPCB in China. Es ist eine 2-lagige Platine (Top, Bottom) mit 2 oz Kupferschichtdicke (70 µm) und einem gold finish (Frühjahr 2021: Netto 83€/5 Stck). Die Kupferschichtdicke von 2 oz ist notwendig, um im Leistungsteil die hohen Ströme ohne zu großen Verluste weiterleiten zu können. Theoretisch sind mit 2 oz Dicke bei 20mm Leiterbahndicke und einer Temperaturerhöhung von 30K ca. 56A möglich. Praktische Grenze bilden aber die parallel angeordneten Mosfets IRFS7730 die sich im Betrieb erwärmen und im Zweifel bei zu hohen Strömen durchbrennen. Ab wann und in welchem Maße diese Erwärmung stattfindet muss in der Praxis noch untersucht werden (z.B. bei Heizstabbetrieb unter Dauerlast).
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:
[8]
Je nach Installation ist die Datei „HardwareSerial.h“ auch unter folgendem Verzeichnis zu finden:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino
oder
C:\Users\Thomas\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\cores\arduino
oder wenn der Arduinocode über das Raspberry geflasht wird wie unter Abschnitt [9]
Arduino komfortabel über das Raspberry Pi flashen beschrieben, muss die Anpassung des seriellen Puffers in folgender Datei erfolgen im versteckten Dateipfad:
/home/pi/.arduino15/packages/arduino/hardware/avr/1.8.3/cores/arduino/HardwareSerial.h
Also dort wo ursprünglich das Paket "arduino-cli" für das flashen des Arduinos über das Raspberry installiert wurde.
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. Der aktuelle Arduinoquellcode ist unter folgendem Link abrufbar gitlab.opensourceecology.de/
Tabname | Funktionsname | Beschreibung |
---|---|---|
Hauptprogramm | Void setup() |
|
ADS1115 | void ADS1115() |
|
BMS | void BMS_logging() |
|
BMS | void serialEvent_BMS() |
|
Batterie | void battState() |
|
Heizstab | void Heizstab() |
|
Heizstab | void Heizstab_control() |
|
LR (Laderegler) | void serialEvent_LR() |
|
Modbus | boolean modbus() |
|
Modbus | uint32_t byte_to_uint32(byte byteArray(), byte pos) |
|
Modbus | float byte_to_float(byte byteArray(), byte pos) |
|
Output | void send_raspberry() |
|
Updates | - |
|
WR (Wechselrichter) | void calcPower() |
|
WR (Wechselrichter) | void sendPowerAESGI4(int P_WR_temp) |
|
WR (Wechselrichter) | Loop |
|
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: [10] 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:
[11]
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 [12] 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 [13].
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.
- Ausführbare Datei anlegen unter /etc/wpa_supplicant/ oder im Boot Verzeichnis der Linux Installation
- 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 [14]). 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 von root öffnen
sudo crontab -e
# Folgende Zeile am Ende 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 (siehe hierzu:[[15]]), die unter einem der folgenden Links abgespeichert sein muss:
- System-Scripte mit Root-Rechten: "/usr/local/sbin"
- Allgemeine User-Scripte mit Benutzer-Rechten: "/usr/local/bin"
Folgender Inhalt wird im Skript niedergeschrieben.
#USB Stick mounten
mount /dev/sda1 /mnt/stick
#Backupdatei anlegen und abspeichern
mysqldump 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. Treten Probleme beim Kompilieren auf, so fehlen in der Regel dem Raspberry Arduinobibliotheken. Diese sind nach folgender Anleitung zu installieren: arduino-cli_lib_install/
6. 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.1 Speziell fürs Arduino Mega 2560 Pro (Embed)
arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:mega PV-System_20190629
7. vz-logger starten
sudo systemctl start vzlogger
Eine ausführliche Anleitung zur Installation der benötigten Pakete ist unter folgendem Link zu finden [16]
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:
- 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
- Mailversand an Solarspeicherbesitzer bei Error
- Berechnung der eingesparten CO2 Menge
- Wetterbericht für den aktuellen und die nächsten zwei Tage
- Berechnung der eingespeisten und verbrauchten Energie (Erzeugung, Verbrauch) für den aktuellen und die letzten zwei Tage
- 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:
- 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.
- Akku
- Anzeige SOC (State of Charge) Akkumulator
- Anzeige Akkumulatorspannung
- Anzeige Lade- und Entladestrom (Positiv und Negativ)
- Wechselrichter
- Anzeige aktuelle Wechselrichterleistung
- Anzeige letzter 20 min Wechselrichterleistung
- Anzeige Modbusleistung
- Boiler
- Anzeige Heizstableistung
- Anzeige Boilertemperatur
- 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.
- Allgemein
- Anzeige der seit Inbetriebnahme der Anlage eingesparte Co2 Menge
- Schaltschranktemperatur
- Allgemein gestern / Allgemein heute
- 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]
- 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.
Eine überarbeitete Version ist hier verfügbar: File:20231128_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:
- Youtube-Video: „NodeRed Tutorial Part 1 Installation Haus Automatisierung“[2]
- Installation von Node-Red und dem Node-Red Dashboard auf dem Raspberry (siehe Abschnitt Einrichtung Node-Red )
- NodeRed/UI vor fremden Zugriff schützen (siehe Abschnitt Einrichtung Node-Red )
- MQTT Client installieren durch Hinzufügen des mosquitto repository (siehe Abschnitt Einrichtung Node-Red )
- Wlan Steckdose einstecken
- 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. Hierfür wird eine eigens dafür konstruierte Platine mit Leistungsmosfets (parallel 3x SUP75N06) eingesetzt. Der Heizstab wird dabei per Pulsweitenmodulation (PWM) in seiner Leistung geregelt. 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 Haushalt verwendet wird. Die Ansteuerung des Heizstabregelmoduls erfolgt direkt vom Arduino mit einem PWM Signal. Über einen High-Side Switch (parallel 3x BTS 442 D2) wird das Heizstabmodul 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 ab 95°C der Heizstab deaktiviert. Weiterhin schützt der High-Side Switch die restliche Installation bei einem Schaden / Kurzschluss der Leistungsmosfets. Ein Schaltplan des Heizstabregelmoduls ist hier zu finden: File:Schaltplan Heizstabregelmodul.pdf. Das Heizstabregelmodul existiert bisher nur als Prototypenaufbau auf einer Lochrasterplatine wie in folgender Abbildung zu erkennen ist: Obere Platine: High Side Switch; untere Platine: Leistungsmosfets und Gate Driver zu deren Ansteuerung.
Anschluss Heizstabregelmodul
Der Leistungsanschluss der Platine vom Akkumulator ist über eine zweiadrige 6mm^2 Leitung ausgeführt. Die Daten und Signale werden über eine geschirmte Daten- und Steuerleitung 2x2 Adern (z.B. LIYCY TP 2X2X0,5) geführt. An dem Solar-Storage-Controller angeschlossen wird die Daten- und Steuerleitung über eine Wago THT Stiftleiste 733-365. Das Heizstabregelmodul sitzt im Keller unmittelbar neben dem Heizstab ca. 20m Kabelweg entfernt vom Solarspeicher. Die Leistungsmosfets auf dem Heizstabregelmodul werden sehr heiß und müssen aktiv mit einem kleinen PC Lüfter gekühlt werden, um ein Durchbrennen zu verhindern. Die passive Kühlung über den angebrachten Kühlkörper im kühlen Keller reicht nicht aus.
Die Spannungsversorgung des Temperatursensors LM 35 erfolgt momentan mit Batteriespannung (laut Datenblatt max. bis 30 V). Allerdings wird dann bei Deaktivierung des Heizstabregelmoduls über den High Side Switch auch der Temperatursensor deaktiviert und es gibt keine Temperaturmesswerte mehr im Volkszähler-Log. Der Solar-Storage-Controller verfügt im Aufbau des 3. Prototypen über eine eigene Spannungsversorgung des LM35 (Vorsicht: Somit benötigt man ein Datenkabel mit 5 Adern als Verbindung zwischen Solar-Storage-Controller und Heizstabregelmodul).
Um mit einem Arduino Mega ein PWM Signal über einen digitalen Pin in der gewollten Frequenz zu erzeugen sind hierzu im void setup() einige Einstellungen zu tätigen. Eine sehr gute Erklärung ist auf folgender Internetseite zu finden:[17]
Grundsätzlich haben am Arduino Mega 2560 12 Pins (Pin 2 bis Pin 13) die Möglichkeit ein PWM Signal auszugeben. Die Standardfrequenz liegt bei 490Hz. Angepasst wird timer 3, der die Pins 2, 3 und 5 kontrolliert. Genutzt wird im Arduinocode Pin 5, der nun auf 4000 Hz eingestellt ist (prescaler = 2),
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):
- Heizstabsicherung abschalten
- PV Module abschalten
- BMS ausschalten
- Raspberry ausschalten
- Akkumulatorsicherung ausschrauben
- AC seitige Sicherung im Haushaltschaltschrank abschalten
Stromzähler
Zur phasen- und richtungsweis korrekten Erfassung des Hausverbrauchs der Phasen L1 bis L3 werden SML Zähler oder Hutschienenmodbuszähler eingesetzt, die per HEX- oder Modbusprotokoll über ein CAT5 Kabel mit dem Arduino kommunizieren. Die erfassten Werte werden für die Regelstrategie des Wechselrichters benötigt. Während es bei modernen SML Zählern möglich ist über die IR-Schnittstelle und geeignetem Schreib-Lesekopf den Hausverbrauch direkt über ein HEX Protokoll auszulesen benötigt man bei älteren Zählermodellen einen zusätzlichen Hutschienenmodbuszähler. Die Solareinspeisung ins Hausnetz wird über einen 1-phasen Hutschienenmodbuszähler direkt im Solarspeicher erfasst.
Zweirichtungszähler für Hausverbrauch
Zur Erfassung des Hausverbrauches kommt bei Prototyp 2 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 |
Bezug | DZG Metering GmbH, Bezug als Geschäftskunde möglich |
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.
Konfiguration Modbuskommunikation
Um die Register des Zählers über das Modbusprotokoll auszulesen sind im Arduinocode auf der Hauptregisterkarte die Registeranfragen "requests" hinterlegt. Es sollen die Register 1.7.0 für die Wirkleistung (gridPower), 1.8.0 für den Netzbezug (gridImport) als auch 2.8.0 für Netzeinspeisung (gridExport) ausgelesen werden. Die Wirkleistung wird im Arduinocode als Regelgröße verwendet. Netzbezug und Netzeinspeisung werden nur für das Datenlogging benötigt und direkt in die Volkszählerdatenbank auf dem Raspberry-Pi weitergereicht. Da bei diesen Registeranfragen aber sowohl die Modbuszählernummer als auch eine Checksumme in der Anfragesequenz steckt muss diese für jeden Modbuszähler neu zusammengestellt werden.
Bisherige Modbus requests:
{0x39, 0x03, 0x00, 0x00, 0x00, 0x04, 0x40, 0xB1}, // 0 : Wirkleistung, gridPower (grid 1.7.0)[W] {0x39, 0x03, 0x40, 0x00, 0x00, 0x02, 0xD5, 0x73}, // 1 : Netz_Bezug, gridImport (grid 1.8.0) [kWh] {0x39, 0x03, 0x41, 0x00, 0x00, 0x02, 0xD4, 0x8F}, // 2 : Netz_Einspeisung, gridExport (grid 2.8.0) [kWh]
Vorgehensweise:
- Gerätenummer des Modbuszählers auf dem Gehäuse abschreiben. Die letzten beiden Ziffern freistellen. Begreife diese Ziffern als Hexadezimale Zahl. Addiere 1 dazu. Beispiel: 0x38 sind die letzten beiden Ziffern auf der Gerätenummer.
Addiere Eins: 0x38 + 1 = 0x39. Oder im Dezimalsystem 56(dez) + 1 = 57(dez) = 0x39.
- Ersetze das erste Byte im obigen Modbus Request mit der ermittelten Zahl.
- Gehe auf folgende Internetseite zur automatischen Berechnung der neuen Checksumme (CRC): https://www.lammertbies.nl/comm/info/crc-calculation
- Kopiere dir den Modbus Request ohne die letzten beiden Bytes und füge diesen in das Eingabefeld ein. Eingabe „Input type“ auf „Hex“ umstellen. Die neue Checksumme (CRC) kann nun in Zeile CRC-16 (Modbus) ausgelesen werden.
- Diese neu ermittelten 2 Bytes in umgekehrter Reihenfolge an den Request anhängen.
- Gehe für die anderen beiden Requests an den Modbuszähler in gleicher Weise vor und aktualisiere den Arduinocode.
Zähler für Solareinspeisung
Die Solareinspeisung des einphasigen Miniwechselrichters AE Conversion erfolgt ü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. Der Zähler ist so einzubauen, dass die Solareinspeisung im Menüpunkt 1-2 im dortigen Zählregister aufsummiert wird. Der elektrische Eigenverbrauch des Speichers (Raspberry Pi, Arduino Board) werden im Menüpunkt 1-1 im dortigen Zählregister aufsummiert. Folgende Einstellungen müssen im Menü durch den Drucktaster (3 sec drücken) einprogrammiert werden:
Überschrift | Überschrift |
---|---|
Id | 058 |
b (Baudrate) | 9600 |
Prty (Parity) | E (Even) |
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.
Modbus / SML PCB
Die Modbus / SML PCB wird in den elektrischen Verteilerschrank des jeweiligen Haushalts, in dem auch der Eingangs-Stromzähler sitzt, auf eine Hutschiene aufgeclipt und ist in handelsübliche Schaltschrankabdeckungen integrierbar. Sinn und Zweck dieser Platine ist der komfortable und sichere Anschluss diverser Komponenten im Verteilerschrank. Die Modbus / SML PCB verfügt über folgende Anschlüsse: -
- 1x Schraubklemmenpaar für Modbusanschluss (unterhalb der Schaltschrankabdeckung)
- 1x RJ22 Anschluss für einen IR-Lesekopf (oberhalb der Schaltschrankabdeckung)
- 1x RJ45 Anschluss für die Datenverbindung zum Solar-Storage-Controller / Solarspeicher (unterhalb der Schaltschrankabdeckung)
Ist kein digitaler Stromzähler im Verteilerschrank verfügbar, so kann für rund 80 € ein digitaler 3-Phasen Modbuszähler (z.B. DVH4013 bei DZG Metering AG) nachgerüstet werden, dessen Messwerte der Solar-Storage-Controller zur Regelung weiterverarbeitet. Dieser digitale 3-Phasen Modbuszähler kann dann an die Modbus / SML PCB (Schraubklemmen) angeschlossen werden.
Ist ein digitaler Zähler verfügbar so ist es oft möglich mithilfe eines magnetischen IR-Kopfes die Verbrauchsdaten auszulesen (z.B. über SML Code). Es existieren diverse Bausätze zum Nachbau aber auch kauffertige Produkte. Da der magnetische IR Kopf i.d.R. außerhalb der Schaltschrankabdeckung aufgelegt wird dieser mit einem RJ11 Stecker ausgestattet direkt von oben in das Gehäuse der Modbus / SML PCB eingesteckt werden. Die Verbindung zum Solar-Storage-Controller erfolgt über eine RS235 Verbindung. Modbus und SML Code werden abwechselnd vom Arduinocode ausgelesen und ausgewertet.
Der Schaltplan, Hardwarelayout (KiCAD) sowie Bestückungsübersichten der Modbus / SML PCB finden sich hier File:RS485-Modbus Satellitenboard.zip. Es wurde ein Gehäuse von Camdenboss CNMB/2/KIT gewählt.
Die RJ 11 Buchse Aliexpress wird in den clipbaren Deckel integriert, indem mit der Laubsäge ein entsprechendes Rechteck ausgesägt und Löcher für die Befestigungsschrauben geschaffen wird. Vier Kontakte des RJ11 Steckers werden auf der Modbus / SML PCB aufgelötet nach Zuordnung in nachfolgender Tabelle. An den IR Sensor wird ein Ringeltelefonkabel angelötet, das auf der anderen Seite einen RJ11 Stecker nach nachfolgender Tabelle aufgecrimpt bekommt. Details zum Bau des IR Sensors unter Abschnitt xy.
RJ11 Buchse auf Modbus / SML PCB | Aderfarben - Ringelkabel von IR Sensor mit RJ 11 Stecker |
---|---|
GND (gelb) | schwarz |
- | weiß |
Rx (IR) (grün) | rot |
Tx (IR) (rot) | grün |
- | blau |
5V (Braun) | gelb |
Da sich die SML Zähler im Detail im SML Protokoll unterscheiden sind je nach Zähler Modifikationen im Arduinocode vorzunehmen. Details siehe folgende Abschnitte.
IR Schreib- Lesekopf
Es existieren diverse Bausätze und Bauanleitungen im Internet sowie die Möglichkeit fertig zusammengebaute IR Schreib- Leseköpfe zu erwerben. Für die Auslesung des SML Smart Meters / SML Zählers über das Arduinoboard benötigen wir einen Lesekopf mit TTL Pegel Ausgang. Zum Debuggen und unkompliziertes Auslesen des SML Zählers empfiehlt sich zusätzlich einen Lesekopf mit USB Schnittstelle zu erwerben. Auslesung erfolgt dann komfortabel z.B. mithilfe des kostenlosen Programms Emlog – Testprogramm v.1.17 von Weidmüller Elektronik unter Weidmann-elektronik
Hier eine Übersicht:
- TTL IR Schreib Lesekopf:
Bauanleitung: volkszaehler
Fertig aufgebaut: ebay
- USB Leseköpfe: elv
TTL IR und USB Leseköpfe gibt es fertig aufgebaut direkt bei ardubel@web.de
siehe hierzu folgende Links in das PV-Forum:
TTL: Photovoltaikforum USB: Photovoltaikforum
Der im Projekt verwendete Lesekopf ist nach folgender Anleitung aufgebaut: Volkszaehler.org In folgender Abbildung ist dieser dargestellt.
Aufgrund der Umschaltung mithilfe der Modbus – SML PCB zwischen bidirektionalem Modbus und unidirektional ausgelesenem SML Code, kann es dazu kommen, dass der Smartmeter eine Eingabe erwartet und in den Eingabemodus wechselt. Um dies zu verhindern ist die Sendediode abzukleben.
Eigenheiten SML Zähler Registerauslesung
Der im Projekt verwendete SML Zweirichtungszähler ist ein Easymeter Q3A. Dieser sendet ohne Aufforderung jede Sekunde ein Datenpaket das aus 784 HEX Zeichen besteht (Einstellung serielle Schnittstelle: Baud 9600 8N1 unidirektional). Für die Auswertelogik auf dem Arduino werden nur die folgend dargestellten Werte aus der SML Nachricht benötigt, die extrahiert und in lesbare Zahlen formatiert werden:
- 1.8.0 Bezug Gesamt - gridImport [kWh]
- 1.7.0 oder 16.7.0 Wirkleistung – gridPower [W]
Hinweis: Folgende Werte werden von der Auswertelogik ebenfalls benötigt, stammen aber vom Modbus 1-Phasenzähler für die Messung der Einspeiselesitung der Wechselrichter ins Hausnetz:
- 2.7.0 PV_Leistung,pvPower [W]
- 2.8.0 PV_Einspeisung, pvExport [kWh]
Für die Dechiffrierung des SML Codes ist folgende Lektüre sehr empfehlenswert. schatenseite.de
Zur Extrahierung der Werte (Leistung, Energie) aus der SML Nachricht wird im Arduinocode die entsprechende für einen Zähler unveränderliche Hex Sequenz, die der gesuchten Leistung (1.7.0 oder 16.7.0) oder Energie (1.8.0) im SML Code vorangestellt ist, gesucht, die folgenden HEX Werte extrahiert und in eine Zahl umgewandelt, die der Code weiterverarbeiten kann. Die Hex Sequenzen nach denen in der SML Nachricht gesucht werden soll, ist im Code unter folgenden Variablen hinterlegt und muss für jeden SML Zähler entsprechend angepasst werden:
- powerSequence[]
- consumptionSequence[]
Je nach Zähler wird die Leistung oder Energie nicht nur in Basiseinheiten wie W oder Wh angegeben sondern ggf. in kW oder kWh. Dies muss im Code über die Variablenwerte scaler_gridPower_SML und scaler_gridImport_SML angepasst werden.
Start und Stopsequenz sind bei jeder gültigen SML Nachricht gleich und sind folgendermaßen definiert:
- startSequence[] = { 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x01, 0x01, 0x01 };
- stopSequence[] = { 0x1B, 0x1B, 0x1B, 0x1B, 0x1A };
Herausfordernd sind im Detail die kleinen Unterschiede der SML Nachrichten. So gibt es Zähler, die die Leistung nicht vorzeichenbehaftet ausgeben. D.h. Stromverbrauch und Einspeisung ist nicht am Vorzeichen der Leistung zu erkennen. Dafür ändert sich bei Einspeisung aber ein bestimmtes Byte in der Sequenz des Bezuges 1.8.0! was entsprechend in der Auswerteroutine berücksichtigt werden muss. Es empfiehlt sich also beim Einsatz eines unbekannten SML Zählers zuerst die HEX Nachricht mithilfe des USB Schreib- Lesekopfes und dem Programm Emlog anzeigen zu lassen, die entsprechenden Sequenzen zu ermitteln, zu extrahieren für Stromverbrauch und Stromeinspeisung und dann im Arduinocode zu hinterlegen.
Aufbau des Systems
2. Prototyp
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 .
Prototyp 3
Schaltschrank
Der 3. Prototyp wird incl. Akkumulator in einem Schaltschrank untergebracht. Die Abmaße des Schaltschrankes (Rittal AX 1180.000) betragen 800 mm x 1000 mm x 300 mm (B x H x T). Zum Einführen der Kabel wird die Flanschplatte SZ 2565.400 verwendet. Ausgehend von dem Solar-Storage-Controller werden alle Komponenten angeschlossen.
Materialliste
Folgende Komponenten- und Kostenliste listet alle verwendeten Materialien incl. Preis und Bezugsort auf File:20220601_Komponenten- und Kostenübersicht Soldorado Solarspeicher.pdf.
Verdrahtungsplan
Unter folgendem Link ist der Schaltplan des Solarspeichers entweder als .pdf oder als einzelne .svg Dateien abrufbar .
- File:20221215_Schaltplan gesamt 3. Prototyp.pdf
- File:Schaltplan Schaltschrank 3. Prototyp svg Dateien.zip
Systemwirkungsgrad (2. Prototyp)
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:
- 20.07.2019: Erzeugungs- und Verbrauchsprofil File:Abbildung 34.2 20.07.2019- Erzeugungs- und Verbrauchsprofil.pdf
WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)
- 23.07.2019: Erzeugungs- und Verbrauchsprofil File:Abbildung 34.3 23.07.2019- Erzeugungs- und Verbrauchsprofil.pdf
Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)
- 24.07.2019: Erzeugungs- und Verbrauchsprofil File:Abbildung 34.4 24.07.2019- Erzeugungs- und Verbrauchsprofil.pdf
Erzeugungs- und Verbrauchsprofil : WR Leistung (hellgrün), Solarerzeugung (orange), Regelgröße Heizstab (rot), State of Charge (SOC) (grün), Boilertemperatur (blau)
- 22.07.2019: Erzeugungs- und Verbrauchsprofil File:Abbildung 34.5 22.07.2019- Erzeugungs- und Verbrauchsprofil.pdf
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 in folgendem Repo abgelegt: gitlab.opensourceecology.de/
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 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-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 72 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
- 2021 - Redesign des Schaltschrankes / Integration des Akkumulators in den Schaltschrank / Bau des 3. Protoypen
- 2021 - Komplette Neukonstruktion der sogenannten Hautplatine, die nun alle Funktionen der bisherigen Arduino- und Mosfetplatine und den Leistungsteil (SNS) des Batteriemanagementssystems vereint
- 2021 - Neuauflage der BMS Platine unter Behebung kleiner Hardwarefehler
- 2021 - Gehäuseintegration der Hauptplatine
- 2021 - Umfangreiche Überarbeitung des Arduino Codes z.B. Integration der Auslesung von SML Zähler per Magnet-Lesekopf und Ansteuerung mehrerer Wechselrichter in Kaskade
2021 / 2022:
- Integration intelligentere SOC Berechnung im BMS
- Erstellung Schaltplan des 3. Prototypen
- Integration der Projektdokumentation und Quelldaten in GitLab
2023:
- erfolgreiche Inbetriebnahme 3. Protoyp und Test aller Funktionen
- 3. Protoyp in Regelbetrieb
- Überarbeitung der SML Auswerteroutine
- Aktualisierung des Frontpanels des NodeRed UI
- Einbindung einer manuell oder automatisch schaltenden Schaltsteckdose bei Überschussstrom über NodeRed und MQTT
- Integration der Überschusseinspeisung mit zwei Wechselrichtern (ca. 1kW) auch wenn Hauslast geringer ist (Bei einem System ohne angeschlossenen Heizstab ist es schade Solarenergie nicht zu nutzen wenn der Speicher voll ist)
Zukünftige Ziele:
- Inbetriebnahme weiterer Solarspeicher, Anfragen werden gerne entgegen genommen
Aktueller Entwicklungs-Status
Der 3. Prototyp wurde 2023 erfolgreich in einem Einfamilienhaus in Betrieb gesetzt und verrichtet seither seine Dienste. Über das volkszähler Frontend sind für uns Entwickler die Betriebsdaten einsehbar, sodass ein Monitoring möglich ist.
ToDo next
- Monitoring des 3. Prototypen im Regelbetrieb
- Auslagerung der Auslesung des SML Zählers auf ein externes Arduino in der Satellitenplatine
- Protokollüberarbeitung der seriellen Schnittstelle zwischen BMS und Arduino
- Auslegung des Heizstabregelmoduls für ein 48V System
- 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
- Planung und Optimierung des Schaltschrankaufbaus für weitere Prototypen
- Auslegung des Heizstabregelmoduls für ein 48V System und Konstruktion in KiCAD
- Übersetzung der Dokumentation und Quelldaten auf Englisch
- 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
- ↑ RASPBERRY HUTSCHIENEN-GEH RASPB B+2B3B auf voelkner.de
- ↑ 2,0 2,1 auf youtube.com
- ↑ install-an-mqtt-broker-on-your-raspberry-pi,auf open-homeautomation.com.
- ↑ how-to-install-mosquitto-broker-on-raspberry-pi,auf randomnerdtutorials.com.
- ↑ Steckdosen-Schalter mit Tasmota fertig geflasht,auf www.delock.de.
- ↑ Generelle Bechreibung der Sonoff S20,auf www.itead.cc.
- ↑ FHEM-Integration haus-automatisierung,auf www.youtube.com.
- ↑ Die verfügbaren Befehle und die Konsole,auf www.youtube.com.
- ↑ Infos zur Sonoff-Tasmota Steckdose,auf www.github.com.
- ↑ Infos zur Sonoff-Tasmota Steckdose,auf www.github.com.
- ↑ Beschreibung des MQTT (Message Queue Telemetry Transport) Protokolls,auf www.wikipedia.org.
- ↑ Beschreibung des MQTT (Message Queue Telemetry Transport) Protokolls,auf www.wikipedia.org.
- ↑ Funkkommunikation zwischen Raspberry Pi’s mittels MQTT Broker/Client,auf www.tutorials-raspberrypi.de.
- ↑ Flashen der Firmware auf ESP8266,auf www.github.com.
- ↑ Flashen der Firmware auf ESP8266,auf www.github.com.
- ↑ Hardwareanschluss zum Flashen der Firmware auf ESP8266,auf www.github.com.
- ↑ Beschreibung Software-flash mit dem Esp-Tool,auf www.github.com.
- ↑ Sonoff-Tasmota Commands,auf www.github.com.