# Home Assistant Entity Validation Results **Generated:** 2025-11-19 **Home Assistant System:** http://192.168.89.4:8123 **Total Entities in HA:** 2,396 **Entities Validated:** 50 --- ## Executive Summary ### Validation Results - ✓ **26 entities EXIST** in Home Assistant - ✗ **24 entities DO NOT EXIST** in Home Assistant - ⚠️ **2 entities have name mismatches** ### Key Findings 1. **OpenEMS entities are named differently**: Configuration references `sensor.openems_*` but Home Assistant has `sensor.ess*` entities 2. **V3 dashboard naming conflicts**: V3 dashboards use shortened names (`battery_min_soc`) that don't exist; should use `battery_optimizer_min_soc` 3. **Missing template sensors**: Several template sensors are not yet created 4. **No PyScript state entities found**: PyScript scripts haven't been run yet 5. **Forecast Solar integration not configured**: No forecast sensors available --- ## Detailed Validation Results ### ✓ INPUT BOOLEAN ENTITIES (3/3 exist) | Entity ID | Status | Current State | |-----------|--------|---------------| | `input_boolean.battery_optimizer_enabled` | ✓ EXISTS | on | | `input_boolean.battery_optimizer_manual_override` | ✓ EXISTS | off | | `input_boolean.goodwe_manual_control` | ✓ EXISTS | off | **All input_boolean entities exist!** --- ### INPUT NUMBER ENTITIES (9/13 exist) #### ✓ Entities that EXIST | Entity ID | Status | Current State | |-----------|--------|---------------| | `input_number.battery_capacity_kwh` | ✓ EXISTS | 10.0 | | `input_number.battery_optimizer_max_charge_power` | ✓ EXISTS | 5000.0 | | `input_number.battery_optimizer_max_soc` | ✓ EXISTS | 100.0 | | `input_number.battery_optimizer_min_soc` | ✓ EXISTS | 20.0 | | `input_number.battery_optimizer_price_threshold` | ✓ EXISTS | 28.0 | | `input_number.battery_optimizer_pv_threshold` | ✓ EXISTS | 500.0 | | `input_number.battery_optimizer_reserve_capacity` | ✓ EXISTS | 2.0 | | `input_number.charge_power_battery` | ✓ EXISTS | 1000.0 | #### ✗ Entities that DO NOT EXIST | Entity ID | Status | Issue | |-----------|--------|-------| | `input_number.battery_charging_power` | ✗ MISSING | V3 dashboards use this - should use `battery_optimizer_max_charge_power` | | `input_number.battery_max_soc` | ✗ MISSING | V3 dashboards use this - should use `battery_optimizer_max_soc` | | `input_number.battery_min_soc` | ✗ MISSING | V3 dashboards use this - should use `battery_optimizer_min_soc` | | `input_number.battery_price_threshold` | ✗ MISSING | V3 dashboards use this - should use `battery_optimizer_price_threshold` | | `input_number.battery_reserve_capacity` | ✗ MISSING | V3 dashboards use this - should use `battery_optimizer_reserve_capacity` | **Recommendation:** Update V3 dashboards to use the `battery_optimizer_*` prefix for all input_number entities. --- ### INPUT SELECT ENTITIES (0/1 exist) | Entity ID | Status | Issue | |-----------|--------|-------| | `input_select.battery_optimizer_strategy` | ✗ MISSING | Needs to be created | **Action Required:** Create this input_select helper in Home Assistant UI or configuration. --- ### INPUT TEXT ENTITIES (0/1 exist - but similar exists) | Entity ID | Status | Issue | |-----------|--------|-------| | `input_text.battery_optimizer_status` | ⚠️ NAME MISMATCH | Home Assistant has `input_text.battery_optimizer_status_2` instead | **Recommendation:** Either: 1. Rename `input_text.battery_optimizer_status_2` to `input_text.battery_optimizer_status`, OR 2. Update configuration files to reference `input_text.battery_optimizer_status_2` --- ### SENSOR ENTITIES (17/30 exist) #### ✓ Entities that EXIST | Entity ID | Status | Current State | |-----------|--------|---------------| | `sensor.battery_power` | ✓ EXISTS | -26 (W) | | `sensor.battery_state_of_charge` | ✓ EXISTS | 18 (%) | | `sensor.bought_from_grid_today` | ✓ EXISTS | 19.292 (kWh) | | `sensor.energy_production_tomorrow` | ✓ EXISTS | 3.522 (kWh) | | `sensor.energy_production_tomorrow_2` | ✓ EXISTS | 3.639 (kWh) | | `sensor.esssoc` | ✓ EXISTS | 18 (%) | | `sensor.gw_netzbezug` | ✓ EXISTS | 958.0 (W) | | `sensor.gw_netzeinspeisung` | ✓ EXISTS | 0 (W) | | `sensor.hastrom_flex_pro` | ✓ EXISTS | 28.73 (ct/kWh) | | `sensor.house_consumption` | ✓ EXISTS | 932 (W) | | `sensor.pv_power` | ✓ EXISTS | 0 (W) | | `sensor.sold_to_grid_today` | ✓ EXISTS | 0.015 (kWh) | | `sensor.today_battery_charge` | ✓ EXISTS | 0.5 (kWh) | | `sensor.today_battery_discharge` | ✓ EXISTS | 0.0 (kWh) | | `sensor.today_s_pv_generation` | ✓ EXISTS | 2.9 (kWh) | #### ⚠️ Entities with NAME MISMATCHES | Config References | Home Assistant Has | Issue | |-------------------|-------------------|-------| | `sensor.hastrom_flex_extended_current_price` | `sensor.hastrom_flex_ext` | Wrong entity name in config | **Recommendation:** Update configuration to use `sensor.hastrom_flex_ext` instead of `sensor.hastrom_flex_extended_current_price`. #### ✗ Template Sensors that DO NOT EXIST (need to be created) | Entity ID | Status | Issue | |-----------|--------|-------| | `sensor.battery_charging_plan_status` | ✗ MISSING | Template sensor defined in config - may show as unavailable until PyScript runs | | `sensor.battery_estimated_savings` | ✗ MISSING | Template sensor defined in config - may show as unavailable until PyScript runs | | `sensor.battery_next_action` | ✗ MISSING | Template sensor defined in config - may show as unavailable until PyScript runs | | `sensor.battery_next_charge_time` | ✗ MISSING | Needs to be created | | `sensor.battery_capacity` | ✗ MISSING | Needs to be created (or use `sensor.esscapacity`) | **Note:** Template sensors `sensor.geplante_ladungen_heute` and `sensor.durchschnittspreis_heute` exist but show as "unavailable" - this is expected until PyScript populates the data. #### ✗ OpenEMS Sensors DO NOT EXIST (but ESS sensors do!) **CRITICAL FINDING:** Configuration files reference `sensor.openems_*` entities, but Home Assistant uses `sensor.ess*` naming convention! | Config References | Home Assistant Has | Current State | |-------------------|-------------------|---------------| | `sensor.openems_ess0_soc` | `sensor.esssoc` | 18 % | | `sensor.openems_ess0_activepower` | `sensor.essactivepower` | -26 W | | `sensor.openems_ess0_capacity` | `sensor.esscapacity` | 10000 Wh | | `sensor.openems_grid_activepower` | ❓ (see below) | - | | `sensor.openems_production_activepower` | `sensor.pv_power` | 0 W | | `sensor.openems_consumption_activepower` | `sensor.house_consumption` | 932 W | | `sensor.openems_state` | ✗ MISSING | Needs verification | **Available ESS Sensors in Home Assistant:** ``` sensor.essactivechargeenergy 44088.00 Wh sensor.essactivedischargeenergy 214511.00 Wh sensor.essactivepower -26.00 W (negative = charging) sensor.essactivepowerl1 -8.00 W sensor.essactivepowerl2 -8.00 W sensor.essactivepowerl3 -8.00 W sensor.esscapacity 10000.00 Wh sensor.essdcchargeenergy 107649.00 Wh sensor.essdcchargeenergykwh 107.649 kWh sensor.essdcdischargeenergy 84416.00 Wh sensor.essdcdischargeenergykwh 84.416 kWh sensor.essdischargepower -26.00 W sensor.essmaxpowersetpoint 9690.00 W sensor.essminpowersetpoint -10000.00 W sensor.essreactivepower 0.00 VAr sensor.esssoc 18 % ``` **Recommendation:** Update all configuration files to use `sensor.ess*` instead of `sensor.openems_*`. #### ✗ Forecast Solar Sensors DO NOT EXIST | Entity ID | Status | Issue | |-----------|--------|-------| | `sensor.forecast_solar_energy_today` | ✗ MISSING | Forecast.Solar integration not configured | | `sensor.forecast_solar_energy_tomorrow` | ✗ MISSING | Forecast.Solar integration not configured | **Action Required:** Install and configure the Forecast.Solar integration if solar forecasting is needed. --- ### AUTOMATION ENTITIES (0/2 exist) | Entity ID | Status | Issue | |-----------|--------|-------| | `automation.battery_charging_schedule_calculation` | ✗ MISSING | Automation not created yet | | `automation.battery_charging_schedule_execution` | ✗ MISSING | Automation not created yet | **Note:** These automations are defined in configuration files but haven't been loaded yet. --- ### PYSCRIPT ENTITIES (0/2 exist) | Entity ID | Status | Issue | |-----------|--------|-------| | `pyscript.battery_charging_schedule` | ✗ MISSING | PyScript hasn't run yet - will be created when script executes | | `pyscript.battery_charging_plan` | ✗ MISSING | PyScript hasn't run yet - will be created when script executes | **Note:** PyScript state entities are created dynamically when the PyScript runs. They don't exist until the script is executed at least once. --- ### REST COMMAND ENTITIES (2/2 exist) | Entity ID | Status | Note | |-----------|--------|------| | `rest_command.set_ess_remote_mode` | ✓ DEFINED | Defined in configuration (not visible in states) | | `rest_command.set_ess_internal_mode` | ✓ DEFINED | Defined in configuration (not visible in states) | **Note:** REST commands are defined in configuration files and won't appear in the entity states list. --- ## Integration Status ### ✓ haStrom Integration - CONFIGURED **Available Entities:** - `sensor.hastrom_flex` (29.83 ct/kWh) - `sensor.hastrom_flex_ext` (28.73 ct/kWh) - `sensor.hastrom_flex_pro` (28.73 ct/kWh) - `sensor.hastrom_flex_pro_ext` - `sensor.hastrom_flex_price_euro_per_mwh` - `automation.hastrom_flex_update` ### ✓ GoodWe Integration - CONFIGURED **Available Entities:** - `sensor.goodwe_control_status` (Inaktiv) - `sensor.gw_batterie_entladeleistung` (0 W) - `sensor.gw_batterie_ladeleistung` (26.0 W) - `sensor.gw_netzbezug` (958.0 W) - `sensor.gw_netzeinspeisung` (0 W) - `input_boolean.goodwe_manual_control` (off) - `automation.goodwe_manuelle_steuerung_sender` (on) - `number.goodwe_shutdown_soc` (20.0 %) ### ⚠️ OpenEMS Integration - CONFIGURED (different naming) The system has ESS sensors but they use different names than referenced in configuration: - Uses `sensor.ess*` instead of `sensor.openems_*` - All battery functionality is present, just needs entity name updates in config ### ✗ Forecast.Solar Integration - NOT CONFIGURED No forecast solar entities found. Installation required if solar forecasting is needed. --- ## Critical Issues & Recommendations ### Priority 1: Fix OpenEMS Entity Names **Issue:** All V2 and V3 configuration files reference `sensor.openems_*` entities that don't exist. **Solution:** Replace all occurrences: - `sensor.openems_ess0_soc` → `sensor.esssoc` - `sensor.openems_ess0_activepower` → `sensor.essactivepower` - `sensor.openems_ess0_capacity` → `sensor.esscapacity` - `sensor.openems_production_activepower` → `sensor.pv_power` - `sensor.openems_consumption_activepower` → `sensor.house_consumption` **Files to Update:** - `/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v2/battery_optimizer_dashboard.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` ### Priority 2: Fix V3 Dashboard Naming **Issue:** V3 dashboards use shortened entity names that don't exist. **Solution:** Update V3 dashboards to use full `battery_optimizer_*` prefix: - `input_number.battery_min_soc` → `input_number.battery_optimizer_min_soc` - `input_number.battery_max_soc` → `input_number.battery_optimizer_max_soc` - `input_number.battery_charging_power` → `input_number.battery_optimizer_max_charge_power` - `input_number.battery_reserve_capacity` → `input_number.battery_optimizer_reserve_capacity` - `input_number.battery_price_threshold` → `input_number.battery_optimizer_price_threshold` **Files to Update:** - All files in `/Users/felix/Nextcloud/AI/projects/homeassistant/openems/v3/` ### Priority 3: Fix haStrom Sensor Name **Issue:** Configuration uses wrong entity name for haStrom extended price. **Solution:** - Replace `sensor.hastrom_flex_extended_current_price` with `sensor.hastrom_flex_ext` ### Priority 4: Create Missing Helper Entities **Entities to Create:** 1. **input_select.battery_optimizer_strategy** ```yaml input_select: battery_optimizer_strategy: name: Battery Optimizer Strategy options: - "Price Optimized" - "Solar Optimized" - "Mixed" initial: "Price Optimized" ``` 2. **Rename input_text.battery_optimizer_status_2** - Use Home Assistant UI to rename to `battery_optimizer_status` - Or update config files to use `battery_optimizer_status_2` ### Priority 5: Create Missing Template Sensors The following template sensors are defined in config but show as "unavailable" - verify they're properly configured: - `sensor.battery_charging_plan_status` - `sensor.battery_next_action` - `sensor.battery_estimated_savings` ### Priority 6: Run PyScript PyScript state entities won't exist until the scripts run at least once: - `pyscript.battery_charging_schedule` - `pyscript.battery_charging_plan` **Action:** Trigger the PyScript manually or wait for first scheduled execution. ### Priority 7: Load Missing Automations The following automations are defined but not loaded: - `automation.battery_charging_schedule_calculation` - `automation.battery_charging_schedule_execution` **Action:** Ensure automation configuration files are included in `configuration.yaml`. ### Optional: Install Forecast.Solar Integration If solar forecasting is desired: 1. Install Forecast.Solar integration via HACS or manually 2. Configure with your solar panel details 3. This will provide `sensor.forecast_solar_energy_today` and `sensor.forecast_solar_energy_tomorrow` --- ## Entity Mapping Reference ### Current State Mappings | What Exists in HA | What Config Files Should Use | |-------------------|------------------------------| | `sensor.esssoc` | `sensor.openems_ess0_soc` (needs update) | | `sensor.essactivepower` | `sensor.openems_ess0_activepower` (needs update) | | `sensor.esscapacity` | `sensor.openems_ess0_capacity` (needs update) | | `sensor.hastrom_flex_ext` | `sensor.hastrom_flex_extended_current_price` (needs update) | | `input_text.battery_optimizer_status_2` | `input_text.battery_optimizer_status` (needs rename) | | `input_number.battery_optimizer_min_soc` | `input_number.battery_min_soc` (V3 needs update) | | `input_number.battery_optimizer_max_soc` | `input_number.battery_max_soc` (V3 needs update) | | `input_number.battery_optimizer_max_charge_power` | `input_number.battery_charging_power` (V3 needs update) | --- ## Testing Checklist - [ ] Update all `sensor.openems_*` references to `sensor.ess*` - [ ] Update V3 dashboard entity names to use `battery_optimizer_*` prefix - [ ] Fix `sensor.hastrom_flex_extended_current_price` → `sensor.hastrom_flex_ext` - [ ] Create `input_select.battery_optimizer_strategy` - [ ] Rename or update references for `input_text.battery_optimizer_status` - [ ] Reload configuration files - [ ] Check Developer Tools → States for all entities - [ ] Verify dashboards load without "Entity not available" errors - [ ] Run PyScript manually to create state entities - [ ] Verify automations are loaded - [ ] Check Home Assistant logs for any remaining errors --- ## Summary Statistics ### Overall Entity Status | Category | Exists | Missing | Mismatch | Total | |----------|--------|---------|----------|-------| | input_boolean | 3 | 0 | 0 | 3 | | input_number | 8 | 5 | 0 | 13 | | input_select | 0 | 1 | 0 | 1 | | input_text | 0 | 0 | 1 | 1 | | sensor | 17 | 12 | 1 | 30 | | automation | 0 | 2 | 0 | 2 | | **TOTAL** | **28** | **20** | **2** | **50** | ### Files Requiring Updates 1. **V2 Dashboard** (1 file) - OpenEMS entity names 2. **V3 Dashboards** (7 files) - Both OpenEMS names AND input_number names 3. **All configs using haStrom** - Fix sensor name 4. **Configuration.yaml** - Add missing input_select, verify template sensors --- **Next Steps:** Would you like me to create corrected versions of the configuration files with all entity names fixed?