====== 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 ===== {{.:pasted:20251212-085840.png}} ===== Konvertierung Pi > ESP32 ===== * Anschluss Pi \\ {{.:pasted:20251106-122127.png?500}} * 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** | https://www.dwd.de/DE/fachnutzer/landwirtschaft/dokumentationen/allgemein/basis_windgeschwindigkeit_doku.html ===== Regenmesser ===== * Sensor Size : 153.94 * ml per Change : 4.590 ml ===== Lipo Zellen Kalibrierung ===== {{.:pasted:20251108-095452.png}} * 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)
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)
Strom (I_Akku)
(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
(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
(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)
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
(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
(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
(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'