Files
battery-charging-optimizer/README_VALIDATION.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

258 lines
7.4 KiB
Markdown

# Home Assistant Entity Validation - Report Index
**Validation Date:** 2025-11-19
**Home Assistant URL:** http://192.168.89.4:8123
**Connection Status:** ✓ Successfully Connected
**Total HA Entities:** 2,396
**Entities Validated:** 50
---
## Quick Status
| Status | Count | Percentage |
|--------|-------|------------|
| ✓ Entities EXIST | 26 | 52% |
| ✗ Entities MISSING | 24 | 48% |
| ⚠️ Name Mismatches | 2 | 4% |
---
## Report Files
### 1. **VALIDATION_SUMMARY.txt** (START HERE)
**Path:** `/Users/felix/Nextcloud/AI/projects/homeassistant/VALIDATION_SUMMARY.txt`
Visual summary with box diagrams showing entity status by category. Best for quick overview.
**Contains:**
- Entity breakdown by type (input_boolean, input_number, sensor, etc.)
- Color-coded status indicators
- Integration status check
- Priority action list
---
### 2. **entity_validation_results.md** (COMPREHENSIVE REPORT)
**Path:** `/Users/felix/Nextcloud/AI/projects/homeassistant/entity_validation_results.md`
Complete detailed validation report with full analysis and recommendations.
**Contains:**
- Executive summary with key findings
- Detailed entity-by-entity validation with current states
- Critical issues and their impact
- Step-by-step fix recommendations
- Entity mapping reference table
- Testing checklist
---
### 3. **entity_fix_quick_reference.md** (ACTION GUIDE)
**Path:** `/Users/felix/Nextcloud/AI/projects/homeassistant/entity_fix_quick_reference.md`
Quick reference guide for fixing entity name issues. Use this for actual implementation.
**Contains:**
- Global search & replace operations
- Entities to create in HA
- Files that need updates
- Quick verification commands
- Entity name lookup table
---
### 4. **entity_validation_report.md** (ORIGINAL ANALYSIS)
**Path:** `/Users/felix/Nextcloud/AI/projects/homeassistant/entity_validation_report.md`
Original validation report created before connecting to Home Assistant (static analysis only).
---
## Critical Findings Summary
### 1. OpenEMS Entity Naming Mismatch (CRITICAL)
**Problem:** Configuration files use `sensor.openems_*` but Home Assistant has `sensor.ess*`
**Impact:** All V2 and V3 dashboards won't display battery data
**Required Changes:**
```
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 Affected:** 8 dashboard files in `/openems/v2/` and `/openems/v3/`
---
### 2. V3 Dashboard Naming Conflict (CRITICAL)
**Problem:** V3 dashboards use shortened names like `battery_min_soc` instead of `battery_optimizer_min_soc`
**Impact:** V3 dashboards show "entity unavailable" errors
**Required Changes:**
```
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 Affected:** 7 dashboard files in `/openems/v3/`
---
### 3. haStrom Sensor Name (MEDIUM)
**Problem:** Config uses `sensor.hastrom_flex_extended_current_price` but HA has `sensor.hastrom_flex_ext`
**Required Change:**
```
sensor.hastrom_flex_extended_current_price → sensor.hastrom_flex_ext
```
---
### 4. Missing Entities (LOW)
**Entities to Create:**
- `input_select.battery_optimizer_strategy` (helper entity)
**Entities to Rename:**
- `input_text.battery_optimizer_status_2``input_text.battery_optimizer_status`
**Automations to Load:**
- `automation.battery_charging_schedule_calculation`
- `automation.battery_charging_schedule_execution`
---
## What Works Right Now
**All Input Boolean Helpers** (3/3 entities)
- battery_optimizer_enabled (currently ON)
- battery_optimizer_manual_override (currently OFF)
- goodwe_manual_control (currently OFF)
**Most Input Number Helpers** (8/13 entities)
- All `battery_optimizer_*` prefixed entities exist and have valid values
**haStrom Price Integration** (6 entities)
- Current price: 28.73 ct/kWh (sensor.hastrom_flex_ext)
**GoodWe Battery Integration** (10 entities)
- Battery currently charging at 26W
**ESS Battery System** (16 sensors)
- Current SOC: 18%
- Current power: -26W (charging)
- Capacity: 10,000 Wh (10 kWh)
---
## Integration Status
| Integration | Status | Entities | Notes |
|-------------|--------|----------|-------|
| haStrom (Price) | ✓ Working | 6 | Providing real-time pricing |
| GoodWe (Inverter) | ✓ Working | 10 | Battery control active |
| ESS (Battery) | ⚠️ Misconfigured | 16 | Works but wrong names in config |
| Forecast.Solar | ✗ Not Installed | 0 | Optional - for solar forecasting |
---
## Recommended Action Plan
### Phase 1: Critical Fixes (Required for dashboards to work)
1. Update all OpenEMS sensor names in 8 files
2. Update all V3 input_number names in 7 files
3. Test dashboard loading
### Phase 2: Configuration Cleanup
1. Fix haStrom sensor name
2. Create `input_select.battery_optimizer_strategy`
3. Rename or update `input_text.battery_optimizer_status`
### Phase 3: Complete Setup
1. Load missing automations
2. Run PyScript to create state entities
3. (Optional) Install Forecast.Solar integration
---
## How to Use These Reports
1. **First Time?** → Read `VALIDATION_SUMMARY.txt` for quick overview
2. **Need Details?** → Read `entity_validation_results.md` for full analysis
3. **Ready to Fix?** → Use `entity_fix_quick_reference.md` for exact commands
4. **Implementing?** → Follow the action plan above
---
## Validation Methodology
1. Connected to Home Assistant REST API at http://192.168.89.4:8123
2. Retrieved all 2,396 entities from the system
3. Cross-referenced with 50 entities from configuration files
4. Checked for:
- Exact entity ID matches
- Similar entity names (fuzzy matching)
- Integration-specific entities
- Current states and values
---
## Files Analyzed
Configuration files validated against Home Assistant:
- `/openems/v1/*.yaml` (4 files)
- `/openems/v2/*.yaml` (2 files)
- `/openems/v3/*.yaml` (7 files)
- `/openems/*.yaml` (2 files)
Total: 15 configuration files
---
## Support Information
**HA-MCP-Server Configuration:**
- Docker image: `ha-mcp-server:latest`
- Network: host mode
- Base URL: http://192.168.89.4:8123
**Available ESS Sensors (for reference):**
```
sensor.esssoc # State of Charge (%)
sensor.essactivepower # Current Power (W)
sensor.esscapacity # Capacity (Wh)
sensor.essactivechargeenergy # Total Charge Energy
sensor.essactivedischargeenergy # Total Discharge Energy
sensor.essdischargepower # Discharge Power
sensor.essmaxpowersetpoint # Max Power Setpoint
sensor.essminpowersetpoint # Min Power Setpoint
... and 8 more ESS sensors
```
---
## Questions?
For questions about:
- **Entity naming issues** → See `entity_fix_quick_reference.md`
- **What entities exist** → See `entity_validation_results.md`
- **How to fix configs** → Follow the action plan above
- **Why entities are missing** → Check the "Critical Findings" section
---
**Last Updated:** 2025-11-19
**Validated By:** Home Assistant Entity Validator via ha-mcp-server