## 🎯 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>
12 KiB
Home Assistant Entity Validation Report
Generated: 2025-11-19
Summary
This report analyzes all entity references in the OpenEMS battery optimizer configuration files and validates their existence in the Home Assistant system.
Files Analyzed
/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v1/battery_optimizer_rest_commands.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v1/battery_optimizer_config.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v1/battery_optimizer_dashboard.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v1/battery_optimizer_automations.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v1/automation_hourly_execution_DRINGEND.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v2/battery_optimizer_dashboard.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v2/battery_optimizer_config.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/battery_optimizer_dashboard.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/battery_optimizer_dashboard_minimal.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/battery_optimizer_sections_minimal.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/battery_optimizer_dashboard_compact.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/battery_optimizer_sections_compact.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/battery_optimizer_sections_standard.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/battery_optimizer_config.yaml/Users/felix/Nextcloud/AI/projects/homeassistant/openems/rest_requests.yaml
Entity References by Category
Input Boolean Entities
| Entity ID | File(s) | Status |
|---|---|---|
input_boolean.battery_optimizer_enabled |
v1/config.yaml (defined), v1/dashboard.yaml, v1/automations.yaml, v2/dashboard.yaml, v2/config.yaml (defined), v3/all dashboards, openems/config.yaml (defined) | DEFINED ✓ |
input_boolean.battery_optimizer_manual_override |
v1/config.yaml (defined), v1/dashboard.yaml, v1/automations.yaml, v2/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_boolean.goodwe_manual_control |
v2/dashboard.yaml, v3/all dashboards | NEEDS VERIFICATION ⚠️ |
Input Number Entities
| Entity ID | File(s) | Status |
|---|---|---|
input_number.battery_optimizer_min_soc |
v1/config.yaml (defined), v1/dashboard.yaml, v1/automations.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.battery_optimizer_max_soc |
v1/config.yaml (defined), v1/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.battery_optimizer_price_threshold |
v1/config.yaml (defined), v1/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.battery_optimizer_max_charge_power |
v1/config.yaml (defined), v1/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.battery_optimizer_reserve_capacity |
v1/config.yaml (defined), v1/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.battery_optimizer_pv_threshold |
v2/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.battery_capacity_kwh |
v2/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
input_number.charge_power_battery |
v2/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
input_number.battery_min_soc |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
input_number.battery_max_soc |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
input_number.battery_charging_power |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
input_number.battery_reserve_capacity |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
input_number.battery_price_threshold |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
Input Select Entities
| Entity ID | File(s) | Status |
|---|---|---|
input_select.battery_optimizer_strategy |
v1/config.yaml (defined), v1/dashboard.yaml | DEFINED ✓ |
Input Text Entities
| Entity ID | File(s) | Status |
|---|---|---|
input_text.battery_optimizer_status |
v2/dashboard.yaml, v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
Sensor Entities
| Entity ID | File(s) | Status |
|---|---|---|
sensor.battery_state_of_charge |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.nächste_ladestunde |
v1/dashboard.yaml | TEMPLATE SENSOR - defined as template ✓ |
sensor.geplante_ladungen_heute |
v1/dashboard.yaml | TEMPLATE SENSOR - defined as template ✓ |
sensor.hastrom_flex_pro |
v1/config.yaml, v1/dashboard.yaml, v1/automations.yaml | NEEDS VERIFICATION ⚠️ |
sensor.durchschnittspreis_heute |
v1/dashboard.yaml | TEMPLATE SENSOR - defined as template ✓ |
sensor.pv_power |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.battery_power |
v1/dashboard.yaml, v2/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.house_consumption |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.gw_netzbezug |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.gw_netzeinspeisung |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.today_s_pv_generation |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.energy_production_tomorrow |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.energy_production_tomorrow_2 |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.today_battery_charge |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.today_battery_discharge |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.bought_from_grid_today |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.sold_to_grid_today |
v1/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.openems_ess0_soc |
v2/dashboard.yaml | NEEDS VERIFICATION ⚠️ |
sensor.openems_ess0_activepower |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.openems_grid_activepower |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.openems_production_activepower |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.openems_consumption_activepower |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.esssoc |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.hastrom_flex_extended_current_price |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.battery_charging_plan_status |
v2/dashboard.yaml, v3/dashboards, openems/config.yaml (defined) | DEFINED ✓ |
sensor.battery_next_action |
v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
sensor.battery_estimated_savings |
v2/config.yaml (defined), openems/config.yaml (defined) | DEFINED ✓ |
sensor.battery_next_charge_time |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.openems_state |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.battery_capacity |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.openems_ess0_capacity |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.forecast_solar_energy_today |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
sensor.forecast_solar_energy_tomorrow |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
Automation Entities
| Entity ID | File(s) | Status |
|---|---|---|
automation.battery_charging_schedule_calculation |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
automation.battery_charging_schedule_execution |
v3/dashboards | NEEDS VERIFICATION ⚠️ |
PyScript State Entities
| Entity ID | File(s) | Status |
|---|---|---|
pyscript.battery_charging_schedule |
v1/config.yaml, v1/dashboard.yaml, openems/config.yaml | PYSCRIPT ENTITY ✓ |
pyscript.battery_charging_plan |
v3/dashboards | PYSCRIPT ENTITY ✓ |
REST Command Entities
| Entity ID | File(s) | Status |
|---|---|---|
rest_command.set_ess_remote_mode |
v1/rest_commands.yaml (defined), openems/rest_requests.yaml (defined) | DEFINED ✓ |
rest_command.set_ess_internal_mode |
v1/rest_commands.yaml (defined), openems/rest_requests.yaml (defined) | DEFINED ✓ |
Issues Found
1. Entity Name Inconsistencies
Multiple versions use different entity naming conventions:
- V1/V2: Use
input_number.battery_optimizer_*prefix - V3: Use shortened
input_number.battery_*prefix - OpenEMS root: Uses
input_number.battery_optimizer_*prefix
Recommendation: Standardize on one naming convention. Based on the root config file, battery_optimizer_* appears to be the canonical naming.
2. Missing Entity Definitions
The following entities are referenced but not defined in configuration files:
input_boolean.goodwe_manual_controlinput_number.charge_power_battery- All
input_number.battery_*entities (shortened names in v3) - Most OpenEMS sensors (
sensor.openems_*,sensor.esssoc) - haStrom price sensors (
sensor.hastrom_flex_pro,sensor.hastrom_flex_extended_current_price) - Forecast Solar sensors
- Battery status sensors
These may be defined elsewhere in your Home Assistant configuration or created by integrations.
3. Template Sensor Dependencies
Template sensors defined in config files depend on PyScript states that must exist:
# Depends on: pyscript.battery_charging_schedule.schedule
sensor.battery_charging_plan_status
sensor.battery_next_action
sensor.battery_estimated_savings
4. Dashboard References to Non-Existent Entities
V3 dashboards reference entities with different names than those defined in the configuration:
Dashboard uses: input_number.battery_min_soc
Config defines: input_number.battery_optimizer_min_soc
This will cause errors in the dashboard rendering.
Recommendations
Priority 1: Name Standardization
Choose one naming convention and update all files:
Option A (Recommended): Use full battery_optimizer_* names (matches root config)
- Update V3 dashboards to use
battery_optimizer_prefix
Option B: Use shortened battery_* names
- Update root config file and V1/V2 files
- Update automations and PyScript references
Priority 2: Verify Integration-Created Entities
Check that these integrations are properly configured:
- OpenEMS Modbus Integration - Should create
sensor.openems_*entities - haStrom Integration - Should create price sensors
- Forecast.Solar Integration - Should create forecast sensors
Priority 3: Create Missing Helper Entities
If not already created, add these to your configuration:
input_boolean.goodwe_manual_controlinput_number.charge_power_battery- Any
sensor.*entities that aren't integration-provided
Priority 4: PyScript State Verification
Ensure PyScript scripts are creating the expected states:
pyscript.battery_charging_schedulepyscript.battery_charging_plan
Testing Checklist
- Load configuration files and check for YAML errors
- Verify all
input_*helpers exist in Home Assistant UI - Check Developer Tools → States for all referenced sensors
- Verify PyScript states exist after running optimization
- Test dashboard loading - check for "Entity not available" errors
- Verify automations trigger correctly
- Check Home Assistant logs for missing entity warnings
Next Steps
To complete validation, I need access to your Home Assistant system to:
- Query all existing entities via the ha-mcp-server
- Cross-reference with this list
- Provide a definitive "exists/missing" report
Would you like me to:
- Connect to your Home Assistant to verify which entities actually exist?
- Generate corrected configuration files with standardized names?
- Create a consolidated configuration that merges the best from each version?