329 lines
8.5 KiB
Markdown
329 lines
8.5 KiB
Markdown
# 🚀 Batterie-Optimierung - Start-Paket
|
|
|
|
## 📦 Paket-Inhalt
|
|
|
|
Du hast nun ein vollständiges System zur intelligenten Batterieladung erhalten!
|
|
|
|
### Konfigurationsdateien (3)
|
|
- ✅ `battery_optimizer_config.yaml` - Input Helper & Templates
|
|
- ✅ `battery_optimizer_rest_commands.yaml` - OpenEMS REST API
|
|
- ✅ `battery_optimizer_automations.yaml` - 6 Automatisierungen
|
|
|
|
### PyScript Module (2)
|
|
- ✅ `battery_charging_optimizer.py` - Hauptalgorithmus (14 KB)
|
|
- ✅ `battery_power_control.py` - Steuerungsfunktionen (3.6 KB)
|
|
|
|
### Dashboard (1)
|
|
- ✅ `battery_optimizer_dashboard.yaml` - Lovelace UI
|
|
|
|
### Dokumentation (3)
|
|
- ✅ `README.md` - Projekt-Übersicht (7.4 KB)
|
|
- ✅ `INSTALLATION_GUIDE.md` - Installations-Anleitung (9 KB)
|
|
- ✅ `PHASE2_INFLUXDB.md` - Roadmap für InfluxDB Integration (12 KB)
|
|
|
|
## ⚡ Quick-Start Checkliste
|
|
|
|
### ☑️ Vorbereitung (5 Min)
|
|
- [ ] Home Assistant läuft
|
|
- [ ] PyScript via HACS installiert
|
|
- [ ] OpenEMS erreichbar (192.168.89.144)
|
|
- [ ] Strompreis-Sensor aktiv (`sensor.hastrom_flex_pro`)
|
|
- [ ] Forecast.Solar konfiguriert
|
|
|
|
### ☑️ Installation (15 Min)
|
|
- [ ] `battery_optimizer_config.yaml` zu `configuration.yaml` hinzufügen
|
|
- [ ] `battery_optimizer_rest_commands.yaml` einbinden
|
|
- [ ] `battery_optimizer_automations.yaml` zu Automations hinzufügen
|
|
- [ ] PyScript Dateien nach `/config/pyscript/` kopieren
|
|
- [ ] Home Assistant neu starten
|
|
|
|
### ☑️ Konfiguration (5 Min)
|
|
- [ ] Input Helper Werte setzen (siehe unten)
|
|
- [ ] Ersten Plan berechnen (`pyscript.calculate_charging_schedule`)
|
|
- [ ] Plan im Input-Text prüfen
|
|
- [ ] Optimierung aktivieren
|
|
|
|
### ☑️ Testing (10 Min)
|
|
- [ ] Manuelles Laden testen (3kW für 2 Min)
|
|
- [ ] Auto-Modus testen
|
|
- [ ] Logs prüfen
|
|
- [ ] Dashboard einrichten
|
|
|
|
### ☑️ Live-Betrieb (24h Monitoring)
|
|
- [ ] Ersten Tag überwachen
|
|
- [ ] Prüfen ob Plan um 14:05 Uhr erstellt wird
|
|
- [ ] Prüfen ob stündlich ausgeführt wird
|
|
- [ ] Batterie-Verhalten beobachten
|
|
|
|
## 🎯 Empfohlene Ersteinstellungen
|
|
|
|
```yaml
|
|
# Nach Installation diese Werte setzen:
|
|
|
|
input_number:
|
|
battery_optimizer_min_soc: 20 # %
|
|
battery_optimizer_max_soc: 100 # %
|
|
battery_optimizer_price_threshold: 28 # ct/kWh
|
|
battery_optimizer_max_charge_power: 10000 # W
|
|
battery_optimizer_reserve_capacity: 2 # kWh
|
|
|
|
input_select:
|
|
battery_optimizer_strategy: "Konservativ (nur sehr günstig)"
|
|
|
|
input_boolean:
|
|
battery_optimizer_enabled: true
|
|
battery_optimizer_manual_override: false
|
|
```
|
|
|
|
## 🔧 Erste Schritte nach Installation
|
|
|
|
### 1. System-Check durchführen
|
|
|
|
```yaml
|
|
# Entwicklerwerkzeuge → Dienste → Tab "YAML-Modus"
|
|
|
|
# REST Commands testen:
|
|
service: rest_command.set_ess_remote_mode
|
|
# → Prüfe in OpenEMS ob ESS in REMOTE ist
|
|
|
|
service: rest_command.set_ess_internal_mode
|
|
# → Zurück auf INTERNAL
|
|
|
|
# Ersten Plan berechnen:
|
|
service: pyscript.calculate_charging_schedule
|
|
# → Prüfe input_text.battery_charging_schedule
|
|
|
|
# Logs prüfen:
|
|
# Einstellungen → System → Protokolle
|
|
# Suche nach "battery" oder "charging"
|
|
```
|
|
|
|
### 2. Manuellen Test durchführen
|
|
|
|
```yaml
|
|
# Test 1: Laden mit 3kW
|
|
service: pyscript.start_charging_cycle
|
|
data:
|
|
power_w: -3000
|
|
|
|
# Warte 2 Minuten, beobachte:
|
|
# - sensor.battery_power sollte ca. -3000W zeigen
|
|
# - sensor.battery_state_of_charge sollte steigen
|
|
|
|
# Test 2: Stoppen
|
|
service: pyscript.stop_charging_cycle
|
|
|
|
# ESS sollte wieder auf INTERNAL sein
|
|
```
|
|
|
|
### 3. Dashboard einrichten
|
|
|
|
```yaml
|
|
# Lovelace → Bearbeiten → Neue Ansicht
|
|
# Titel: "Batterie-Optimierung"
|
|
# Icon: mdi:battery-charging
|
|
|
|
# Kopiere Inhalt aus battery_optimizer_dashboard.yaml
|
|
```
|
|
|
|
## 📊 Beispiel: Optimierung heute
|
|
|
|
Mit deinen aktuellen Strompreisen (07.11.2025):
|
|
|
|
| Zeit | Preis | Aktion | Grund |
|
|
|------|-------|--------|-------|
|
|
| 00:00 | 26.88 ct | ✅ Laden | Günstig, wenig PV |
|
|
| 01:00 | 26.72 ct | ✅ Laden | Günstig, wenig PV |
|
|
| 02:00 | 26.81 ct | ✅ Laden | Günstig, wenig PV |
|
|
| 07:00 | 32.08 ct | ❌ Auto | Zu teuer |
|
|
| 12:00 | 26.72 ct | ⚠️ Auto | Günstig, aber PV aktiv |
|
|
| 17:00 | 37.39 ct | ❌ Auto | Sehr teuer |
|
|
|
|
**Ergebnis**:
|
|
- 3 Stunden laden (ca. 30 kWh)
|
|
- Ø Ladepreis: 26.80 ct/kWh
|
|
- Ersparnis vs. Durchschnitt: ~3 ct/kWh
|
|
- **Monatliche Ersparung**: ca. 20-30 EUR (bei 20 kWh/Tag Netzbezug)
|
|
|
|
## 🎮 Wichtige Services
|
|
|
|
### Täglich automatisch:
|
|
```yaml
|
|
# Um 14:05 Uhr
|
|
pyscript.calculate_charging_schedule
|
|
```
|
|
|
|
### Stündlich automatisch:
|
|
```yaml
|
|
# Um xx:05 Uhr
|
|
pyscript.execute_current_schedule
|
|
```
|
|
|
|
### Manuell nützlich:
|
|
```yaml
|
|
# Neuen Plan berechnen
|
|
pyscript.calculate_charging_schedule
|
|
|
|
# Sofort laden starten
|
|
pyscript.start_charging_cycle:
|
|
power_w: -10000 # 10kW
|
|
|
|
# Laden stoppen
|
|
pyscript.stop_charging_cycle
|
|
|
|
# Notfall: Alles stoppen
|
|
pyscript.emergency_stop
|
|
```
|
|
|
|
## 🛡️ Sicherheits-Features
|
|
|
|
✅ **Keep-Alive**: Schreibt alle 30s die Leistung (verhindert Timeout)
|
|
✅ **SOC-Grenzen**: Respektiert Min 20% / Max 100%
|
|
✅ **Reserve**: Hält 2 kWh für Eigenverbrauch
|
|
✅ **Manual Override**: Pausiert Automatik für 4h
|
|
✅ **Notfall-Stop**: Deaktiviert alles sofort
|
|
|
|
## 📈 Monitoring & Optimierung
|
|
|
|
### Zu beobachten in den ersten Tagen:
|
|
|
|
1. **Lädt das System zur richtigen Zeit?**
|
|
- Prüfe `sensor.nächste_ladestunde`
|
|
- Vergleiche mit Strompreisen
|
|
|
|
2. **Funktioniert der Keep-Alive?**
|
|
- Batterie sollte durchgehend laden
|
|
- Kein Wechsel zwischen Laden/Entladen
|
|
|
|
3. **Sind die Prognosen realistisch?**
|
|
- PV-Ertrag: Vergleiche Prognose vs. Ist
|
|
- Verbrauch: Notiere typische Werte
|
|
|
|
4. **Stimmen die Einsparungen?**
|
|
- Lade zu günstigen Zeiten: Ja/Nein?
|
|
- SOC morgens höher: Ja/Nein?
|
|
|
|
### Anpassungen nach Testphase:
|
|
|
|
**Zu konservativ?**
|
|
→ Strategie auf "Moderat" ändern
|
|
→ Preis-Schwellwert erhöhen (z.B. 30 ct)
|
|
|
|
**Zu aggressiv?**
|
|
→ Reserve erhöhen (z.B. 3 kWh)
|
|
→ Schwellwert senken (z.B. 26 ct)
|
|
|
|
**PV-Konflikt?**
|
|
→ Warte auf Phase 2 (bessere PV-Verteilung)
|
|
→ Vorübergehend: Reserve erhöhen
|
|
|
|
## 🚨 Troubleshooting
|
|
|
|
### Problem: System lädt nicht
|
|
|
|
**Checkliste:**
|
|
1. [ ] `input_boolean.battery_optimizer_enabled` = ON?
|
|
2. [ ] `input_boolean.battery_optimizer_manual_override` = OFF?
|
|
3. [ ] Plan vorhanden? (`input_text.battery_charging_schedule`)
|
|
4. [ ] Ist jetzt Ladezeit laut Plan?
|
|
5. [ ] OpenEMS erreichbar? (http://192.168.89.144:8084)
|
|
|
|
**Logs prüfen:**
|
|
```
|
|
Einstellungen → System → Protokolle
|
|
Filter: "battery" oder "charging"
|
|
```
|
|
|
|
### Problem: Laden stoppt nach kurzer Zeit
|
|
|
|
**Ursache:** Keep-Alive funktioniert nicht
|
|
|
|
**Lösung:**
|
|
- Prüfe PyScript Logs
|
|
- Prüfe ob `pyscript.battery_charging_active` = true
|
|
- Manuell neu starten: `pyscript.start_charging_cycle`
|
|
|
|
### Problem: Unrealistische Pläne
|
|
|
|
**Ursache:** PV-Prognose oder Parameter falsch
|
|
|
|
**Lösung:**
|
|
- Prüfe Forecast.Solar Sensoren
|
|
- Erhöhe Reserve-Kapazität
|
|
- Wähle konservativere Strategie
|
|
- Passe Preis-Schwellwert an
|
|
|
|
## 📞 Support & Feedback
|
|
|
|
### Logs sammeln für Support:
|
|
```
|
|
1. Einstellungen → System → Protokolle
|
|
2. Filter: "battery"
|
|
3. Kopiere relevante Einträge
|
|
4. Plus: Screenshot der Input Helper
|
|
5. Plus: Inhalt von input_text.battery_charging_schedule
|
|
```
|
|
|
|
### Wichtige Infos bei Problemen:
|
|
- Home Assistant Version
|
|
- PyScript Version
|
|
- OpenEMS Version
|
|
- Aktuelle Konfiguration (Input Helper Werte)
|
|
- Fehlermeldungen aus Logs
|
|
|
|
## 🎯 Nächste Schritte
|
|
|
|
### Kurzfristig (Woche 1):
|
|
- ✅ System installieren
|
|
- ✅ Testphase durchführen
|
|
- ✅ Parameter optimieren
|
|
- ✅ Dashboard einrichten
|
|
|
|
### Mittelfristig (Woche 2-4):
|
|
- [ ] Monitoring etablieren
|
|
- [ ] Einsparungen messen
|
|
- [ ] Feintuning Parameter
|
|
- [ ] Evtl. Strategie anpassen
|
|
|
|
### Langfristig (ab Monat 2):
|
|
- [ ] Phase 2: InfluxDB Integration
|
|
- [ ] Historische Verbrauchsanalyse
|
|
- [ ] Machine Learning Prognosen
|
|
- [ ] Erweiterte Features
|
|
|
|
## 🎓 Lernkurve
|
|
|
|
**Tag 1-3**: System verstehen, Parameter testen
|
|
**Woche 1**: Erste Optimierungen, Feintuning
|
|
**Woche 2-4**: Stabil laufender Betrieb
|
|
**Monat 2+**: Erweiterte Features, KI-Integration
|
|
|
|
## 💡 Pro-Tipps
|
|
|
|
1. **Start konservativ**: Besser zu wenig als zu viel laden
|
|
2. **Logs lesen**: Die besten Hinweise kommen aus den Logs
|
|
3. **Klein anfangen**: Teste erst mit 3kW statt 10kW
|
|
4. **Geduld haben**: System braucht 1-2 Wochen zum Einspielen
|
|
5. **Dokumentieren**: Notiere Änderungen und deren Effekte
|
|
|
|
## ✨ Viel Erfolg!
|
|
|
|
Du hast jetzt ein professionelles Batterie-Management-System!
|
|
|
|
**Geschätzte Einsparungen:**
|
|
- Pro Ladung: 2-5 ct/kWh
|
|
- Pro Tag: 0.50-1.50 EUR
|
|
- Pro Monat: 15-45 EUR
|
|
- Pro Jahr: 180-540 EUR
|
|
|
|
**ROI**: System amortisiert sich selbst durch Einsparungen! 💰
|
|
|
|
---
|
|
|
|
**Installation erstellt**: 2025-11-07
|
|
**Erstellt für**: Felix's GoodWe/OpenEMS System
|
|
**Version**: 1.0
|
|
**Status**: Production Ready ✅
|
|
|
|
Bei Fragen oder Problemen: Prüfe zuerst die Logs und INSTALLATION_GUIDE.md!
|