## Hauptänderungen ### Removed - Sicherheitspuffer (20%) entfernt - führte zu unvollständiger Ladung - Reservekapazität (2 kWh) entfernt - Hardware hat eigene Puffer - Problem: Mehr Ladestunden geplant als nötig, aber tatsächliche Ladung begrenzt - Folge: Batterie erreichte nie 100% SOC ### Changed - Standardwert max_charge_power: 5000W → 8000W (+60%) - Standardwert price_threshold: 28ct → 25ct/kWh - Ladelogik vereinfacht: Direkte Berechnung ohne Puffer ### Fixed - Batterie lädt jetzt vollständig bis 100% SOC - Genauere Ladestunden-Berechnung - Bessere Kapazitätsnutzung: Volle Leistung in allen Stunden ## Projekt-Aufräumarbeiten ### Archiviert - Bugfix-Dokumentationen → archive/ - BUGFIX_TIMEZONE_v3.2.md - DIAGNOSE_LADE_PROBLEM.md - FIX_API_TIMING.md - FIX_CHARGING_CAPACITY.md - FIX_SOC_SPIKE_PROBLEM.md - FIX_SOC_SPIKE_REMOTE_MODE.md - SOC_CALIBRATION_GUIDE.md ### Entfernt - docs/ (Duplikate) - debug_log.txt, debug_schedule.py ### Neu - UPGRADE_TO_v3.5.0.md - Detaillierter Upgrade-Guide - PROJECT_SUMMARY_v3.5.0.md - Technische Zusammenfassung - pyscripts/ aktualisiert auf v3.5.0 ## Migration 1. Backup erstellen 2. Neue Skripte nach /config/pyscript/ kopieren 3. PyScript neu laden 4. Input Helper anpassen (8000W, 25ct) 5. Test durchführen Details: siehe UPGRADE_TO_v3.5.0.md --- Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8.8 KiB
8.8 KiB
Changelog
Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Das Format basiert auf Keep a Changelog, und dieses Projekt folgt Semantic Versioning.
[3.5.0] - 2025-12-28
Removed
- Sicherheitspuffer entfernt: 20% Safety Buffer führte zu unvollständiger Ladung
- Problem: Mehr Ladestunden geplant als nötig, aber tatsächliche Ladung begrenzt
- Folge: Batterie erreichte nie 100% SOC
- Lösung: Hardware (GoodWe) hat eigene Sicherheitspuffer, Software-Puffer unnötig
- Reservekapazität entfernt: 2 kWh Reserve ebenfalls in Hardware integriert
input_number.battery_optimizer_reserve_capacitywird nicht mehr verwendetinput_number.battery_optimizer_safety_bufferwird nicht mehr verwendet
Changed
- Standardwerte optimiert:
max_charge_power: 5000W → 8000W (nutzt volle Inverter-Leistung)price_threshold: 28 ct/kWh → 25 ct/kWh (realistischere Schwelle)
- Ladelogik vereinfacht: Direkte Berechnung ohne Puffer
- Logging verbessert: Klarere Ausgaben zur Ladekapazität
Fixed
- 100% Ladung jetzt möglich: Batterie wird vollständig geladen
- Genauere Ladestunden-Berechnung: Nur tatsächlich benötigte Stunden werden geplant
- Bessere Kapazitätsnutzung: Volle Ladeleistung in allen geplanten Stunden
Migration 3.4.0 → 3.5.0
- Update
battery_charging_optimizer.pyzu v3.5.0 - Optional: Entferne nicht mehr verwendete Input Helper:
input_number.battery_optimizer_reserve_capacityinput_number.battery_optimizer_safety_buffer
- Empfohlen: Aktualisiere
input_number.battery_optimizer_max_charge_powerauf 8000W - Empfohlen: Aktualisiere
input_number.battery_optimizer_price_thresholdauf 25 ct/kWh - Teste Ladeverhalten über Nacht
[3.3.2] - 2024-11-30
Fixed
- Automation 8 SOC-Spike Protection: Plausibilitäts-Check verhindert vorzeitigen Stop beim Umschalten auf REMOTE-Modus
- Template-Condition prüft SOC-Bereich 99-101% statt nur >99%
- Filtert ungültige Werte wie 65535% beim ESS-Modus-Wechsel
- Keep-Alive SOC-Check: Zusätzliche Schutzmaßnahme gegen ungültige SOC-Werte
- Template-Condition prüft SOC <= 100% vor Modbus-Befehl
- Überspringt Zyklen bei Spikes, läuft aber weiter
Changed
- Erweiterte
battery_optimizer_automations.yaml(Automation 8) - Erweiterte
speicher_manuell_laden.yaml(Keep-Alive) - Backups erstellt:
.yaml.backupDateien
Documentation
- Neue Datei:
FIX_SOC_SPIKE_REMOTE_MODE.mdmit detaillierter Problembeschreibung, Lösung und Test-Anleitung
[3.3.1] - 2024-11-26
Fixed
- SOC-Plausibilitäts-Check: Filtert ungültige SOC-Werte (z.B. 65535% Spikes beim ESS-Modus-Wechsel)
- Negative Power Values:
charge_power_batterywird nun korrekt als negativer Wert gesetzt (-5000 für Laden) - Automation Integration: Nutzt bestehende Automations für ESS-Modus und Keep-Alive statt direkter Service-Calls
Changed
- Removed
@time_triggerdecorators from PyScript - Triggers now via Home Assistant Automations - Simplified
execute_charging_schedule- delegates to existing automation infrastructure - Updated documentation for proper automation-based architecture
[3.2.0] - 2025-01-20
Fixed
- Timezone Handling: Durchgehende Verwendung von
ZoneInfo("Europe/Berlin")in allen Scripts - haStrom API Error Handling: Bessere Fehlerbehandlung mit HTTP-Status-Codes und Response-Text
- DateTime Comparison: Korrekte timezone-aware datetime Vergleiche in PyScript
Changed
get_local_now()function für konsistente lokale Zeit- Explicit timezone conversion in
get_electricity_prices() - Improved logging für API-Fehler
[3.1.0] - 2024-12-15
Added
- Ranking-Based Optimization: Globale Optimierung über Tagesgrenzen hinweg
- Tomorrow Price Support: Einbeziehung von morgigen Strompreisen (ab 14:00)
- hastrom_flex_extended.py: Erweiterter Price Fetcher mit Tomorrow-Support
- Cross-Midnight Planning: Findet günstigste Stunden unabhängig von Tagesgrenzen
Changed
- Algorithm von threshold-based zu ranking-based
- Berücksichtigt jetzt heute + morgen in einem 48h-Fenster
- Verbesserte Statistiken und Logging
Fixed
- Mitternachts-Übergang wird korrekt gehandhabt
- PV-Forecast Integration verbessert
[3.0.0] - 2024-11-28
Added
- Sections Dashboards: Modern
e Home Assistant 2024.2+ Dashboards
- Drei Dashboard-Varianten (Standard, Compact, Minimal)
- Auto-responsive Layout
- Improved mobile compatibility
Changed
- Dashboard-Architektur komplett überarbeitet
- Maximum 4-Spalten Layout für mobile
- Mushroom Cards statt veralteter Entities Cards
- Bubble Card Integration
Deprecated
- Alte horizontal/vertical stack Dashboards (v1/v2)
[2.0.0] - 2024-10-15
Added
- InfluxDB2 Integration für historische Daten
- Erweiterte Error Handling
- Dashboard Verbesserungen
Fixed
- Modbus FLOAT32 Encoding (Big-Endian)
- Controller Priority Issues in OpenEMS
- State value 255-character limitation
[1.2.1] - 2024-09-20
Fixed
- CRITICAL: Hourly execution automation war nicht aktiv
- PyScript state storage (Attribute statt Value für komplexe Daten)
[1.2.0] - 2024-09-10
Added
- Automatische Preis-Update Trigger
- Manual Override mit Auto-Reset (4h)
- Low-SOC Warnung
- Startup calculation nach HA-Neustart
Fixed
- Input textarea limitierung umgangen via pyscript state
- Generator expressions in PyScript (nicht unterstützt)
[1.1.0] - 2024-08-25
Added
- Threshold-based optimization algorithm
- Basic dashboard
- Manual control automations
- PV forecast integration (Forecast.Solar)
Changed
- Improved configuration structure
- Better logging
[1.0.0] - 2024-08-01
Added
- Initial release
- Basic battery charging optimization
- haStrom FLEX PRO price integration
- OpenEMS Modbus control
- Simple time-based scheduling
- Basic Home Assistant integration
Version Matrix
| Version | Algorithm | Tomorrow Support | Dashboard | Automations | 100% Ladung |
|---|---|---|---|---|---|
| 3.5.0 | Ranking | ✅ | Sections | HA-based | ✅ |
| 3.3.1 | Ranking | ✅ | Sections | HA-based | ❌ |
| 3.2.0 | Ranking | ✅ | Sections | PyScript | ❌ |
| 3.1.0 | Ranking | ✅ | Sections | PyScript | ❌ |
| 3.0.0 | Ranking | ✅ | Sections | PyScript | ❌ |
| 2.x | Threshold | ❌ | Enhanced | PyScript | ❌ |
| 1.x | Threshold | ❌ | Basic | PyScript | ❌ |
Migration Guides
3.2.0 → 3.3.1
- Update
battery_charging_optimizer.py(v3.3.1) - Remove PyScript time triggers (now handled by automations)
- Import
battery_optimizer_automations.yaml - Verify existing keep-alive automations work correctly
3.1.0 → 3.2.0
- Update all
.pyfiles with timezone fixes - Test haStrom API connectivity
- Verify datetime comparisons in logs
2.x → 3.0.0
- Backup old dashboard
- Install new Sections dashboard
- Install required HACS cards (Mushroom, Bubble)
- Verify mobile responsive behavior
1.x → 2.0.0
- Update Modbus configuration (FLOAT32 Big-Endian)
- Configure InfluxDB2 (optional)
- Update dashboard to new format
- Verify controller priority in OpenEMS
Known Issues
v3.3.1
- Keep-Alive automation muss manuell in HA erstellt werden (nicht automatisch)
- Dashboard-Import kann HACS-Card Warnings zeigen (installiere alle required cards)
v3.2.0
- haStrom API manchmal langsam (>5s response time) - wird durch Timeout abgefangen
v3.1.0
- Tomorrow-Preise erst ab 14:00 verfügbar (normal, nicht ein Bug)
- Mitternachts-Neuberechnung optional (kann zu doppelter Berechnung führen)
Planned Features
- Dynamische Ladeleistungs-Anpassung basierend auf PV-Produktion
- Multi-Tarif Support (neben haStrom FLEX PRO)
- Wettervorhersage Integration (Temperatur-Kompensation)
- Machine Learning für Verbrauchsprognose
- Mobile App Benachrichtigungen
- Grafana Dashboard Templates
- Multi-Batterie Support
Contributing
Contributions sind willkommen! Für größere Änderungen:
- Erstelle ein Issue zur Diskussion
- Fork das Repository
- Erstelle einen Feature Branch (
git checkout -b feature/AmazingFeature) - Commit deine Changes (
git commit -m 'Add some AmazingFeature') - Push zum Branch (
git push origin feature/AmazingFeature) - Öffne einen Pull Request
Support
- Documentation: README.md, INSTALLATION.md
- Issues: Gitea Issues
- Discussions: Gitea Discussions