## 🎯 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>
131 lines
14 KiB
Plaintext
131 lines
14 KiB
Plaintext
|
|
╔════════════════════════════════════════════════════════════════════════════╗
|
|
║ HOME ASSISTANT ENTITY VALIDATION - VISUAL SUMMARY ║
|
|
╚════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ INPUT_BOOLEAN ENTITIES (3/3) ✓ 100% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ ✓ input_boolean.battery_optimizer_enabled State: on │
|
|
│ ✓ input_boolean.battery_optimizer_manual_override State: off │
|
|
│ ✓ input_boolean.goodwe_manual_control State: off │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ INPUT_NUMBER ENTITIES (8/13) ⚠️ 62% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ ✓ input_number.battery_capacity_kwh State: 10.0 │
|
|
│ ✓ input_number.battery_optimizer_max_charge_power State: 5000.0 │
|
|
│ ✓ input_number.battery_optimizer_max_soc State: 100.0 │
|
|
│ ✓ input_number.battery_optimizer_min_soc State: 20.0 │
|
|
│ ✓ input_number.battery_optimizer_price_threshold State: 28.0 │
|
|
│ ✓ input_number.battery_optimizer_pv_threshold State: 500.0 │
|
|
│ ✓ input_number.battery_optimizer_reserve_capacity State: 2.0 │
|
|
│ ✓ input_number.charge_power_battery State: 1000.0 │
|
|
│ │
|
|
│ ✗ input_number.battery_charging_power (V3 name conflict) │
|
|
│ ✗ input_number.battery_max_soc (V3 name conflict) │
|
|
│ ✗ input_number.battery_min_soc (V3 name conflict) │
|
|
│ ✗ input_number.battery_price_threshold (V3 name conflict) │
|
|
│ ✗ input_number.battery_reserve_capacity (V3 name conflict) │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ INPUT_SELECT ENTITIES (0/1) ✗ 0% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ ✗ input_select.battery_optimizer_strategy (NEEDS CREATION) │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ INPUT_TEXT ENTITIES (0/1) ⚠️ 0% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ ⚠️ input_text.battery_optimizer_status │
|
|
│ → HA has: input_text.battery_optimizer_status_2 instead │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ SENSOR ENTITIES (17/30) ⚠️ 57% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ EXISTING SENSORS: │
|
|
│ ✓ sensor.battery_power State: -26 │
|
|
│ ✓ sensor.battery_state_of_charge State: 18% │
|
|
│ ✓ sensor.esssoc State: 18% │
|
|
│ ✓ sensor.hastrom_flex_pro State: 28.73 │
|
|
│ ✓ sensor.pv_power State: 0 │
|
|
│ ✓ sensor.house_consumption State: 932 │
|
|
│ ✓ sensor.gw_netzbezug State: 958.0 │
|
|
│ ... and 10 more existing sensors │
|
|
│ │
|
|
│ OPENEMS NAMING ISSUES (CRITICAL): │
|
|
│ ✗ sensor.openems_ess0_soc → Should be: sensor.esssoc │
|
|
│ ✗ sensor.openems_ess0_activepower → Should be: sensor.essactivepower │
|
|
│ ✗ sensor.openems_ess0_capacity → Should be: sensor.esscapacity │
|
|
│ ✗ sensor.openems_production_activepower → Should be: sensor.pv_power │
|
|
│ ✗ sensor.openems_consumption_activepower → Should be: sensor.house_* │
|
|
│ │
|
|
│ OTHER ISSUES: │
|
|
│ ⚠️ sensor.hastrom_flex_extended_current_price │
|
|
│ → Should be: sensor.hastrom_flex_ext │
|
|
│ ✗ sensor.forecast_solar_energy_today (Integration not installed) │
|
|
│ ✗ sensor.forecast_solar_energy_tomorrow (Integration not installed) │
|
|
│ ✗ Template sensors (3) - PyScript not run yet │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ AUTOMATION ENTITIES (0/2) ✗ 0% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ ✗ automation.battery_charging_schedule_calculation (Not loaded) │
|
|
│ ✗ automation.battery_charging_schedule_execution (Not loaded) │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────┐
|
|
│ PYSCRIPT ENTITIES (0/2) ⏳ 0% │
|
|
├────────────────────────────────────────────────────────────────────────────┤
|
|
│ ⏳ pyscript.battery_charging_schedule (Created when script runs) │
|
|
│ ⏳ pyscript.battery_charging_plan (Created when script runs) │
|
|
└────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
╔════════════════════════════════════════════════════════════════════════════╗
|
|
║ OVERALL STATISTICS ║
|
|
╠════════════════════════════════════════════════════════════════════════════╣
|
|
║ Total Entities Validated: 50 ║
|
|
║ ✓ Entities that EXIST: 26 (52%) ║
|
|
║ ✗ Entities MISSING: 24 (48%) ║
|
|
║ ⚠️ Name Mismatches: 2 ║
|
|
╚════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
╔════════════════════════════════════════════════════════════════════════════╗
|
|
║ INTEGRATION STATUS CHECK ║
|
|
╠════════════════════════════════════════════════════════════════════════════╣
|
|
║ ✓ haStrom Integration: CONFIGURED (6 entities) ║
|
|
║ ✓ GoodWe Integration: CONFIGURED (10 entities) ║
|
|
║ ✓ ESS/Battery System: CONFIGURED (16 ESS sensors) ║
|
|
║ ⚠️ OpenEMS Naming: MISCONFIGURED (wrong entity names) ║
|
|
║ ✗ Forecast.Solar: NOT INSTALLED ║
|
|
╚════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
╔════════════════════════════════════════════════════════════════════════════╗
|
|
║ RECOMMENDED ACTIONS ║
|
|
╠════════════════════════════════════════════════════════════════════════════╣
|
|
║ 🔴 PRIORITY 1 - Fix OpenEMS entity names (affects 8 files) ║
|
|
║ → Replace all sensor.openems_* with sensor.ess* ║
|
|
║ ║
|
|
║ 🔴 PRIORITY 2 - Fix V3 dashboard names (affects 7 files) ║
|
|
║ → Replace shortened names with battery_optimizer_* prefix ║
|
|
║ ║
|
|
║ 🟡 PRIORITY 3 - Fix haStrom sensor name ║
|
|
║ → Replace hastrom_flex_extended_current_price with hastrom_flex_ext ║
|
|
║ ║
|
|
║ 🟢 PRIORITY 4 - Create missing helper ║
|
|
║ → Create input_select.battery_optimizer_strategy ║
|
|
║ ║
|
|
║ 🟢 PRIORITY 5 - Load automations ║
|
|
║ → Ensure automation files are included in configuration.yaml ║
|
|
╚════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
📄 DETAILED REPORTS CREATED:
|
|
→ entity_validation_results.md (Full detailed report)
|
|
→ entity_fix_quick_reference.md (Quick search/replace guide)
|
|
→ VALIDATION_SUMMARY.txt (This visual summary)
|
|
|