haussteuerung:esphome:wetterstation
Table of Contents
Wetterstation
Konfiguration: Victron MPPT & JBD BMS
Vergleich der Einstellungen für den aktuellen 3S Li-Ion Akku und den geplanten 4S LiFePO4 Akku. Ziel ist eine maximale Lebensdauer durch konservative Ladespannungen im Victron und harte Sicherheitsgrenzen im BMS.
| Parameter | Li-Ion (3S) (aktuell) | LiFePO4 (4S) (geplant) | Bemerkung / Logik |
|---|---|---|---|
| Victron MPPT 75|10 | |||
| Batterie-Voreinstellung | Benutzerdefiniert | LiFePO4 (oder Benutzerdef.) | Basis für die Spannungen. |
| Absorptionsspannung (Ladeschluss) | 12,45 V | 14,20 V | Li-Ion: 4,15V/Zelle (schont die Chemie). LiFePo: 3,55V/Zelle (vermeidet BMS-Abschaltung). |
| Erhaltungsspannung (Float) | 12,15 V | 13,50 V | Spannung halten, wenn Akku voll. |
| Ausgleichsspannung (Equalization) | AUS | AUS | Wichtig! Niemals bei Lithium-Akkus aktivieren. |
| Last-Ausgang Modus | Benutzerdefiniert | BatteryLife oder Benutzerdef. | Steuert die Wetterstation. |
| Last trennen bei (Low Voltage Cut-off) | 9,60 V (3,2V/Zelle) | 12,00 V (3,0V/Zelle) | Schaltet Verbraucher ab, bevor Akku tiefentladen ist. |
| Last wieder verbinden (Reconnect) | 11,10 V (3,7V/Zelle) | 12,80 V (3,2V/Zelle) | Verbraucher erst zuschalten, wenn Solar etwas nachgeladen hat. |
| JBD BMS Einstellungen | |||
| Zell-Chemie (Type) | Li-Ion / NMC | LiFePO4 | Grundlegende Einstellung in der App ändern! |
| Anzahl Zellen (Count) | 3 | 4 | Muss zwingend stimmen. |
| Cell Over Voltage (Schutzabschaltung) | 4,25 V | 3,65 V | BMS greift ein, falls Victron die Absorptionsspannung überschießt. |
| Cell Over Voltage Release | 4,15 V | 3,45 V | Hysterese zum Wiedereinschalten. |
| Cell Under Voltage (Not-Aus) | 2,80 V | 2,50 V | BMS greift ein, falls Victron-Lastabschaltung versagt. |
| Cell Under Voltage Release | 3,00 V | 2,80 V | Hysterese. |
| Balancer Start Voltage | 4,00 V | 3,40 V | Balancing erst kurz vor “Akku voll” starten. |
| Balance only charging | ON | ON | Verhindert De-Balancing bei Nacht. |
| Charge Under Temp. | 0 °C | 0 °C | Wichtig: Lithium niemals bei Frost laden (Zerstörungsgefahr). |
| Discharge Under Temp. | -20 °C | -20 °C | Entladen ist bei Kälte unproblematisch. |
Org Konfig LiFePo
Konvertierung Pi > ESP32
- Anschluss ESP32
| Pi Pin | ESP32 Pin | Funktion |
|---|---|---|
| GPIO 5 | GPIO21 | I2C SDA |
| GPIO 3 | GPIO22 | I2C SCL |
| GPIO 7 | GPIO17 | OneWire |
| GPIO21 | GPIO25 | Regenmesser |
| GPIO20 | GPIO27 | Windgeschwindigkeit |
| GPIO17 | GPIO26 | LED Wlan |
| GPIO27 | GPIO18 | LED Akku |
| GPIO22 | GPIO19 | LED Regen |
| GPIO23 | GPIO23 | LED Reserve |
| 5V | Vin ?? | 5V Versorgung |
| 3,3V | 3,3V Kommen vom Pi ! | |
| 6, 20, 25, 34, 39 | GND |
- Dallas Adressen
| Sensor Nr | Dallas MAC | Dallas MAC (Pi) | Funktion |
|---|---|---|---|
| 1 | 0xae01184286d5ff28 | 28-01184286d5ff | Bodentemperatur +5cm (Luft) |
| 2 | 0x270318408bf1ff28 | 28-0318408bf1ff | Bodentemperatur -5cm (Oberflaeche) |
| 3 | 0xd30118428444ff28 | 28-0118428444ff | Bodentemperatur -30cm |
| 4 | 0x370118428919ff28 | 28-0118428919ff | Bodentemperatur -100cm |
Anschluss Windsensoren
| Kabel | Funktion | Notes |
|---|---|---|
| Schwarz | Wind Richtung | Widerstandsskala (siehe Doku) |
| Grün | Wind Richtung | Auslesen über AD |
| Gelb | Wind Geschwindigkeit | Read Kontakt ! |
| Rot | Wind Geschwindigkeit | löst 2x aus pro Umdrehung |
Regenmesser
- Sensor Size : 153.94
- ml per Change : 4.590 ml
Lipo Zellen Kalibrierung
- Alle Zellen hängen an gleich aufgebauten Spannungsteilern
150.000 Ohm & 27.000 Ohm
→ https://www.peacesoftware.de/einigewerte/spannungsteiler.html - Die Kalibrierung erfolgt dann so, dass man eine Referenz Spannung auf alle Pins gibt (12.0V z.B.)
- Dann muss man die Spannung am AD messen und auf 12 V hoch rechnen
dataC = Cell.value * (150000 + 27000) / 27000) - Jetzt kann man den Faktor berechnen der eben die Korrektur bildet
cellok = dataC * self.calibCellReference / self.calibCellVolt
calibCellReference → Referenzspannung
calibCellVolt → gemessene Spannung
Beispiel
- Referenz = 12.596
- Gemessen über AD Pin = 12.777
- Spannung zu hoch am AD → muss also der Faktor <1 sein …
- 12.596 : 12.777 → 0.985834
- Ergebnis → 12.777 * 0.985834 → 12.596001
Extra Berechnungen U/I
| Bereich/Sensor | Gemessene Werte | Abgeleiteter Wert | Formel | Beschreibung | ||
|---|---|---|---|---|---|---|
| µController (5V) | Spannung (V_µC)<br>Strom (I_µC) | Leistung (P_µC) | P_µC = V_µC * I_µC | Zeigt den aktuellen Leistungsverbrauch des Mikrocontrollers und aller angeschlossenen Peripheriegeräte in Watt; hilfreich zur Überwachung des Energiebedarfs und zur Erkennung von Anomalien wie Überlastungen. | ||
| Energie verbraucht (Wh_µC) | Wh_µC = ∫ P_µC dt (Integration über Zeit) | Kumulierte Energie, die der µController und seine Komponenten über einen bestimmten Zeitraum verbraucht haben; ideal für langfristige Analysen, z. B. tägliche oder monatliche Verbrauchsbilanzen und Optimierungen. | ||||
| Akku (12V) | Spannung (V_Akku)<br>Strom (I_Akku)<br>(positiv: Entladung; negativ: Ladung) | Leistung (P_Akku) | P_Akku = V_Akku * I_Akku | Gibt die aktuelle Leistung an, die der Akku abgibt (bei Entladung) oder aufnimmt (bei Ladung) in Watt; ermöglicht die Echtzeit-Überwachung des Akku-Zustands und der Lade-/Entladeprozesse. | ||
| SOC (State of Charge) in % (genau) | SOC = [(Kapazität_Ah - ∫ I_Akku dt * Effizienz) / Kapazität_Ah] * 100<br>(Effizienz ~0.95; Initial aus V-LUT) | Berechnet den genauen Füllstand des Akkus in Prozent unter Berücksichtigung von Coulomb-Zählung und Lade-/Entladeeffizienz; verbessert die Genauigkeit im Vergleich zu reiner Spannungsmessung und hilft bei der Vorhersage der Restkapazität. | ||||
| Restlaufzeit (h) | Restlaufzeit = (SOC/100 * Kapazität_Ah) / I_µC_eq<br>(I_µC_eq = I_µC * (V_µC / V_Akku) angepasst) | Schätzt die verbleibende Betriebszeit in Stunden basierend auf dem aktuellen Füllstand und dem angepassten Verbrauchsstrom; nützlich für Alarme bei niedrigem Ladestand und Planung von Ladezyklen (nur relevant bei Entladung). | ||||
| Energie entnommen/geladen (Wh_Akku) | Wh_Akku = ∫ P_Akku dt | Kumulierte Energiebilanz des Akkus, die entnommen oder geladen wurde; ermöglicht die Analyse von Zyklen, Degradation und Gesamteffizienz über längere Perioden. | ||||
| Solarpanel | Spannung (V_Solar)<br>Strom (I_Solar) | Leistung (P_Solar) | P_Solar = V_Solar * I_Solar | Zeigt den aktuellen Energieertrag des Solarpanels in Watt; hilft bei der Bewertung der Sonneneinstrahlung und der Panel-Leistung in Echtzeit. | ||
| Energie erzeugt (Wh_Solar) | Wh_Solar = ∫ P_Solar dt | Kumulierter Energieertrag des Solarpanels über Zeit; eignet sich für Statistiken wie täglichen Ertrag, Saisonalvergleiche und Systemoptimierung. | ||||
| Systemweit (kombiniert) | - | Effizienz Laderegler (Solar → Akku) | Eff_Laden = (\ | P_Akku\ | / P_Solar) * 100<br>(nur bei Ladung, I_Akku < 0) | Misst den Wirkungsgrad des Ladereglers, d. h. welcher Anteil der Solarleistung effektiv im Akku gespeichert wird; niedrige Werte können auf Verluste durch Wärme, falsche MPPT-Einstellungen oder Defekte hinweisen. |
| Effizienz DC-DC-Wandler (Akku → µC) | Eff_Wandler = (P_µC / P_Akku) * 100<br>(nur bei Entladung, I_Akku > 0) | Berechnet den Wirkungsgrad des Spannungswandlers von 12V auf 5V; zeigt Verluste und hilft bei der Diagnose von Ineffizienzen oder Hardwareproblemen. | ||||
| Gesamteffizienz (Solar → µC) | Eff_Gesamt = (P_µC / P_Solar) * 100<br>(bei direkter Solarversorgung) | Gibt den Gesamtwirkungsgrad des Systems von Solarerzeugung bis zum Verbrauch am µController an; nützlich für die Bewertung der Systemeffizienz und Identifikation von Optimierungspotenzialen. | ||||
| Autarkie-Grad (%) | Autarkie = [min(P_Solar, P_µC) / P_µC] * 100 | Prozentsatz, zu dem der µController-Verbrauch direkt durch Solarenergie gedeckt wird, ohne den Akku zu belasten; fördert die Analyse der Systemunabhängigkeit von externen Quellen. |
Sensoren
| Sensor | Typ | Adresse | Notes | IO / NIO |
|---|---|---|---|---|
| AHT20 | I2C | 0x38 | Variante AHT20 angeben! | IO |
| SHT 3x | I2C | 0x44 | Kein SHT2x wie bei Thomas | IO |
| INA 3221 | I2C | 0x40 | Thomas → 0x41 ! | IO |
| ADS1115 | I2C | 0x48 | IO | |
| BME280 | I2C | 0x76 | BME und nicht BMP ! | IO |
AHT20
# AHT10/AHT20 Sensor
- platform: aht10
variant: AHT20
i2c_id: wetter_i2c_bus
address: 0x38
update_interval: 60s
temperature:
name: "AHT20 Aussentemperatur"
icon: 'mdi:thermometer'
id: aht_temp
humidity:
name: "AHT20 Aussenluftfeuchtigkeit"
icon: 'mdi:water-percent'
id: aht_hum
BME280
# --- ATMOSPHÄRISCHE SENSOREN ---
- platform: bme280_i2c
i2c_id: wetter_i2c_bus
address: 0x76
update_interval: 60s
temperature:
name: "BME280 Temperatur"
icon: 'mdi:thermometer-alert'
oversampling: 1x
filters:
- or:
- heartbeat: 900s
- delta: 0.25
pressure:
name: "BME280 Luftdruck (hPa)"
icon: 'mdi:gauge'
oversampling: 16x
filters:
- or:
- heartbeat: 900s
- delta: 0.35
humidity:
name: "BME280 Luftfeuchte"
oversampling: 1x
filters:
- or:
- heartbeat: 900s
- delta: 0.25
- platform: wifi_signal
name: "BME280 WiFi Signal"
update_interval: 900s
SHT3x
- platform: sht3xd
temperature:
name: "SHT3x Temperature"
humidity:
name: "SHT3x Humidity"
address: 0x44
update_interval: 60s
INA3221
# INA3221 Sensor (Solar-Ladekontrolle)
- platform: ina3221
i2c_id: wetter_i2c_bus
address: 0x40
update_interval: 5min
channel_1: # Meist Batterie
shunt_resistance: 0.022
bus_voltage:
name: "INA3221 Batterie-Spannung Gesamt (V)"
icon: 'mdi:battery-charging-100'
current:
name: "INA3221 Batterie-Strom (A)"
icon: 'mdi:battery-charging-100'
power:
name: "INA3221 Batterie-Leistung (W)"
icon: 'mdi:battery-charging-100'
channel_2: # Meist Solarpanel
shunt_resistance: 0.022
bus_voltage:
name: "INA3221 Panel-Spannung (V)"
icon: 'mdi:solar-panel-large'
current:
name: "INA3221 Panel-Strom (A)"
icon: 'mdi:solar-panel-large'
power:
name: "INA3221 Panel-Leistung (W)"
icon: 'mdi:solar-panel-large'
channel_3: # Meist Last/Verbraucher
shunt_resistance: 0.022
current:
name: "INA3221 Verbrauch (mA)"
unit_of_measurement: "mA"
icon: 'mdi:battery-minus-variant'
filters:
- multiply: 1000
bus_voltage:
name: "INA3221 Verbraucher-Spannung (V)"
unit_of_measurement: "V"
icon: 'mdi:battery-minus-variant'
power:
name: "INA3221 Verbraucher-Leistung (W)"
unit_of_measurement: "W"
icon: 'mdi:battery-minus-variant'
haussteuerung/esphome/wetterstation.txt · Last modified: by dominik



