Files
battery-charging-optimizer/CHANGELOG.md

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