====== Solar System ======
===== Motivation =====
Sonnenenergie als Teil der erneuerbaren Energiequellen ist eine gute Alternative zu fossilen Energieträgern.
So erreicht die Sonnenenergie auf der Erdoberfläche eine Intensität im Tagesdurchschnitt von ungefähr 165 W/m². Diese läßt sich zum Beispiel mit Photovoltaikanlagen direkt nutzen. In Deutschland liegt die jährliche Strahlungsleistung (GHI = Global Horizontal Irradiation) bei 1.056kWh/m² und in meiner Wahlheimat Thailand bei ca. 1.800kWh/m² pro Jahr. Zu finden sind die Daten im [[https://globalsolaratlas.info/map|GLOBAL SOLAR ATLAS]].
{{ :tech:ghi_world.png?direct&400 | GHI Worldwide}}
Neben der Tatsache das hier in Thailand genug Sonnenenergie zur Nutzung vorhanden ist, läßt die Zuverlässigkeit der lokalen Stromversorgung (Grid) zu wünschen übrig. Gerne fällt der Strom bei bei starkem Regen oder Reparaturarbeiten auch mal für ein paar Stunden aus. Blöd da unsere Wasserpumpe auch Strom benötigt. Eine weitestgehende Unabhängigkeit vom Grid wäre ein klarer Komfortgewinn. Ein Rückvergütungssystem wie in Deutschland gibt es (bisher) hier in Thailand nicht. Als drittes Argument stand die Überdachung des Carports an. Schliesslich regnet es doch hier schon mal heftig oder bei praller Sonne erreicht das (schwarze) Autodach eine Temperatur von über 80°C.
===== Planung =====
Was sind nun die Eckdaten für unser Solarsystem:
* die PV-Paneele sollten den Carport bestmöglichst überspannen und Regenwasserdicht sein
* es bedarf einer Batterieeinheit für die Überbrückung der Nacht sowie bei Gridausfällen
* der Inverter kann //off-grid// (ohne Rückspeisung) sein und sollte automatisch zwischen den Energiequellen (Solar, Batterie, Grid) nach Bedarf umschalten.
* die Lösung sollte DIY unterstützen, in [[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjkprzqhLf6AhVKOewKHXeIA1UQFnoECBgQAQ&url=https%3A%2F%2Fwww.home-assistant.io%2F&usg=AOvVaw2w1P67538swER-OyfZ4ZQO|Home Assistant]] integrierbar sein und bezahlbar bleiben.
==== Dimensionierung ====
Ein wichtiger Parameter ist die erforderliche Leistung die das neue Solar System erbringen soll. Dazu sollte man grob die Verbrauchswerte des eigenen Haushalts kennen. In [[de:tech:powermeter|PowerMeter]] habe ich schon mal beschrieben wie man den Stromverbrauch erfassen kann. Hier beispielhaft der Tagesverbrauch in unserem Haus:
{{ :tech:consumption_villa_.png?direct&500 |Daily Consumption (ex.)}}
Hauptverbraucher sind neben der Klimaanlage natürlich die Umwälzpumpe des Pools. Der Gesamtverbrauch dieses Beispieltages lag bei 18.8kWh. Typisch liegt der tägliche Verbrauch bei uns zwischen 15kWh und 25kWh. Davon entfallen auf die Nachtzeit (06:00-18:00Uhr) fast die Hälfte (45%). Der bisherige, maximale Strombedarf liegt bei ungefähr 5kW. Der kann allerdings im worst case bis über 10kW gehen wenn alle 4 Klimaanlagen, die Pool- und Dwellpumpe, Waschmaschine, Wasserboiler, etc. gleichzeitig in Betrieb sind. Bei 14.5kW ist aber sowieso Schluss da das Haus nur einphasig mit max. 63A am Grid hängt.
Für eine elektrische Autonomie sollte die geplante PV Anlage deshalb an die 25kWh und die Batterie mindestens 11.25kWh liefern können.
==== Kosten ====
Bei dem ermittelten Verbrauch ergeben sich monatliche Kosten von:
15kWh...25kWh/Tag * 30Tage * 0.19€/kWh = 86,-€...143,-€ per month
(1kWh = 7Baht -> ~ 0.19€)
Tatsächlich liegen die Kosten so um die 95,-€. Wenn sich die Investition in die PV Anlage nach 5...10 Jahren amortisiert haben soll, so darf die Anlage daher nicht mehr als 5.700€...11.400€ kosten. Mal schauen ob das zu herausfordernd ist...
==== Solarpaneele ====
In den letzten Jahren hat sich die Effizienz von Solarpaneelen von 15% auf über 20% gesteigert. Hautsächlich abhängig ist die Effizienz vom Zellendesign wie auch vom Zellenlayout. Hier eine Übersicht der gängigsten Versionen:
{{ :de:tech:solar_panels.png?direct&400 |Comparision}}
Meine Wahl auch in Bezug auf Preis und Verfügbarkeit fiel auf ''Half-cut mono PERC MBB'', also ein monocrystalines Modul mit __M__ulti __B__ar __B__us was eine Effizienz laut Hersteller von 21.2% erreicht.
Da die Paneele gleichzeitig als Carport Überwachung dienen sollen ist die Geometrie und die Fläche (ca. 25m) vorgegeben.
{{ :tech:car_port_final_v5.png?direct&400 |Carport with frame and solar panels}}
Die beste Abdeckung konnte ich mit der VERTEX Serie von TRINA SOLAR erreichen. Das Paneel hat ein Maß von 228,4cm x 109,6cm bei einer Ausgangsleistung von 545W (product number: TSM-DE19-545W). Trotz der Größe läßt es sich bei einem Gewicht von 28,6kg mit zwei Personen leicht montieren. In 2021 was diese Version für ca. 150,-€ bei beim thailändischen Großhändler [[http://www.godungfaifaa.com|GODUNGFAIFAA]] direkt lieferbar.
=== Ausrichtung ===
Der Carport ist mit einem Südadzimut von +15° etwas mehr nach Westen ausgerichtet. Was aber bei dem Wert kaum messbare Verluste im Ertrag ergibt. Der beste Neigungswinkel für die Paneele ist vom Ort der Installation abhängig und richtet sich nach dem südlichen Höchststand der Sonne. Die Daten dazu kann man mit Hilfe der [[https://www.sunearthtools.com/index.php|Sun Earth Tools]] berechnen lassen. Hier die Elevation für Düsseldorf (GER):
{{ :tech:azimut_dus.png?direct&400 |Elevation}}
In Deutschland liegt der Bereich des Neigungswinkel zwischen 30° und 40°. Hier in Thailand steht die Mittagssonne deutlich senkrechter und man kommt auf maximal 82° Elevation. Für die Selbstreinigung der Paneele sollte man übrigens mindestens 5° Neigung berücksichtigen. Das Carportdach bei uns hat eine Neigung von 6° bekommen, wieder einwenig auch der Optik geschuldet.
=== Unterbau ===
Der Unterbau für die Paneele, also die Basis der Carport-Überdachung, muss einige Bedingungen erfüllen. Das Gewicht der Paneele ist dabei mit insgesamt fast 300kg noch überschaubar.
* Die Stabilität und Traglast sollte aus ausreichend dimensioniert werden. Hier in Thailand haben wir nicht mit Schneelasten (75kg/m² oder 125kg/m²) zu kämpfen aber mit böigen Windstärken von bis zu 100km/h. Daten zur Windstärke findet man u.a. im [[https://globalwindatlas.info|Global Wind Atlas]].
* Damit die Montage und Ausrichtung (wir wollen das Dach ja wasserdicht bekommen) einfach von statten geht, werden die Paneele auf Alu-Schienen montiert. Der Unterbau muss die einfache Montage dieser Schienen unterstützen.
* Das Ganze sollte dann auch noch optisch ansprechend genug aussehen. Häßliche Beispiele gibt es hier selbst auf der Insel Koh Samui zuhauf.
Mit dem örtlichen Stahlbauer sind wir dann auf den folgenden Unterbau gekommen:
* acht verzinkte Pfostenständer 10x10cm (2mm Wandstärke) mit Betonverankerung an vorhandener Aussenwand
* verzinkte Stahlträger 10x10cm (2mm Wandstärke) für untere Querstreben
* verzinkte Stahlträger 5x10cm (2mm Wandstärke) für oberen Querstreben
Auf die oberen Querträger werden die Alu-Schienen mit Hilfe der L-Feeds montiert:
{{ :tech:l-feed.png?direct&100|L-Feed}}
{{:tech:l-feet_mounting.png?direct&200 |}}
Der Paneele sollten mit Abstand (in unserem Fall 2.8cm) montiert werden um mechanischen Stress durch Temperaturschwankungen zwischen den Paneelen zu vermeiden. Dabei ergeben sich noch zwei Herausforderungen:
== Abdichtung ==
Zur Abdichtung der Zwischenräume brauchen wir ein UV resistentes Dichtungsmaterial aus EPDM. Das hat sich als schwieriger herausgestellt als gedacht. Nach längerer Recherche habe ich über [[https://www.alibaba.com|Alibaba]] die Firma [[https://www.rinengsolar.com|https://www.rinengsolar.com]] in Taiwan gefunden, die für mich 30m produziert hat. Im Querschnitt sieht das //EPDM Gasket// so aus:
{{ :tech:edpm_gasket.jpeg?direct&200 |EPDM gasket}}
und wird einfach zwischen die Paneele geklemmt. Für die Kreuzungsstellen gibt es ein passendes EPDM Klebeband zum Abdichten.
== Montage ohne Klammern ==
Typischerweise werden die Paneele mit Mid- und End-Clamps auf den Alu-Schienen befestigt.
{{ :de:tech:end_clamp.png?direct&100|}}
{{:de:tech:mid_clamp.png?direct&120 |}}
Um aber nicht in Konflikt mit der EPDM-Abdichtung zu kommen, habe ich die vorhanden Montagelöcher auf der Unterseite des ALU-Frames der Paneele verwendet. Dazu nehme ich das Unterteil der Standard End-Clamps, montiere die Befestigungsschraube von unten und schiebe das Teil in die ALU Schiene. Auf die herausstehenden Schrauben lässt sich dann das Paneel montieren und mit einer selbstsichernden Mutter fixieren (siehe auch oberes Bild mit der Alu-Schiene).
:!: **Wichtig:** Bei der Montage nicht die Grounding Clips vergessen. Eloxiertes Aluminium ist oberflächig nicht leitfähig, sonst gelingt später die notwendige Erdung nicht.
Fertig montiert sieht der Carport schon ganz ansprechend aus:
{{ :tech:car_port_top.jpg?direct&400|}}
{{:tech:car_port_side.jpeg?direct&300 |}}
===== Elektrisches =====
Nachdem die Paneele montiert sind geht es nun an den elektrischen Aufbau. Zur Vereinfachung des Anschlusses sind die 5 Paneele der zweite Reihe um 180° gedreht. Dadurch lassen sich die vorhandenen Anschlusskabel mit Stecker/Buchse (MC4) direkt seriell verbinden. Damit kommen wir mit den 10 Paneelen auf eine maximale Power Voltage VMPP von 31.4V * 10 = **314 V**, die dann zum Inverter geht.
==== Inverter ====
Ein erster Selektionspunkt ist, dass wir bei unserer Anlage keine Rückspeisung planen. Deshalb ist der Inverter eine Off-Grid Variante. Das heißt nicht, dass er nicht am Grid angeschlossen ist, aber halt nur für die Verbrauchsrichtung.
Meine Wahl ist auf den SPF5000ES von der chinesischen Firma [[https://www.ginverter.com|GROWATT]] gefallen.
Er bietet unter anderem:
* Integrierter MPPT-Laderegler (MPPT = Maximum Power Point Tracking -> effizienter)
* Maximale PV-Eingangsspannung bis 450VDC
* Konfigurierbare Grid- oder Solarpriorität
* Wifi Fernüberwachung sowie Integrierbarkeit in Home Assistant
* Kompatibel mit Lithiumbatterien
* Maximal 5KW Leistung
* Skalierbarkeit bis 30kW im Parallelbetrieb
{{ :tech:spf5000es.png?direct&500 |System overview}}
In Thailand konnte ich diese Variante für ca. 920,-€ bekommen
==== Batterie ====
Als Speicher kommen hauptsächlich zwei Batterietechnologien in Betracht:
- Blei-Gel-Batterie
- Lithium-Ionen Batterie (LiFePO4)
Die klassspschen Blei-Säure-Akkus habe ich wegen der Knallgasgefahr und dem höheren Wartungsaufwand aussen vor gelassen. Das gleiche gilt für die klassischen Lithium-Ionen Akkus. Hier kann es leicht bei Überladung zu einer gefährlichen Überhitzung kommen.
=== Blei-Gel-Batterie ===
Die Blei-Gel Verbindung verhindert ein Ausgasen und ist extrem wartungsarm. Dieser Batterietyp ist deutlich preiswerter als die Lithium-Ionen Batterie hat aber zwei Nachteile. Zum einen ist das Gewicht sehr hoch. Ein 12V/200Ah Block wiegt so an die 60kg. Davon benötigen wir mindestens 8 Blöcke und schon sind wir bei fast einer halben Tonne (480kg). Der zweite, größere Nachteil ist, dass die Lebensdauer sehr stark von die Entladetiefe abhängt. Bei nur 50% Entladung verdoppelt sich die typische Anzahl der Ladenzyklen. Die dann liegt übrigens bei ca. 1000 Zyklen. Oder anders ausgedrückt: nach 1000 Zyklen hat der Blei-Gel Akku noch eine 60% Restkapazität. Typischerweise werden Blei-Gel Batterien nur mit maximal 50% Entladung gefahren.
=== Lithium-Ionen Batterie (LiFePO4) ===
Die LiFePO4 Akkus vereinigen einige Vorteile:
- deutlich leichter (bei 12.8V/310Ah mit vier Blöcken nur 22kg)
- Hohe Anzahl von Ladezyklen (typ. 4000)
- hohe nutzbare Kapazität (bis ca. 95% Entladung)
- hohe Entladeströme und schnelle Aufladung (1C).
Dagegen spricht der noch fast doppelt so hohe Preis (512,-€ für 4 Module mit 3.2V/310Ah in 2021). Die Mehrkosten nivellieren sich aber durch die längere Lebensdauer und höherer, nutzbarer Kapazität.
Daher fiel die Wahl auf die LiFePO4 Akkus. Wir haben 16 LiFePO4 Module mit 3.2V/310Ah der Firma CATL verbaut was zusammen eine maximale Speicherkapazität von 15.8KWh ergibt. Das liegt deutlich über dem oben genannten, typischen Nachtverbrauch von 11.25KWh und sollte daher ausreichen. Kostenmäßig ist das mit 2048,-€ der größte Einzelposten, teuerer als die 10 Solarpaneele. Die Beschaffungsquelle war wieder ALIBABA.
{{ :tech:solarbatt.jpeg?nolink&400 |Fertiger LiFePO4> Batterieblock}}
=== BMS ===
Auf dem Bild oben deutet sich schon an, das wir noch zusätzlich ein Batterie-Management-System (BMS) brauchen. Die Module sind seriell verbaut um so auf die nominal 51,2V für den Inverter zu kommen. Beim Lade- und Entladevorgang verhalten sich die einzelnen Module aber nicht völlig gleich. Um Schwankungen auszubalancieren und jedes einzelne Modul im erlaubten Spannungsbereich (2.5V - 3.65V) zu lassen bedarf es dieses BMS.
Im Netz hat sich die chinesische Firma [[https://www.jkbms.com|JKBMS]] einen Namen verschafft. Aus ihrem Produktportfolio passte der B2A245-20P ganz gut, wohl er im nach hinein etwas überdimensioniert ist. Das BMS verfügt über eine Bluetooth Schnittstelle und verbindet sich mit einer übersichtlichen App auf Android/Apple Phones. Und mit ca. 165.-€ Beschaffungskosten hält es sich noch im Rahmen.
Integriert in z.B. HomeAssistant lassen sich so Parameter wie Ladenzustand, Zellenspannung und Temperatur übersichtlich anzeigen.
{{ :de:tech:bms_1.png?nolink&307|}}
{{:de:tech:bms_2.png?nolink&300 |}}
==== Verkabelung ====
Nachdem wir alle wichtigen Komponenten ausgewählt haben geht es jetzt um die Verkabelung. Zum Schutz des Systems sowie der einzelnen Komponenten brauchen wir noch einiges an Sicherungsequipment sowie die richtige Wahl der Kabel.
Unser fertiger Anschlussschrank sieht von innen so aus:
{{ :tech:solar_breaker_board.png?direct&300 |Solar breaker board}}
Es wirkt im ersten Moment vielleicht etwas erschlagend, aber gehen wir es der Reihe nach durch:
=== Solar Panels ===
Die Solarpanelspannung (typ. 314V DC) wird zuerst über eine 32A DC Schmelzsicherung geführt. Danach werden eventuelle Überspannungen durch einen Überspannungsschutz begegnet. Die Panelspannung geht dann weiter über einen 63A DC Sicherungsautomaten zum Inverter.
=== INVERTER AC in ===
Da die Eingangsspannung vom Grid auch Überspannungen haben kann (hier in Thailand liegen die Versorgungskabel meistens überirdisch) wird der Inverter auch mit einem Überspannungsschutz am Eingang geschützt. Dazwischen ist wieder ein 32A AC Sicherungsautomat.
=== INVERTER AC out ===
Der Ausgang des Inverters auf dem Weg zur Hausversorgung geht über einen reversiblen Über/Unterspannungsschutz sowie einem weiteren 32A AC Sicherungsautomaten.
=== INVERTER BATT in ===
Zwischen Batterieblock/BMS und dem Inverter sitzt ein 100A DC Sicherungsautomat.
----
Hier die gesamte Systemübersicht mit den dazugehörigen Kabeldicken. Das 2AWG Batteriekabel sowie das Solarpaneelekabel mit 12AWG sind flexible Varianten.
{{ :tech:solar_kabel.png?direct&400 |Solar system overview}}
:!: Sollte der Inverter einen Totalausfall haben würde man schnell im Dunkel stehen. Daher ist es ganz pfiffig wenn man noch einen Transferswitch in die Hausversorgung einbaut, der bei Bedarf das Haus komplett auf das Grid zurückschaltet.
{{ :tech:transfer_switch.png?direct&300 |Automatic transfer switch}}
=== MC4 Verbinder und Kabelschuhe ===
Da wir es hier ja mit beträchtlichen Spannungen und Strömen zu tun haben, müssen wir einen tieferen Blick in die verschiedenen Anschlussarten wagen. Fangen wir bei den Paneelen an. Die Solarpaneele sind standardmäßig mit MC4 Steckern und Buchsen ausgestattet. Die montierten Kabel der Paneele sind so lang, dass sie direkt mit dem Nachbarmodul verbunden werden können. Nur für die Reihenverbindung am Ende sowie die Verbindung zum Inverter müssen wir Hand anlegen. Am besten kauft man sich für kleines Geld (12,-€) ein Set mit MC4 Steckern/Buchsen, Crimpzange (2.5/4/6mm²) und MC4 Schlüsseln.
{{ :tech:mc4_set.png?direct&300 |MC4 set}}
Die Montage wird im Internet (z.B. [[https://www.renogy.com/template/files/Manuals/TOOL-MC4.pdf|hier]] ) detailliert beschrieben und ist kinderleicht.
Ein weiterer, wichtiger Verbinder ist der gute alte Rohrkabelschuh (ring terminal) den wir in verschiedenen Durchmessern und für unterschiedliche Kabeldicken benötigen.
Die Batterieblöcke werden untereinander mit Metallschienen und Muttern verbunden, die zum Lieferumfang gehören. Der Batterieanschluss hat bei meinen CATL LiFePo4 M6 Gewinde. Um die 16 Balancerkabel des BMS an jede Zelle anzuschliessen brauchen wir einen Kabelschuh 18AWG(1mm²) auf M6. Für die Verbindung zwischen den zwei Batteriereihen, des BMS, der 100A-Sicherung sowie des Inverter ist es ein 2AWG(35mm²) auf M6 und M8. Die passende Crimpzange für das 18AWG Kabel gibt es wieder überall preiswert. Für das 2AWG braucht man schon eine hydraulisch unterstütze Variante und die Kräfte aufzubringen:
{{ :tech:crimp_35mm.png?direct&200 |Crimptool 4-70mm2}}
Die war selbst hier in Thailand im gut sortieren Heimwerkermarkt für ca. 40,-€ zu bekommen.
Die restlichen Kabelschuhe hängen vom verwendeten Schraubanschluss in der Sicherungsbox ab. Ich benutzte 8AWG(10mm²) auf M6.
^ Bild ^ Kabeldurchmesser ^ Lochdurchmesser ^
| {{ :tech:18awg_m6.png?direct&50 |}} | 18AWG(1mm²) | M6 |
| {{ :tech:8awg_m6.png?direct&50 |}} | 8AWG(10mm²) | M6 |
| {{ :tech:2awg_m6.png?direct&50 |}} | 2AWG(35mm²) | M6 |
| {{ :tech:2awg_m8.png?direct&50 |}} | 2AWG(35mm²) | M8 |
===== Einstellung =====
Bevor wir in Betrieb gehen können müssen wir noch das BMS sowie den Inverter einstellen.
=== JKBMS ===
Über die App läßt sich die Grundeinstellung einfach vornehmen und zuerst wird der Batterietype LiFePo4 ausgewählt. Die anderen Parameter sollten dann den Kenndaten der Batterie angepasst werden. Bei mir sehen die wichtigsten Parameter so aus:
Balance starting voltage 3.00 V
Balance trigger voltage 0.01 V
Cell count 16
Cell voltage overvoltage protection 3.60 V
Cell voltage overvoltage recovery 3.45 V
Cell voltage undervoltage protection 2.60 V
Cell voltage undervoltage recovery. 3.00 V
Max balance current 2.00 A
Max charge current 62.0 A
Max discharge current 100 A
Power off voltage 2.50 V
Total battery capacity 310Ah
=== GROWATT SPF5000ES ===
Der Inverter läßt sich direkt am Gerät über das Bedienpanel oder über den Growatt-Server einstellen. Die wichtigsten Parameter habe ich im folgenden gelistet:
Program Setting Option Description
----------------------------------------------------------------------------------------------
1 SBU (SBU priority). Output source priority: To configure load power source priority
2 62A Maximum charging current: set total charging current for solar and utility chargers.
3 APL (Appliance) AC input voltage range
4 DIS (disabled) Power saving mode enable/disable
5 US2 (user-defined 2) Battery type
6 DIS (disabled) Auto restart when overload occurs
7 DIS (disabled) Auto restart when over temperature occurs
8 230V Output voltage
9 50Hz Output frequency
10 16 Number of series batteries connected
11 30A Maximum utility charging current
12 48.0V (3.0V x 16). Setting voltage point back to utility source when selecting “SBU priority” or “Solar first” in program 01
13 54.4V (3.4V x 16). Setting voltage point back to battery mode when selecting “SBU priority” or “Solar first” in program 01
14 CSO (solar first). Charger source priority: To configure charger source priority
15 ON Alarm control
16 ON Backlight control
17 ON Beeps while primary source is interrupted
18 ENA (enabled) Overload bypass
19 56.8V (3.55V x 16). C.V. charging voltage.
20 54.0V (3.375V x 16) Floating charging voltage. If self-defined is selected in program 5, this program can be set up
21 44.0V Low DC cut-off voltage.
===== Integration in Home Assistant =====
Wie schon oben erwähnt gibt es zum BMS eine handliche App für die Livedaten und Einstellungen. Sie läuft über Bluetooth auf iOS und Android. Um aber auch über Home Assistant darauf zuzugreifen brachen wir ein Bluetooth Gateway.
:!: Achtung: Es muss Bluetooth 4.2 unterstützen um Framelängen von mehr als 20 Byte zu können. Die 300 Byte Livedaten werden in drei Notification Frames gesendet.
Eine einfache Lösung ist wieder mit einem ESP32 Modul und ESPHome zu erzielen. Die Softwarebeschreibung findest du [[https://github.com/syssi/esphome-jk-bms|hier]].
Als Referenz ist mein Setup im Anhang zu finden.
++++ jk-bms-ble.yaml |
substitutions:
name: jk-bms
device_description: "Monitor and control a JK-BMS via bluetooth"
external_components_source: github://syssi/esphome-jk-bms@main
mac_address: AA:BB:CC:DD:EE:FF
# Defaults to "JK02". Please use "JK04" if you have some old JK-BMS version (f.e. JK-B2A16S hw 3.0, sw. 3.3.0)
protocol_version: JK02
esphome:
name: ${name}
comment: ${device_description}
project:
name: "syssi.esphome-jk-bms"
version: 1.2.0
platformio_options:
build_flags:
- -DCONFIG_ARDUINO_LOOP_STACK_SIZE=32768
esp32:
board: nodemcu-32s
framework:
# The arduino platform crashs
# type: arduino
# version: latest
type: esp-idf
version: latest
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "-----key-----"
ota:
password: "-----password-----"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Optional manual IP
manual_ip:
static_ip: 192.168.1.100
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Jk-Bms-Ble Fallback Hotspot"
password: "----password----"
external_components:
- source: ${external_components_source}
refresh: 0s
esp32_ble_tracker:
ble_client:
- mac_address: ${mac_address}
id: client0
jk_bms_ble:
- ble_client_id: client0
protocol_version: ${protocol_version}
throttle: 5s
id: bms0
binary_sensor:
- platform: jk_bms_ble
balancing:
name: "${name} balancing"
charging:
name: "${name} charging"
discharging:
name: "${name} discharging"
button:
- platform: jk_bms_ble
retrieve_settings:
name: "${name} retrieve settings"
retrieve_device_info:
name: "${name} retrieve device info"
number:
- platform: jk_bms_ble
jk_bms_ble_id: bms0
balance_trigger_voltage:
name: "${name} balance trigger voltage"
cell_count:
name: "${name} cell count"
total_battery_capacity:
name: "${name} total battery capacity"
cell_voltage_overvoltage_protection:
name: "${name} cell voltage overvoltage protection"
cell_voltage_overvoltage_recovery:
name: "${name} cell voltage overvoltage recovery"
cell_voltage_undervoltage_protection:
name: "${name} cell voltage undervoltage protection"
cell_voltage_undervoltage_recovery:
name: "${name} cell voltage undervoltage recovery"
balance_starting_voltage:
name: "${name} balance starting voltage"
voltage_calibration:
name: "${name} voltage calibration"
current_calibration:
name: "${name} current calibration"
power_off_voltage:
name: "${name} power off voltage"
max_balance_current:
name: "${name} max balance current"
max_charge_current:
name: "${name} max charge current"
max_discharge_current:
name: "${name} max discharge current"
sensor:
- platform: jk_bms_ble
jk_bms_ble_id: bms0
min_cell_voltage:
name: "${name} min cell voltage"
max_cell_voltage:
name: "${name} max cell voltage"
min_voltage_cell:
name: "${name} min voltage cell"
max_voltage_cell:
name: "${name} max voltage cell"
delta_cell_voltage:
name: "${name} delta cell voltage"
average_cell_voltage:
name: "${name} average cell voltage"
cell_voltage_1:
name: "${name} cell voltage 1"
cell_voltage_2:
name: "${name} cell voltage 2"
cell_voltage_3:
name: "${name} cell voltage 3"
cell_voltage_4:
name: "${name} cell voltage 4"
cell_voltage_5:
name: "${name} cell voltage 5"
cell_voltage_6:
name: "${name} cell voltage 6"
cell_voltage_7:
name: "${name} cell voltage 7"
cell_voltage_8:
name: "${name} cell voltage 8"
cell_voltage_9:
name: "${name} cell voltage 9"
cell_voltage_10:
name: "${name} cell voltage 10"
cell_voltage_11:
name: "${name} cell voltage 11"
cell_voltage_12:
name: "${name} cell voltage 12"
cell_voltage_13:
name: "${name} cell voltage 13"
cell_voltage_14:
name: "${name} cell voltage 14"
cell_voltage_15:
name: "${name} cell voltage 15"
cell_voltage_16:
name: "${name} cell voltage 16"
cell_voltage_17:
name: "${name} cell voltage 17"
cell_voltage_18:
name: "${name} cell voltage 18"
cell_voltage_19:
name: "${name} cell voltage 19"
cell_voltage_20:
name: "${name} cell voltage 20"
cell_voltage_21:
name: "${name} cell voltage 21"
cell_voltage_22:
name: "${name} cell voltage 22"
cell_voltage_23:
name: "${name} cell voltage 23"
cell_voltage_24:
name: "${name} cell voltage 24"
cell_resistance_1:
name: "${name} cell resistance 1"
cell_resistance_2:
name: "${name} cell resistance 2"
cell_resistance_3:
name: "${name} cell resistance 3"
cell_resistance_4:
name: "${name} cell resistance 4"
cell_resistance_5:
name: "${name} cell resistance 5"
cell_resistance_6:
name: "${name} cell resistance 6"
cell_resistance_7:
name: "${name} cell resistance 7"
cell_resistance_8:
name: "${name} cell resistance 8"
cell_resistance_9:
name: "${name} cell resistance 9"
cell_resistance_10:
name: "${name} cell resistance 10"
cell_resistance_11:
name: "${name} cell resistance 11"
cell_resistance_12:
name: "${name} cell resistance 12"
cell_resistance_13:
name: "${name} cell resistance 13"
cell_resistance_14:
name: "${name} cell resistance 14"
cell_resistance_15:
name: "${name} cell resistance 15"
cell_resistance_16:
name: "${name} cell resistance 16"
cell_resistance_17:
name: "${name} cell resistance 17"
cell_resistance_18:
name: "${name} cell resistance 18"
cell_resistance_19:
name: "${name} cell resistance 19"
cell_resistance_20:
name: "${name} cell resistance 20"
cell_resistance_21:
name: "${name} cell resistance 21"
cell_resistance_22:
name: "${name} cell resistance 22"
cell_resistance_23:
name: "${name} cell resistance 23"
cell_resistance_24:
name: "${name} cell resistance 24"
total_voltage:
name: "${name} total voltage"
current:
name: "${name} current"
power:
name: "${name} power"
charging_power:
name: "${name} charging power"
discharging_power:
name: "${name} discharging power"
temperature_sensor_1:
name: "${name} temperature sensor 1"
temperature_sensor_2:
name: "${name} temperature sensor 2"
power_tube_temperature:
name: "${name} power tube temperature"
state_of_charge:
name: "${name} state of charge"
capacity_remaining:
name: "${name} capacity remaining"
total_battery_capacity_setting:
name: "${name} total battery capacity setting"
charging_cycles:
name: "${name} charging cycles"
total_charging_cycle_capacity:
name: "${name} total charging cycle capacity"
total_runtime:
name: "${name} total runtime"
balancing_current:
name: "${name} balancing current"
errors_bitmask:
name: "${name} errors bitmask"
switch:
- platform: jk_bms_ble
charging:
name: "${name} charging"
discharging:
name: "${name} discharging"
balancer:
name: "${name} balancer"
- platform: ble_client
ble_client_id: client0
name: "${name} enable bluetooth connection"
text_sensor:
- platform: jk_bms_ble
errors:
name: "${name} errors"
total_runtime_formatted:
name: "${name} total runtime formatted"
++++
Der GROWATT Inverter lässt sich direkt über eine [[https://www.home-assistant.io/integrations/growatt_server/|Integration]] in Home Assistant einbinden.
===== Betrieb und Kosten =====
Die Anlange ist seit dem März 2022 in Betrieb und generiert im Monat zwischen 430KW und 500KW je nach Wetter. Der beste Tag war bisher im März mit 24KW und der schlechteste mit 1.2KW im November. Der Oktober und November sind aber hier auch auch niederschlagreichsten Monate (siehe [[de:tech:rainsensor|Regenmengensensor]]).
{{ :tech:solar_generation_chart.png?direct&400 |Solar Produktion 2022}}
Die angegeben Werte sind nicht die wirklich erreichbaren, da wenn die Batterien voll sind und der Hausbedarf unter der aktuellen Produktionskapazität liegt der Inverter runterregelt. Was soll er auch mit der Energie machen wenn sie keiner nehmen kann. Wir haben diesen Effekt ein paar Mal beobachtet. Trotzdem reicht die Solarfläche nur bei Sonnenwetter aus völlig autark zu sein. Im Schnitt beziehen wir aus dem Grid zusätzlich ca. 100..200KW/Monat Weil durch unsere AirBnB Gäste die Klimaanlage im Gästezimmer bei Belegung fast durchgängig läuft und dadurch der Verbrauch höher ist als oben prognostiziert.
Bei einem ungefähren Durchschnitt von 450KW/Monat ergibt das eine jährliche Produktionsleistung von 5.400KW. Uns kostet eine Kilowattstunde 7 Baht/19 ct (1€ = ~37 Baht), sodass wir im Jahr **ca. 1.021,-€ (85,-€ im Monat)** sparen.
Das gesamte Solarsystem ohne Arbeitsleitung und Dachunterkonstruktion hat uns **206.000 Bath** also **5.567,-€** gekostet. Die Arbeitsleistung war meine eigene die mich sinnvoll während der Pandemie beschäftigt hat, deshalb zähle ich sie nicht. Der Stahlunterbau für den Carport zähle ich auch nicht, da er sowieso notwenig war um eine Abdeckung für unseren //Fuhrpark// (Motorroller und Auto) zu bekommen. Die lokalen Angebote für ein vergleichbares System lagen übrigens mehr als doppelt so hoch (dann aber mit Arbeitslohn).
Aus jetziger Sicht wird sich die Anlage nach ca. 5 ½ Jahren amortisieren, vorausgesetzt es gibt keine Wartungs- oder Reparaturkosten. Das oben anvisierte Ziel ist also locker erreicht. Als ersten werden sicher die Batterien auszutauschen sein. Bei ca. 4000 Zyklen wäre das nach 10 Jahren und die Solarpaneele wären nach 25 Jahren runter auf 85% Performance. Da wird die Zukunft zeigen wie und ob die Werte wirklich erreicht werden.
Zuvergessen ist aber auch nicht der Komfortgewinn bei Gridausfall wenn die Nachbarn mit Taschenlampe und Kerzen handtieren müssen, sowie das wirklich gute Gefühl Sonnenenergie zu nutzen wenn man doch mal die Klimaanlage anschaltet...
Zum Abschluss das Lade- und Entladediagramm über drei Tage. Ab ca. 07:00Uhr bis ca. 18:00Uhr werden die Batterien geladen danach beginnt die Entladung. Geht die Ladung unter deutlich unter 20% wird vom Grid geladen. Zu sehen am linearen Anstieg in der ersten und letzten Nacht.
{{ :tech:solar_charge.png?direct&400 |Solar battery charge/discharge}}
=====Links=====
* [[https://www.home-assistant.io]] Home Assistant
* [[https://esphome.io]] ESPHome
* [[https://airbnb.com/h/villarollokohsamui]] Man kann bei uns Urlaub verbringen...
===== Spenden =====
Wenn ihr meine Arbeit unterstützen wollt, so könnt ihr mir gerne einen Cappuccino oder so spenden: .