Files
battery-charging-optimizer/openems/CHANGELOG.md
felix.zoesch 0fa03a566a feat: Major update - Battery Optimizer v3.4.0 with comprehensive fixes
## 🎯 Hauptänderungen

### Version 3.4.0 - SOC-Drift & Charging Capacity
-  Sicherheitspuffer (20-50% konfigurierbar) für untertägige SOC-Schwankungen
-  Monatliche automatische Batterie-Kalibrierung
- 🐛 SOC-Plausibilitäts-Check (filtert 65535% Spikes beim Modus-Wechsel)
- 🐛 Zeitabhängige API-Abfrage (vor/nach 14:00 Uhr)

### Neue Features
- 🔋 **Safety Buffer**: Kompensiert SOC-Drift und Eigenverbrauch
- 🔋 **Auto-Calibration**: Monatlicher Vollzyklus für SOC-Genauigkeit
- 🔋 **Spike Protection**: 4-fach Schutz gegen ungültige SOC-Werte
- 🔋 **Smart API**: Verhindert HTTP 500 Errors bei fehlenden Tomorrow-Preisen

### Dokumentation
- 📚 SOC_CALIBRATION_GUIDE.md - Umfassender Kalibrierungs-Guide
- 📚 FIX_CHARGING_CAPACITY.md - Sicherheitspuffer-Dokumentation
- 📚 FIX_SOC_SPIKE_PROBLEM.md - Spike-Protection-Lösung
- 📚 FIX_API_TIMING.md - Zeitabhängige API-Abfrage
- 📚 DIAGNOSE_LADE_PROBLEM.md - Debug-Guide

### Neue Dateien
- battery_calibration_automation.yaml - 4 Automations für Kalibrierung
- battery_calibration_input_helper.yaml - Input Helper Config
- battery_optimizer_input_helper_safety_buffer.yaml - Puffer Config
- debug_schedule.py - Umfassendes Debug-Script

### Scripts
- battery_charging_optimizer.py v3.4.0
- hastrom_flex_extended.py v1.1.0
- debug_schedule.py v1.0.0

### Fixes
- 🐛 SOC springt auf 65535% beim ESS-Modus-Wechsel → Debounce + Plausibilitäts-Check
- 🐛 API-HTTP-500 vor 14:00 → Zeitabhängige Abfrage
- 🐛 Batterie nicht bis 100% geladen → Sicherheitspuffer
- 🐛 SOC driftet ohne Vollzyklen → Automatische Kalibrierung

## 🚀 Installation

1. Input Helper erstellen (siehe battery_optimizer_input_helper_safety_buffer.yaml)
2. Automations installieren (siehe battery_calibration_automation.yaml)
3. Scripts aktualisieren (battery_charging_optimizer.py v3.4.0)
4. PyScript neu laden

## 📊 Verbesserungen

- Präzisere Ladeplanung durch Sicherheitspuffer
- Robustheit gegen SOC-Drift
- Keine API-Fehler mehr vor 14:00
- Hardware-Stopp bei 100% wird respektiert
- Bessere Batterie-Gesundheit durch regelmäßige Kalibrierung

🤖 Generated with Claude Code (claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-12 08:04:07 +01:00

7.1 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.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.backup Dateien

Documentation

  • Neue Datei: FIX_SOC_SPIKE_REMOTE_MODE.md mit 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_battery wird 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_trigger decorators 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
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

  1. Update battery_charging_optimizer.py (v3.3.1)
  2. Remove PyScript time triggers (now handled by automations)
  3. Import battery_optimizer_automations.yaml
  4. Verify existing keep-alive automations work correctly

3.1.0 → 3.2.0

  1. Update all .py files with timezone fixes
  2. Test haStrom API connectivity
  3. Verify datetime comparisons in logs

2.x → 3.0.0

  1. Backup old dashboard
  2. Install new Sections dashboard
  3. Install required HACS cards (Mushroom, Bubble)
  4. Verify mobile responsive behavior

1.x → 2.0.0

  1. Update Modbus configuration (FLOAT32 Big-Endian)
  2. Configure InfluxDB2 (optional)
  3. Update dashboard to new format
  4. 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:

  1. Erstelle ein Issue zur Diskussion
  2. Fork das Repository
  3. Erstelle einen Feature Branch (git checkout -b feature/AmazingFeature)
  4. Commit deine Changes (git commit -m 'Add some AmazingFeature')
  5. Push zum Branch (git push origin feature/AmazingFeature)
  6. Öffne einen Pull Request

Support