Files
battery-charging-optimizer/openems/legacy/v2/ENTITY_CHECKLIST.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

3.4 KiB

Entitäten-Checkliste

Nach Installation sollten folgende Entitäten existieren:

Input Boolean (2 Stück)

  • input_boolean.battery_optimizer_enabled
  • input_boolean.battery_optimizer_manual_override

Input Number (7 Stück)

  • input_number.battery_capacity_kwh
  • input_number.battery_optimizer_min_soc
  • input_number.battery_optimizer_max_soc
  • input_number.battery_optimizer_max_charge_power
  • input_number.battery_optimizer_price_threshold
  • input_number.battery_optimizer_reserve_capacity
  • input_number.battery_optimizer_pv_threshold

Input Text (1 Stück)

  • input_text.battery_optimizer_status

Template Sensors (3 Stück) - werden AUTOMATISCH erstellt

Diese Sensoren werden erst nach Home Assistant Neustart und Laden der Templates erstellt:

  • sensor.battery_charging_plan_status
  • sensor.battery_next_action
  • sensor.battery_estimated_savings

Hinweis: Template Sensors zeigen "unavailable" bis der erste Plan berechnet wurde!

PyScript States (1 Stück) - wird AUTOMATISCH erstellt

Dieser State wird beim ersten Aufruf von calculate_charging_schedule() erstellt:

  • pyscript.battery_charging_schedule

Bestehende Entitäten (müssen bereits vorhanden sein)

  • input_boolean.goodwe_manual_control (dein bestehendes System)
  • input_number.charge_power_battery (dein bestehendes System)
  • sensor.openems_ess0_soc (OpenEMS Modbus)
  • sensor.hastrom_flex_pro (Strompreis-Sensor)
  • sensor.energy_production_today (Forecast.Solar Ost)
  • sensor.energy_production_today_2 (Forecast.Solar West)
  • sensor.energy_production_tomorrow (Forecast.Solar Ost)
  • sensor.energy_production_tomorrow_2 (Forecast.Solar West)

Prüfen nach Installation

Schritt 1: Input Helper prüfen

Einstellungen → Geräte & Dienste → Helfer

Suche nach "battery_optimizer" - sollte 10 Einträge zeigen

Schritt 2: Template Sensors prüfen

Entwicklerwerkzeuge → Zustände

Suche nach "battery_" - Template Sensors sollten existieren (können "unavailable" sein)

Schritt 3: Ersten Plan berechnen

Entwicklerwerkzeuge → Dienste
service: pyscript.calculate_charging_schedule

Schritt 4: PyScript State prüfen

Entwicklerwerkzeuge → Zustände

Suche nach "pyscript.battery_charging_schedule" - sollte jetzt existieren!

Schritt 5: Template Sensors sollten jetzt Werte haben

Entwicklerwerkzeuge → Zustände
  • sensor.battery_charging_plan_status sollte z.B. "3 Ladungen geplant" zeigen
  • sensor.battery_next_action sollte nächste Aktion zeigen
  • sensor.battery_estimated_savings zeigt Ersparnis (oder 0)

Fehlende Entitäten beheben

Wenn Input Helper fehlen:

  1. Prüfe ob battery_optimizer_config.yaml richtig in /config/packages/ liegt
  2. Prüfe ob in configuration.yaml Packages aktiviert sind:
    homeassistant:
      packages: !include_dir_named packages
    
  3. Home Assistant neu starten
  4. Logs prüfen auf Fehler

Wenn Template Sensors fehlen:

  1. Prüfe ob der template: Abschnitt in der Config ist
  2. Home Assistant neu starten
  3. Yaml-Konfiguration prüfen in Developer Tools

Wenn PyScript State fehlt:

  1. PyScript muss installiert sein
  2. battery_optimizer.py muss in /config/pyscript/ sein
  3. Dienst pyscript.calculate_charging_schedule manuell aufrufen
  4. Logs prüfen auf Fehler