Update: Battery Optimizer v3.4.0 mit allen Fixes und Features
This commit is contained in:
199
legacy/v3/00_START_HIER.md
Normal file
199
legacy/v3/00_START_HIER.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# 🎯 Dashboard-Überarbeitung: Batterie-Optimierung
|
||||
|
||||
## 📦 Was ist enthalten?
|
||||
|
||||
Ich habe **3 komplett überarbeitete Dashboard-Varianten** für dein Batterie-Optimierungssystem erstellt:
|
||||
|
||||
### ✨ Die Dashboards
|
||||
|
||||
| Datei | Größe | Beste für | Spalten |
|
||||
|-------|-------|-----------|---------|
|
||||
| **battery_optimizer_dashboard.yaml** | 11 KB | Desktop, Details | 2-4 |
|
||||
| **battery_optimizer_dashboard_compact.yaml** | 8 KB | Tablet, Balance | 2-4 |
|
||||
| **battery_optimizer_dashboard_minimal.yaml** | 6 KB | Smartphone, Quick | 2-3 |
|
||||
|
||||
### 📖 Die Dokumentation
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
| **QUICKSTART.md** | ⚡ 3-Minuten Installation |
|
||||
| **README_Dashboard.md** | 📚 Vollständige Anleitung |
|
||||
| **DASHBOARD_COMPARISON.md** | 📊 Visueller Vergleich |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Los geht's!
|
||||
|
||||
### Für Eilige (3 Minuten):
|
||||
👉 **Lies zuerst: `QUICKSTART.md`**
|
||||
|
||||
### Für Detailverliebte (10 Minuten):
|
||||
👉 **Lies zuerst: `README_Dashboard.md`**
|
||||
|
||||
### Für Unentschlossene (5 Minuten):
|
||||
👉 **Lies zuerst: `DASHBOARD_COMPARISON.md`**
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Hauptunterschiede
|
||||
|
||||
### Was ist neu gegenüber dem alten Dashboard?
|
||||
|
||||
✅ **Maximal 4 Spalten** - keine unübersichtlichen 6+ Spalten mehr
|
||||
✅ **Moderne Cards** - Bubble Cards & Stack-in-Card statt nur Entities
|
||||
✅ **Power Flow Visualisierung** - Energie-Fluss auf einen Blick
|
||||
✅ **Bessere Graphen** - Plotly statt einfachen History Graphs
|
||||
✅ **Responsive Layout** - Passt sich an Desktop/Tablet/Smartphone an
|
||||
✅ **Klare Struktur** - Logische Gruppierung nach Funktion
|
||||
✅ **Weniger Scroll** - Kompaktere Darstellung wichtiger Infos
|
||||
|
||||
---
|
||||
|
||||
## 💡 Meine Empfehlung für dich
|
||||
|
||||
Basierend auf deinem Setup würde ich starten mit:
|
||||
|
||||
**1. Wahl: KOMPAKT-Version**
|
||||
- Beste Balance zwischen Detail und Übersicht
|
||||
- Nutzt deine installierten HACS Cards optimal
|
||||
- Funktioniert super auf Tablet UND Desktop
|
||||
- Nicht zu überladen, aber alle wichtigen Infos
|
||||
|
||||
**Datei:** `battery_optimizer_dashboard_compact.yaml`
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Verwendete Custom Cards
|
||||
|
||||
Alle diese Cards hast du bereits via HACS installiert:
|
||||
|
||||
- ✅ **Bubble Card** - Moderne Buttons & Toggles
|
||||
- ✅ **Plotly Graph Card** - Interaktive Graphen
|
||||
- ✅ **Power Flow Card Plus** - Energie-Visualisierung
|
||||
- ✅ **Stack-in-Card** - Kompaktes Layout
|
||||
|
||||
➡️ **Keine zusätzlichen Installationen nötig!**
|
||||
|
||||
---
|
||||
|
||||
## 📱 Geräte-Empfehlungen
|
||||
|
||||
| Dein Gerät | Dashboard-Version |
|
||||
|------------|-------------------|
|
||||
| 💻 Desktop (>1920px) | KOMPAKT oder STANDARD |
|
||||
| 💻 Laptop (1366-1920px) | KOMPAKT ⭐ |
|
||||
| 📱 Tablet (768-1366px) | KOMPAKT ⭐⭐⭐ |
|
||||
| 📱 Smartphone (<768px) | MINIMAL ⭐⭐⭐ |
|
||||
| 🖼️ Wall Panel (fest) | KOMPAKT oder MINIMAL |
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Wichtig vor der Installation
|
||||
|
||||
### Entity-IDs prüfen!
|
||||
|
||||
Die Dashboards verwenden diese Entities - **prüfe ob sie bei dir existieren:**
|
||||
|
||||
```yaml
|
||||
# Hauptentities:
|
||||
sensor.openems_ess0_activepower # Batterie-Leistung
|
||||
sensor.esssoc # Batterie SOC
|
||||
sensor.openems_grid_activepower # Netz
|
||||
sensor.openems_production_activepower # PV
|
||||
sensor.hastrom_flex_extended_current_price # Preis
|
||||
|
||||
# Plan-Entities:
|
||||
pyscript.battery_charging_plan # Ladeplan
|
||||
sensor.battery_charging_plan_status # Status
|
||||
sensor.battery_next_charge_time # Nächste Ladung
|
||||
|
||||
# Steuerung:
|
||||
input_boolean.battery_optimizer_enabled
|
||||
input_boolean.goodwe_manual_control
|
||||
```
|
||||
|
||||
**So prüfst du:**
|
||||
1. Home Assistant → **Entwicklerwerkzeuge** → **Zustände**
|
||||
2. Suche nach den Entity-IDs
|
||||
3. Falls anders: Im Dashboard anpassen (Suchen & Ersetzen)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Nächste Schritte
|
||||
|
||||
Nach erfolgreicher Dashboard-Installation:
|
||||
|
||||
1. ✅ **Plan-Historie implementieren** (aus vorigem Chat)
|
||||
2. ✅ **InfluxDB-Integration** für Langzeitdaten
|
||||
3. ✅ **Notifications** bei Ladestart/-ende
|
||||
4. ✅ **Grafana-Dashboard** als Alternative
|
||||
|
||||
Willst du mit einem dieser Punkte weitermachen?
|
||||
|
||||
---
|
||||
|
||||
## 📊 Visualisierung
|
||||
|
||||
### Was zeigen die Dashboards?
|
||||
|
||||
**Alle Versionen zeigen:**
|
||||
- 🔋 Energie-Fluss (Power Flow Card)
|
||||
- 📅 Geplante Ladestunden
|
||||
- 💶 Strompreis-Verlauf
|
||||
- 📈 Batterie SOC-Trend
|
||||
- 🎛️ Steuerung (Auto/Manuell)
|
||||
|
||||
**Zusätzlich in Standard/Kompakt:**
|
||||
- ⚡ Energie-Flüsse (PV/Netz/Batterie)
|
||||
- 📊 Detaillierte Plan-Statistiken
|
||||
- 🗂️ Vollständige Plan-Tabelle
|
||||
|
||||
**Nur in Standard:**
|
||||
- ℹ️ Erweiterte System-Infos
|
||||
- 🔍 Noch mehr Details
|
||||
|
||||
---
|
||||
|
||||
## ✅ Installation Checklist
|
||||
|
||||
- [ ] Dashboard-Variante gewählt
|
||||
- [ ] `QUICKSTART.md` gelesen
|
||||
- [ ] Entity-IDs geprüft
|
||||
- [ ] YAML-Datei in HA eingefügt
|
||||
- [ ] Browser-Cache geleert
|
||||
- [ ] Dashboard getestet
|
||||
- [ ] Auf verschiedenen Geräten geprüft
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Bei Problemen
|
||||
|
||||
**Erste Hilfe:**
|
||||
1. Browser-Cache leeren (Strg+Shift+R)
|
||||
2. Entity-IDs in Developer Tools prüfen
|
||||
3. Home Assistant Logs checken
|
||||
4. Browser-Konsole checken (F12)
|
||||
|
||||
**Dokumentation:**
|
||||
- `QUICKSTART.md` → Häufige Anpassungen
|
||||
- `README_Dashboard.md` → Fehlerbehebung
|
||||
|
||||
---
|
||||
|
||||
## 🎉 Los geht's!
|
||||
|
||||
**Starte jetzt mit:**
|
||||
```
|
||||
1. Öffne: QUICKSTART.md
|
||||
2. Wähle: battery_optimizer_dashboard_compact.yaml
|
||||
3. Folge: 3-Minuten-Setup
|
||||
4. Fertig! 🚀
|
||||
```
|
||||
|
||||
Viel Erfolg mit deinem neuen Dashboard!
|
||||
|
||||
---
|
||||
|
||||
**Erstellt:** 16. November 2025
|
||||
**Für:** Felix's Batterie-Optimierungssystem
|
||||
**Version:** 1.0
|
||||
250
legacy/v3/00_START_HIER_SECTIONS.md
Normal file
250
legacy/v3/00_START_HIER_SECTIONS.md
Normal file
@@ -0,0 +1,250 @@
|
||||
# 🎯 Dashboard mit SECTIONS-Layout (AKTUELL!)
|
||||
|
||||
## ⚡ Das solltest du wissen
|
||||
|
||||
Ich habe **3 neue Dashboards** mit dem **modernen Sections-Layout** erstellt!
|
||||
|
||||
### 🆕 Sections-Layout (EMPFOHLEN)
|
||||
|
||||
Das neue Layout ist seit Home Assistant 2024.x der Standard und bietet:
|
||||
|
||||
✅ Bessere Organisation durch Section-Überschriften
|
||||
✅ Automatisches responsive Grid-System
|
||||
✅ Einfachere Anpassung und Wartung
|
||||
✅ Moderne Struktur mit `max_columns`
|
||||
✅ Zukunftssicher und von HA unterstützt
|
||||
|
||||
---
|
||||
|
||||
## 📦 Verfügbare Dashboards
|
||||
|
||||
### 🆕 **SECTIONS-LAYOUT** (2024.x) - NUTZE DIESE!
|
||||
|
||||
| Datei | Sections | Beste für |
|
||||
|-------|----------|-----------|
|
||||
| `battery_optimizer_sections_compact.yaml` ⭐ | 7 | Tablet/Desktop |
|
||||
| `battery_optimizer_sections_minimal.yaml` | 7 | Smartphone |
|
||||
| `battery_optimizer_sections_standard.yaml` | 10 | Desktop Detail |
|
||||
|
||||
### 📜 Klassisches Layout (Fallback)
|
||||
|
||||
Falls dein Home Assistant älter als 2024.2 ist:
|
||||
- `battery_optimizer_dashboard_compact.yaml`
|
||||
- `battery_optimizer_dashboard_minimal.yaml`
|
||||
- `battery_optimizer_dashboard.yaml`
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick-Start (3 Minuten)
|
||||
|
||||
### Schritt 1: Dashboard erstellen
|
||||
|
||||
1. Home Assistant → **Einstellungen** → **Dashboards**
|
||||
2. **"+ Dashboard hinzufügen"**
|
||||
3. **"Mit Sections erstellen"** ⭐ (Wichtig!)
|
||||
4. Name: `Batterie Optimierung`
|
||||
5. Icon: `mdi:battery-charging`
|
||||
6. **"Erstellen"**
|
||||
|
||||
### Schritt 2: Code einfügen
|
||||
|
||||
1. **⋮** (3 Punkte oben rechts) → **"Rohe Konfiguration bearbeiten"**
|
||||
2. Alles löschen
|
||||
3. Kopiere Inhalt von `battery_optimizer_sections_compact.yaml`
|
||||
4. Einfügen
|
||||
5. **"Speichern"**
|
||||
|
||||
### Schritt 3: Entity-IDs anpassen
|
||||
|
||||
Prüfe in **Entwicklerwerkzeuge** → **Zustände** ob diese Entities existieren:
|
||||
|
||||
```yaml
|
||||
sensor.openems_ess0_activepower
|
||||
sensor.esssoc
|
||||
sensor.openems_grid_activepower
|
||||
sensor.hastrom_flex_extended_current_price
|
||||
pyscript.battery_charging_plan
|
||||
```
|
||||
|
||||
Falls anders: Im Dashboard mit Suchen & Ersetzen anpassen!
|
||||
|
||||
### Schritt 4: Fertig! 🎉
|
||||
|
||||
Navigiere zu: **Sidebar** → **"Batterie Optimierung"**
|
||||
|
||||
---
|
||||
|
||||
## 💡 Meine Empfehlung
|
||||
|
||||
**Starte mit:**
|
||||
```
|
||||
📄 battery_optimizer_sections_compact.yaml
|
||||
📊 7 Sections
|
||||
📱 Perfekt für Desktop + Tablet
|
||||
⚡ max_columns: 4
|
||||
```
|
||||
|
||||
**Warum?**
|
||||
- Beste Balance zwischen Detail und Übersicht
|
||||
- Nutzt alle deine HACS Cards optimal
|
||||
- Funktioniert super auf allen Geräten
|
||||
- Nicht überladen, aber vollständig
|
||||
|
||||
---
|
||||
|
||||
## 📖 Dokumentation
|
||||
|
||||
| Datei | Inhalt |
|
||||
|-------|--------|
|
||||
| **README_SECTIONS.md** ⭐ | Sections-Layout Anleitung |
|
||||
| QUICKSTART.md | Schnellstart (für altes Layout) |
|
||||
| README_Dashboard.md | Vollständige Anleitung |
|
||||
| DASHBOARD_COMPARISON.md | Visueller Vergleich |
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Section-Übersicht (Kompakt)
|
||||
|
||||
Die **Kompakt-Version** enthält 7 Sections:
|
||||
|
||||
1. 🏠 **Status & Steuerung**
|
||||
- Power Flow Card
|
||||
- Auto/Manuell Toggles
|
||||
- Quick-Status (SOC, Preis)
|
||||
|
||||
2. 📅 **Ladeplanung**
|
||||
- Plan-Status
|
||||
- Nächste Ladung
|
||||
- Kompakte Plan-Liste
|
||||
|
||||
3. 💶 **Strompreis-Visualisierung**
|
||||
- 48h Preis-Graph
|
||||
- Geplante Ladungen als Marker
|
||||
|
||||
4. 🔋 **Batterie-Übersicht**
|
||||
- 24h SOC & Leistung Graph
|
||||
- Dual-Achsen
|
||||
|
||||
5. 📋 **Detaillierter Plan**
|
||||
- Statistik-Bubble-Cards
|
||||
- Vollständige Plan-Tabelle
|
||||
|
||||
6. ⚙️ **Einstellungen**
|
||||
- Alle Parameter
|
||||
- Min/Max SOC, Ladeleistung, etc.
|
||||
|
||||
7. ℹ️ **System**
|
||||
- OpenEMS Status
|
||||
- PV-Prognosen
|
||||
- Automation-Status
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Anpassungen
|
||||
|
||||
### Spaltenanzahl ändern:
|
||||
|
||||
```yaml
|
||||
type: sections
|
||||
max_columns: 3 # Statt 4 für weniger Spalten
|
||||
```
|
||||
|
||||
### Section entfernen:
|
||||
|
||||
Einfach die komplette Section löschen (von `- type: grid` bis zur nächsten Section)
|
||||
|
||||
### Reihenfolge ändern:
|
||||
|
||||
Sections im YAML nach oben/unten verschieben
|
||||
|
||||
---
|
||||
|
||||
## 📱 Responsive Verhalten
|
||||
|
||||
Das Sections-Layout passt sich **automatisch** an:
|
||||
|
||||
- **Desktop (>1920px):** 4 Spalten nebeneinander
|
||||
- **Laptop (1366-1920px):** 3-4 Spalten
|
||||
- **Tablet (768-1366px):** 2-3 Spalten
|
||||
- **Smartphone (<768px):** 1 Spalte
|
||||
|
||||
Kein manuelles Responsive-CSS nötig! 🎯
|
||||
|
||||
---
|
||||
|
||||
## ✅ Voraussetzungen
|
||||
|
||||
- ✅ Home Assistant **2024.2 oder neuer**
|
||||
- ✅ HACS Custom Cards:
|
||||
- Bubble Card ✅
|
||||
- Plotly Graph Card ✅
|
||||
- Power Flow Card Plus ✅
|
||||
- Stack-in-Card (optional)
|
||||
|
||||
Alle bereits bei dir installiert! 🚀
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Fehlerbehebung
|
||||
|
||||
### "Sections not supported"
|
||||
|
||||
➜ Home Assistant auf 2024.2+ updaten
|
||||
➜ Oder: Klassisches Layout nutzen
|
||||
|
||||
### Cards werden nicht angezeigt
|
||||
|
||||
➜ Browser-Cache leeren (Strg+Shift+R)
|
||||
➜ Home Assistant neu starten
|
||||
|
||||
### Plotly zeigt keine Daten
|
||||
|
||||
➜ Prüfe Entity-Historie in Developer Tools
|
||||
➜ Recorder-Integration prüfen
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Nächste Schritte
|
||||
|
||||
Nach Dashboard-Installation:
|
||||
|
||||
1. ✅ **Plan-Historie** implementieren
|
||||
2. ✅ **InfluxDB-Integration** erweitern
|
||||
3. ✅ **Notifications** einrichten
|
||||
4. ✅ **Grafana-Dashboard** als Alternative
|
||||
|
||||
Womit möchtest du weitermachen?
|
||||
|
||||
---
|
||||
|
||||
## 🆚 Sections vs. Klassisch
|
||||
|
||||
| Feature | Sections | Klassisch |
|
||||
|---------|----------|-----------|
|
||||
| HA Version | 2024.2+ | Alle |
|
||||
| Struktur | Modern | Traditionell |
|
||||
| Responsive | Automatisch | Manuell |
|
||||
| Überschriften | Integriert | Manuell |
|
||||
| Wartung | Einfacher | Komplexer |
|
||||
| Zukunft | ✅ Standard | ⚠️ Legacy |
|
||||
|
||||
**Empfehlung:** Nutze **Sections** wenn möglich! 🚀
|
||||
|
||||
---
|
||||
|
||||
## 🎉 Los geht's!
|
||||
|
||||
**Starte jetzt:**
|
||||
|
||||
1. 📖 Lies: `README_SECTIONS.md`
|
||||
2. 📄 Öffne: `battery_optimizer_sections_compact.yaml`
|
||||
3. 🚀 Folge: Quick-Start oben
|
||||
4. ✅ Teste: Auf verschiedenen Geräten
|
||||
|
||||
**Viel Erfolg mit deinem modernen Dashboard!** 🎊
|
||||
|
||||
---
|
||||
|
||||
**Erstellt:** 16. November 2025
|
||||
**Layout:** Home Assistant Sections (2024.x)
|
||||
**Empfohlung:** COMPACT-Version ⭐
|
||||
278
legacy/v3/ALLE_DATEIEN.md
Normal file
278
legacy/v3/ALLE_DATEIEN.md
Normal file
@@ -0,0 +1,278 @@
|
||||
# 📁 Komplette Dateiübersicht
|
||||
|
||||
## 🆕 SECTIONS-LAYOUT Dashboards (EMPFOHLEN)
|
||||
|
||||
Diese nutzen das **moderne Home Assistant Sections-Layout** (2024.2+):
|
||||
|
||||
### Dashboard-Dateien:
|
||||
1. **battery_optimizer_sections_compact.yaml** (11 KB) ⭐ **STARTE HIERMIT**
|
||||
- 7 Sections, max_columns: 4
|
||||
- Beste Balance für Desktop + Tablet
|
||||
- Alle Features, kompakt organisiert
|
||||
|
||||
2. **battery_optimizer_sections_minimal.yaml** (6 KB)
|
||||
- 7 Sections, max_columns: 3
|
||||
- Fokus auf Wesentliches
|
||||
- Perfekt für Smartphone
|
||||
|
||||
3. **battery_optimizer_sections_standard.yaml** (13 KB)
|
||||
- 10 Sections, max_columns: 4
|
||||
- Alle Details und Graphen
|
||||
- Für große Desktop-Bildschirme
|
||||
|
||||
### Dokumentation für Sections:
|
||||
- **README_SECTIONS.md** - Vollständige Anleitung für Sections-Layout
|
||||
- **00_START_HIER_SECTIONS.md** - Quick-Start für Sections
|
||||
|
||||
---
|
||||
|
||||
## 📜 KLASSISCHES LAYOUT Dashboards (Fallback)
|
||||
|
||||
Falls dein Home Assistant < 2024.2 ist:
|
||||
|
||||
### Dashboard-Dateien:
|
||||
1. **battery_optimizer_dashboard_compact.yaml** (8 KB)
|
||||
- Horizontal/Vertical Stacks
|
||||
- Ausgewogene Version
|
||||
|
||||
2. **battery_optimizer_dashboard_minimal.yaml** (6 KB)
|
||||
- Minimale Version
|
||||
- Smartphone-optimiert
|
||||
|
||||
3. **battery_optimizer_dashboard.yaml** (11 KB)
|
||||
- Vollversion
|
||||
- Alle Details
|
||||
|
||||
### Dokumentation für klassisches Layout:
|
||||
- **README_Dashboard.md** - Vollständige Anleitung
|
||||
- **QUICKSTART.md** - 3-Minuten Installation
|
||||
- **00_START_HIER.md** - Einstiegspunkt
|
||||
- **DASHBOARD_COMPARISON.md** - Visueller Vergleich
|
||||
|
||||
---
|
||||
|
||||
## 📊 Übersicht nach Dateityp
|
||||
|
||||
### 🎨 Dashboard-Dateien (6 total)
|
||||
|
||||
**Sections-Layout (NEU):**
|
||||
```
|
||||
battery_optimizer_sections_compact.yaml ⭐ EMPFOHLEN
|
||||
battery_optimizer_sections_minimal.yaml
|
||||
battery_optimizer_sections_standard.yaml
|
||||
```
|
||||
|
||||
**Klassisches Layout (ALT):**
|
||||
```
|
||||
battery_optimizer_dashboard_compact.yaml
|
||||
battery_optimizer_dashboard_minimal.yaml
|
||||
battery_optimizer_dashboard.yaml
|
||||
```
|
||||
|
||||
### 📖 Dokumentations-Dateien (6 total)
|
||||
|
||||
**Für Sections-Layout:**
|
||||
```
|
||||
00_START_HIER_SECTIONS.md ⭐ STARTE HIER
|
||||
README_SECTIONS.md
|
||||
```
|
||||
|
||||
**Für klassisches Layout:**
|
||||
```
|
||||
00_START_HIER.md
|
||||
README_Dashboard.md
|
||||
QUICKSTART.md
|
||||
DASHBOARD_COMPARISON.md
|
||||
```
|
||||
|
||||
**Allgemein:**
|
||||
```
|
||||
ALLE_DATEIEN.md (diese Datei)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Welche Dateien brauchst du?
|
||||
|
||||
### Szenario 1: Modernes Home Assistant (2024.2+) ⭐
|
||||
|
||||
**Du brauchst:**
|
||||
1. `00_START_HIER_SECTIONS.md` - Lies das zuerst
|
||||
2. `battery_optimizer_sections_compact.yaml` - Installiere das
|
||||
3. `README_SECTIONS.md` - Bei Fragen
|
||||
|
||||
**Optional:**
|
||||
- Alternative Dashboards (minimal/standard) zum Vergleichen
|
||||
|
||||
---
|
||||
|
||||
### Szenario 2: Älteres Home Assistant (<2024.2)
|
||||
|
||||
**Du brauchst:**
|
||||
1. `00_START_HIER.md` - Lies das zuerst
|
||||
2. `battery_optimizer_dashboard_compact.yaml` - Installiere das
|
||||
3. `QUICKSTART.md` - Für Installation
|
||||
4. `README_Dashboard.md` - Bei Fragen
|
||||
|
||||
**Optional:**
|
||||
- `DASHBOARD_COMPARISON.md` - Zum Vergleichen der Versionen
|
||||
|
||||
---
|
||||
|
||||
## 📐 Größenvergleich
|
||||
|
||||
| Dashboard | Dateigröße | Zeilen | Cards/Sections |
|
||||
|-----------|------------|--------|----------------|
|
||||
| **Sections Compact** ⭐ | 11 KB | ~300 | 7 Sections |
|
||||
| Sections Minimal | 6 KB | ~200 | 7 Sections |
|
||||
| Sections Standard | 13 KB | ~350 | 10 Sections |
|
||||
| Dashboard Compact | 8 KB | ~275 | 15+ Cards |
|
||||
| Dashboard Minimal | 6 KB | ~214 | 10+ Cards |
|
||||
| Dashboard Standard | 11 KB | ~325 | 20+ Cards |
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Feature-Matrix
|
||||
|
||||
| Feature | Sections Compact | Sections Minimal | Sections Standard |
|
||||
|---------|-----------------|------------------|-------------------|
|
||||
| Power Flow Card | ✅ | ✅ | ✅ |
|
||||
| Preis-Graph (48h) | ✅ | ✅ | ✅ |
|
||||
| SOC-Graph (24h) | ✅ | ✅ | ✅ |
|
||||
| Energie-Fluss-Graph | ❌ | ❌ | ✅ |
|
||||
| Plan-Statistiken | ✅ | ❌ | ✅ |
|
||||
| Detaillierte Tabelle | ✅ | ❌ | ✅ |
|
||||
| Alle Einstellungen | ✅ | ⚠️ Conditional | ✅ |
|
||||
| System-Infos | ✅ | ❌ | ✅ |
|
||||
| Heading Cards | ✅ | ✅ | ✅ |
|
||||
| Auto-Responsive | ✅ | ✅ | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installation - Übersicht
|
||||
|
||||
### Für Sections-Layout:
|
||||
|
||||
1. Home Assistant → **Einstellungen** → **Dashboards**
|
||||
2. **"+ Dashboard hinzufügen"**
|
||||
3. **"Mit Sections erstellen"** wählen
|
||||
4. YAML-Code einfügen
|
||||
5. Entity-IDs anpassen
|
||||
6. Speichern & Testen
|
||||
|
||||
### Für klassisches Layout:
|
||||
|
||||
1. Home Assistant → **Einstellungen** → **Dashboards**
|
||||
2. **"+ Dashboard hinzufügen"**
|
||||
3. **"Neue Ansicht vom Scratch"** wählen
|
||||
4. Via "Rohe Konfiguration" YAML einfügen
|
||||
5. Entity-IDs anpassen
|
||||
6. Speichern & Testen
|
||||
|
||||
---
|
||||
|
||||
## 💾 Download-Links
|
||||
|
||||
Alle Dateien sind im Output-Verzeichnis:
|
||||
|
||||
```
|
||||
/mnt/user-data/outputs/
|
||||
├── 00_START_HIER.md
|
||||
├── 00_START_HIER_SECTIONS.md ⭐ Start hier
|
||||
├── ALLE_DATEIEN.md (diese Datei)
|
||||
├── DASHBOARD_COMPARISON.md
|
||||
├── QUICKSTART.md
|
||||
├── README_Dashboard.md
|
||||
├── README_SECTIONS.md
|
||||
├── battery_optimizer_dashboard.yaml
|
||||
├── battery_optimizer_dashboard_compact.yaml
|
||||
├── battery_optimizer_dashboard_minimal.yaml
|
||||
├── battery_optimizer_sections_compact.yaml ⭐ Empfohlen
|
||||
├── battery_optimizer_sections_minimal.yaml
|
||||
└── battery_optimizer_sections_standard.yaml
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Geräte-Empfehlungen
|
||||
|
||||
| Dein Gerät | Empfohlenes Dashboard |
|
||||
|------------|----------------------|
|
||||
| Desktop (4K, >27") | `sections_standard.yaml` |
|
||||
| Desktop (FHD, 24") | `sections_compact.yaml` ⭐ |
|
||||
| Laptop (15") | `sections_compact.yaml` ⭐ |
|
||||
| Tablet (10"+) | `sections_compact.yaml` ⭐ |
|
||||
| Smartphone | `sections_minimal.yaml` |
|
||||
| Wall Panel (7-10") | `sections_minimal.yaml` |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Empfehlungs-Matrix
|
||||
|
||||
### Nach Home Assistant Version:
|
||||
|
||||
| HA Version | Empfohlene Dashboards |
|
||||
|------------|----------------------|
|
||||
| **2024.2+** | Sections-Varianten (alle 3) ✅ |
|
||||
| 2023.x - 2024.1 | Klassische Varianten |
|
||||
| < 2023.x | Klassische Varianten + Update empfohlen |
|
||||
|
||||
### Nach Use-Case:
|
||||
|
||||
| Use-Case | Empfohlenes Dashboard |
|
||||
|----------|----------------------|
|
||||
| **Hauptdashboard** | `sections_compact.yaml` ⭐ |
|
||||
| Mobile Quick-Check | `sections_minimal.yaml` |
|
||||
| Analyse & Debugging | `sections_standard.yaml` |
|
||||
| Mehrere Geräte | Alle 3 installieren! |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Migration
|
||||
|
||||
### Von klassisch zu Sections:
|
||||
|
||||
1. Backup des alten Dashboards machen
|
||||
2. Neues Sections-Dashboard parallel erstellen
|
||||
3. Testen
|
||||
4. Bei Zufriedenheit: Altes Dashboard entfernen
|
||||
|
||||
**Hinweis:** Entity-IDs bleiben gleich, kein Code-Update nötig!
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Quick-Entscheidung
|
||||
|
||||
**Frage dich:**
|
||||
|
||||
1. **Hast du HA 2024.2+?**
|
||||
- ✅ Ja → **Sections-Varianten**
|
||||
- ❌ Nein → Klassische Varianten
|
||||
|
||||
2. **Welches Gerät nutzt du hauptsächlich?**
|
||||
- 🖥️ Desktop → **Compact** oder Standard
|
||||
- 📱 Tablet → **Compact**
|
||||
- 📱 Smartphone → **Minimal**
|
||||
|
||||
3. **Wie viele Details brauchst du?**
|
||||
- 📊 Alle → Standard
|
||||
- ⚖️ Balance → **Compact** ⭐
|
||||
- ⚡ Wenig → Minimal
|
||||
|
||||
**90% der Nutzer:** `sections_compact.yaml` 🎯
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei Fragen zu:
|
||||
- **Sections-Layout** → Lies `README_SECTIONS.md`
|
||||
- **Installation** → Lies `QUICKSTART.md`
|
||||
- **Vergleich** → Lies `DASHBOARD_COMPARISON.md`
|
||||
- **Allgemein** → Lies `README_Dashboard.md`
|
||||
|
||||
---
|
||||
|
||||
**Zuletzt aktualisiert:** 16. November 2025
|
||||
**Dateien gesamt:** 13
|
||||
**Empfehlung:** Sections Compact ⭐
|
||||
212
legacy/v3/DASHBOARD_COMPARISON.md
Normal file
212
legacy/v3/DASHBOARD_COMPARISON.md
Normal file
@@ -0,0 +1,212 @@
|
||||
# 📊 Dashboard-Varianten Vergleich
|
||||
|
||||
## 🎨 Visueller Aufbau
|
||||
|
||||
### 1️⃣ STANDARD-VERSION (11KB)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 🔋 Power Flow Card Plus (Energie-Visualisierung) │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────┬───────────────────────────┐
|
||||
│ 🎛️ STEUERUNG │ 📅 AKTUELLER PLAN │
|
||||
│ • Auto-Optimierung │ • Plan-Status │
|
||||
│ • Manuelle Steuerung │ • Nächste Ladung │
|
||||
│ • Parameter (6 Items) │ • Geplante Stunden │
|
||||
└─────────────────────────┴───────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 📈 GRAPH: Strompreis & Ladeplanung (48h) │
|
||||
│ - Preis-Linie mit Füllung │
|
||||
│ - Geplante Ladungen als Marker │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 📊 GRAPH: Batterie SOC & Leistung (24h) │
|
||||
│ - SOC (linke Y-Achse) │
|
||||
│ - Leistung (rechte Y-Achse) │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ ⚡ GRAPH: Energie-Flüsse (24h) │
|
||||
│ - PV-Produktion │
|
||||
│ - Netzbezug │
|
||||
│ - Batterie │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 📋 DETAILLIERTER PLAN (ausklappbar) │
|
||||
│ - Statistiken-Tabelle │
|
||||
│ - Stunden-Detail-Tabelle │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ ℹ️ SYSTEM-INFORMATIONEN (ausklappbar) │
|
||||
│ - OpenEMS Status │
|
||||
│ - Kapazitäten │
|
||||
│ - PV-Prognosen │
|
||||
│ - Automation-Status │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Verwendete Cards:** 7 verschiedene Typen, 15+ Cards total
|
||||
**Beste für:** Desktop, Detailanalyse, Monitoring-Station
|
||||
**Scroll-Bedarf:** Hoch (6-7 Bildschirme)
|
||||
|
||||
---
|
||||
|
||||
### 2️⃣ KOMPAKT-VERSION (8KB)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 🔋 Power Flow Card Plus (Energie-Visualisierung) │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────┬───────────────────────────┐
|
||||
│ 🎛️ STEUERUNG (Stack) │ 📅 PLAN (Stack) │
|
||||
│ ┌─────────────────┐ │ ┌─────────────────┐ │
|
||||
│ │ Auto Toggle │ │ │ Plan-Status │ │
|
||||
│ │ Manuell Toggle │ │ │ Nächste Ladung │ │
|
||||
│ │ SOC + Preis │ │ │ X Std geplant │ │
|
||||
│ └─────────────────┘ │ └─────────────────┘ │
|
||||
└─────────────────────────┴───────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 💶 Strompreis & Ladeplan (48h) - Plotly │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 🔋 Batterie-Übersicht (24h) - Plotly │
|
||||
│ - SOC + Leistung kombiniert │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 📋 DETAILLIERTER PLAN (ausklappbar) │
|
||||
│ ┌──────────┬──────────┬──────────┐ │
|
||||
│ │ Xh Dauer │ X kWh │ X ct Ø │ (Bubble Cards) │
|
||||
│ └──────────┴──────────┴──────────┘ │
|
||||
│ Liste der Ladestunden (Markdown) │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ ⚙️ EINSTELLUNGEN (ausklappbar) │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Verwendete Cards:** Stack-in-Card, Bubble Cards, Plotly
|
||||
**Beste für:** Tablet, ausgewogene Darstellung
|
||||
**Scroll-Bedarf:** Mittel (3-4 Bildschirme)
|
||||
|
||||
---
|
||||
|
||||
### 3️⃣ MINIMAL-VERSION (6KB)
|
||||
|
||||
```
|
||||
┌──────────────┬──────────────┬──────────────┐
|
||||
│ 🔋 Batterie │ 💶 Preis │ ☀️ PV │
|
||||
│ XX% │ XX ct/kWh │ XXXX W │
|
||||
└──────────────┴──────────────┴──────────────┘
|
||||
┌──────────────────────┬──────────────────────┐
|
||||
│ 🤖 Auto │ ✋ Manuell │
|
||||
│ [Toggle] │ [Toggle] │
|
||||
└──────────────────────┴──────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 🔋 Power Flow Card Plus │
|
||||
└─────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 📅 GEPLANTE LADUNGEN │
|
||||
│ │
|
||||
│ 🟢 JETZT 23:00 Uhr │
|
||||
│ 5000W bei 12.5ct/kWh │
|
||||
│ Niedriger Preis │
|
||||
│ │
|
||||
│ ⏰ 00:00 Uhr │
|
||||
│ 5000W bei 11.8ct/kWh │
|
||||
│ Günstigste Stunde │
|
||||
│ │
|
||||
│ ⏰ 01:00 Uhr │
|
||||
│ 5000W bei 13.2ct/kWh │
|
||||
│ Unter Schwellwert │
|
||||
└─────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 💶 Strompreis 48h (Mini-Graph) │
|
||||
└─────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 🔋 Batterie SOC 24h (Mini-Graph) │
|
||||
└─────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ ⚙️ Schnelleinstellungen (nur wenn Auto=ON) │
|
||||
│ - Min SOC, Max SOC, Ladeleistung │
|
||||
└─────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ ℹ️ System (Mini) │
|
||||
│ OpenEMS | Auto Plan | Auto Exec │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Verwendete Cards:** Bubble Cards (hauptsächlich), Plotly (minimal)
|
||||
**Beste für:** Smartphone, Quick-Check, Wall Panel
|
||||
**Scroll-Bedarf:** Niedrig (2 Bildschirme)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Entscheidungshilfe
|
||||
|
||||
### Wähle STANDARD wenn:
|
||||
- ✅ Du hast einen großen Bildschirm (Desktop, Laptop)
|
||||
- ✅ Du möchtest alle Details auf einen Blick
|
||||
- ✅ Du machst häufig Detailanalysen
|
||||
- ✅ Du hast mehrere Monitore
|
||||
- ✅ Scroll-Bedarf ist kein Problem
|
||||
|
||||
### Wähle KOMPAKT wenn:
|
||||
- ✅ Du nutzt hauptsächlich ein Tablet
|
||||
- ✅ Du möchtest Balance zwischen Detail und Übersicht
|
||||
- ✅ Du magst moderne Card-Designs (Bubble)
|
||||
- ✅ Du möchtest Stack-in-Card nutzen
|
||||
- ✅ Du brauchst alle Features, aber platzsparend
|
||||
|
||||
### Wähle MINIMAL wenn:
|
||||
- ✅ Du nutzt hauptsächlich ein Smartphone
|
||||
- ✅ Du brauchst nur Quick-Status-Checks
|
||||
- ✅ Du möchtest wenig scrollen
|
||||
- ✅ Du hast ein Wall Panel/Tablet an der Wand
|
||||
- ✅ Fokus auf nächste Ladungen, nicht auf Historie
|
||||
|
||||
---
|
||||
|
||||
## 📱 Responsivität
|
||||
|
||||
| Gerät | Standard | Kompakt | Minimal |
|
||||
|-------|----------|---------|---------|
|
||||
| **Desktop** (>1920px) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| **Laptop** (1366-1920px) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| **Tablet** (768-1366px) | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
| **Smartphone** (<768px) | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
| **Wall Panel** (1024px) | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Mix & Match
|
||||
|
||||
Du kannst auch **mehrere Dashboards kombinieren**:
|
||||
|
||||
```yaml
|
||||
# In configuration.yaml oder dashboards.yaml
|
||||
lovelace:
|
||||
mode: yaml
|
||||
dashboards:
|
||||
# Für Desktop
|
||||
battery-detail:
|
||||
mode: yaml
|
||||
filename: dashboards/battery_optimizer_dashboard.yaml
|
||||
title: Batterie Detail
|
||||
icon: mdi:chart-line
|
||||
|
||||
# Für Tablet/Mobile
|
||||
battery-overview:
|
||||
mode: yaml
|
||||
filename: dashboards/battery_optimizer_dashboard_compact.yaml
|
||||
title: Batterie
|
||||
icon: mdi:battery-charging
|
||||
show_in_sidebar: true
|
||||
|
||||
# Für Quick-Check
|
||||
battery-quick:
|
||||
mode: yaml
|
||||
filename: dashboards/battery_optimizer_dashboard_minimal.yaml
|
||||
title: Batterie Quick
|
||||
icon: mdi:battery-lightning
|
||||
```
|
||||
|
||||
Dann hast du alle Varianten verfügbar und kannst je nach Situation wechseln! 🎯
|
||||
249
legacy/v3/QUICKSTART.md
Normal file
249
legacy/v3/QUICKSTART.md
Normal file
@@ -0,0 +1,249 @@
|
||||
# 🚀 Quick-Start: Dashboard Installation
|
||||
|
||||
## ⚡ 3-Minuten-Setup
|
||||
|
||||
### Schritt 1: Datei auswählen (10 Sekunden)
|
||||
|
||||
Wähle **eine** der drei Varianten:
|
||||
|
||||
- 📊 **Standard** → `battery_optimizer_dashboard.yaml` (Desktop)
|
||||
- 📱 **Kompakt** → `battery_optimizer_dashboard_compact.yaml` (Tablet)
|
||||
- ⚡ **Minimal** → `battery_optimizer_dashboard_minimal.yaml` (Smartphone)
|
||||
|
||||
**Meine Empfehlung für dich:** **KOMPAKT** - beste Balance!
|
||||
|
||||
---
|
||||
|
||||
### Schritt 2: Dashboard hinzufügen (2 Minuten)
|
||||
|
||||
#### Option A: Über die UI (Einfachste Methode)
|
||||
|
||||
1. Home Assistant öffnen
|
||||
2. Klick auf **"Einstellungen"** → **"Dashboards"**
|
||||
3. Klick auf **"+ Dashboard hinzufügen"**
|
||||
4. Wähle **"Neue Ansicht vom Scratch erstellen"**
|
||||
5. Name: `Batterie Optimierung`
|
||||
6. Icon: `mdi:battery-charging`
|
||||
7. Klick auf **"Erstellen"**
|
||||
8. Klick auf **⋮** (3 Punkte oben rechts) → **"Rohe Konfiguration bearbeiten"**
|
||||
9. Lösche alles und füge den Inhalt der YAML-Datei ein
|
||||
10. Klick auf **"Speichern"**
|
||||
|
||||
#### Option B: Via Datei (Für Fortgeschrittene)
|
||||
|
||||
```bash
|
||||
# Auf deinem Home Assistant Server:
|
||||
cd /config
|
||||
mkdir -p dashboards
|
||||
cp battery_optimizer_dashboard_compact.yaml dashboards/
|
||||
|
||||
# In configuration.yaml oder dashboards.yaml ergänzen:
|
||||
lovelace:
|
||||
mode: yaml
|
||||
dashboards:
|
||||
battery-optimizer:
|
||||
mode: yaml
|
||||
filename: dashboards/battery_optimizer_dashboard_compact.yaml
|
||||
title: Batterie
|
||||
icon: mdi:battery-charging
|
||||
show_in_sidebar: true
|
||||
```
|
||||
|
||||
Dann Home Assistant neu starten.
|
||||
|
||||
---
|
||||
|
||||
### Schritt 3: Entity-IDs anpassen (30 Sekunden)
|
||||
|
||||
**Suchen & Ersetzen** in der YAML-Datei:
|
||||
|
||||
Öffne die Dashboard-Konfiguration und ersetze diese Platzhalter mit deinen echten Entity-IDs:
|
||||
|
||||
```yaml
|
||||
# WICHTIG: Prüfe deine echten Entity-IDs unter:
|
||||
# Entwicklerwerkzeuge → Zustände
|
||||
|
||||
# Ersetze:
|
||||
sensor.battery_charging_plan_status
|
||||
# Mit (wenn anders):
|
||||
sensor.deine_plan_status_entity
|
||||
|
||||
# Ersetze:
|
||||
sensor.battery_next_charge_time
|
||||
# Mit:
|
||||
sensor.deine_next_charge_entity
|
||||
|
||||
# Etc. für alle anderen Entities
|
||||
```
|
||||
|
||||
**Tipp:** Nutze Suchen & Ersetzen (Strg+H) in deinem Editor!
|
||||
|
||||
---
|
||||
|
||||
### Schritt 4: Fertig! (0 Sekunden)
|
||||
|
||||
✅ Dashboard ist einsatzbereit!
|
||||
|
||||
Navigiere zu: **Sidebar** → **"Batterie Optimierung"**
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Häufige Anpassungen
|
||||
|
||||
### Fehlende Entity entfernen
|
||||
|
||||
Falls eine Entity nicht existiert, einfach auskommentieren oder löschen:
|
||||
|
||||
```yaml
|
||||
# entities:
|
||||
# - entity: sensor.nicht_vorhanden # ← Auskommentiert mit #
|
||||
# name: Nicht verfügbar
|
||||
```
|
||||
|
||||
### Farben ändern
|
||||
|
||||
```yaml
|
||||
# Plotly Graph Farben anpassen:
|
||||
line:
|
||||
color: '#FF5722' # Deine Wunschfarbe (Hex-Code)
|
||||
```
|
||||
|
||||
Online Color Picker: https://htmlcolorcodes.com/
|
||||
|
||||
### Graph-Zeitraum anpassen
|
||||
|
||||
```yaml
|
||||
hours_to_show: 24 # Von 48h auf 24h ändern
|
||||
```
|
||||
|
||||
### Spalten-Layout ändern
|
||||
|
||||
```yaml
|
||||
# Von 2 auf 3 Spalten:
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- card1
|
||||
- card2
|
||||
- card3 # ← Hinzufügen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Checklist
|
||||
|
||||
- [ ] Dashboard-Variante ausgewählt
|
||||
- [ ] YAML-Datei in Home Assistant eingefügt
|
||||
- [ ] Entity-IDs überprüft und angepasst
|
||||
- [ ] Dashboard gespeichert
|
||||
- [ ] Browser-Cache geleert (Strg+Shift+R)
|
||||
- [ ] Dashboard getestet auf verschiedenen Geräten
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Hilfe bei Problemen
|
||||
|
||||
### Problem: "Entity not found"
|
||||
|
||||
**Lösung:**
|
||||
```yaml
|
||||
# Prüfe in Developer Tools → States:
|
||||
# Existiert die Entity wirklich?
|
||||
# Falls nein: Auskommentieren oder durch existierende Entity ersetzen
|
||||
```
|
||||
|
||||
### Problem: Plotly Graph zeigt nichts
|
||||
|
||||
**Lösung:**
|
||||
```yaml
|
||||
# 1. Prüfe ob Entity historische Daten hat:
|
||||
# Developer Tools → History → Entity auswählen
|
||||
|
||||
# 2. Prüfe Recorder-Integration:
|
||||
# configuration.yaml sollte haben:
|
||||
recorder:
|
||||
db_url: sqlite:////config/home-assistant_v2.db
|
||||
purge_keep_days: 7
|
||||
include:
|
||||
entities:
|
||||
- sensor.openems_ess0_activepower
|
||||
# ... alle anderen wichtigen Entities
|
||||
```
|
||||
|
||||
### Problem: Power Flow Card zeigt Fehler
|
||||
|
||||
**Lösung:**
|
||||
```yaml
|
||||
# Installiere über HACS:
|
||||
# HACS → Frontend → Suche "Power Flow Card Plus" → Installieren
|
||||
# Dann Browser-Cache leeren (Strg+Shift+R)
|
||||
```
|
||||
|
||||
### Problem: Bubble Cards nicht gefunden
|
||||
|
||||
**Lösung:**
|
||||
```yaml
|
||||
# Installiere über HACS:
|
||||
# HACS → Frontend → Suche "Bubble Card" → Installieren
|
||||
# Home Assistant neu starten
|
||||
# Browser-Cache leeren
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Nächste Schritte
|
||||
|
||||
Nach erfolgreicher Installation kannst du:
|
||||
|
||||
1. **Card-mod nutzen** für individuelles Styling
|
||||
2. **Conditional Cards** für kontextabhängige Anzeigen
|
||||
3. **Template-Sensoren** für zusätzliche Berechnungen
|
||||
4. **Plan-Historie** implementieren (siehe vorheriger Chat)
|
||||
5. **InfluxDB-Integration** für Langzeitanalyse
|
||||
|
||||
---
|
||||
|
||||
## 💡 Pro-Tipps
|
||||
|
||||
### Mobile Optimierung
|
||||
|
||||
```yaml
|
||||
# Füge card_mod für bessere Mobile-Ansicht hinzu:
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
font-size: 0.9em; /* Kleinere Schrift auf Mobile */
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
ha-card {
|
||||
padding: 8px !important; /* Weniger Padding */
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Dark Mode Support
|
||||
|
||||
Alle Dashboards sind Dark-Mode-kompatibel!
|
||||
Die Farben passen sich automatisch an.
|
||||
|
||||
### Performance-Tipp
|
||||
|
||||
```yaml
|
||||
# Reduziere Refresh-Rate für bessere Performance:
|
||||
refresh_interval: 300 # Alle 5 Minuten statt jede Minute
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei weiteren Fragen:
|
||||
|
||||
1. **Entity-IDs prüfen**: Developer Tools → States
|
||||
2. **Logs checken**: Settings → System → Logs
|
||||
3. **Browser-Konsole**: F12 → Console (für Frontend-Fehler)
|
||||
|
||||
---
|
||||
|
||||
**Viel Erfolg! 🎉**
|
||||
|
||||
Bei Problemen: Schicke mir einen Screenshot des Fehlers + deine YAML-Config.
|
||||
261
legacy/v3/README_Dashboard.md
Normal file
261
legacy/v3/README_Dashboard.md
Normal file
@@ -0,0 +1,261 @@
|
||||
# 📊 Batterie-Optimierung Dashboard Überarbeitung
|
||||
|
||||
## 🎯 Übersicht
|
||||
|
||||
Ich habe **3 Dashboard-Varianten** erstellt, alle mit **maximal 4 Spalten** für bessere Übersichtlichkeit:
|
||||
|
||||
### 1. **Standard-Version** (`battery_optimizer_dashboard.yaml`)
|
||||
- **Am umfangreichsten**: Alle Features und Details
|
||||
- **Beste Wahl für**: Desktop-Nutzung, Detailanalyse
|
||||
- **Highlights**:
|
||||
- Power Flow Card Plus für Energie-Visualisierung
|
||||
- 3 Plotly Graphen (Preis, SOC, Energie-Flüsse)
|
||||
- Vollständige Plan-Tabelle mit Statistiken
|
||||
- System-Informationen ausklappbar
|
||||
|
||||
### 2. **Kompakt-Version** (`battery_optimizer_dashboard_compact.yaml`)
|
||||
- **Ausgewogen**: Kompakt aber vollständig
|
||||
- **Beste Wahl für**: Tablet, ausgewogene Darstellung
|
||||
- **Highlights**:
|
||||
- Stack-in-Card für platzsparendes Layout
|
||||
- 2 Plotly Graphen (Preis + SOC kombiniert)
|
||||
- Bubble Cards für moderne Optik
|
||||
- Kompakte Plan-Anzeige
|
||||
|
||||
### 3. **Minimal-Version** (`battery_optimizer_dashboard_minimal.yaml`)
|
||||
- **Am übersichtlichsten**: Nur das Wichtigste
|
||||
- **Beste Wahl für**: Smartphone, Quick-Check
|
||||
- **Highlights**:
|
||||
- Quick Status Bar (3 Bubble Buttons)
|
||||
- Nächste 5 Ladungen im Fokus
|
||||
- 2 kleine Graphen (Preis + SOC)
|
||||
- Schnelleinstellungen nur wenn aktiv
|
||||
|
||||
---
|
||||
|
||||
## 📦 Installation
|
||||
|
||||
### Schritt 1: Dashboard in Home Assistant importieren
|
||||
|
||||
```yaml
|
||||
# In deiner Home Assistant Konfiguration (configuration.yaml oder dashboards.yaml)
|
||||
lovelace:
|
||||
mode: yaml
|
||||
dashboards:
|
||||
battery-optimizer:
|
||||
mode: yaml
|
||||
filename: dashboards/battery_optimizer_dashboard.yaml
|
||||
title: Batterie Optimierung
|
||||
icon: mdi:battery-charging
|
||||
show_in_sidebar: true
|
||||
```
|
||||
|
||||
### Schritt 2: Datei hochladen
|
||||
|
||||
1. Kopiere eine der YAML-Dateien nach: `/config/dashboards/`
|
||||
2. Oder: Füge den Inhalt direkt in den Dashboard-Editor ein
|
||||
3. Neustart von Home Assistant (eventuell nötig)
|
||||
|
||||
### Schritt 3: Fehlende Entities anpassen
|
||||
|
||||
**Wichtig:** Passe folgende Entity-IDs an deine tatsächlichen IDs an:
|
||||
|
||||
```yaml
|
||||
# Beispiele - ersetze durch deine tatsächlichen IDs:
|
||||
sensor.openems_ess0_activepower # Batterie-Leistung
|
||||
sensor.esssoc # Batterie SOC
|
||||
sensor.openems_grid_activepower # Netz-Leistung
|
||||
sensor.openems_production_activepower # PV-Produktion
|
||||
sensor.openems_consumption_activepower # Verbrauch
|
||||
sensor.hastrom_flex_extended_current_price # Strompreis
|
||||
sensor.battery_charging_plan_status # Plan-Status
|
||||
sensor.battery_next_charge_time # Nächste Ladung
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Verwendete Custom Cards
|
||||
|
||||
Diese HACS-Karten werden verwendet:
|
||||
|
||||
### ✅ **Installiert bei dir:**
|
||||
1. **Bubble Card** - Moderne Button- und Toggle-Cards
|
||||
2. **Plotly Graph Card** - Professionelle interaktive Graphen
|
||||
3. **Power Flow Card Plus** - Energie-Fluss-Visualisierung
|
||||
4. **Stack-in-Card** - Kompaktes Stapeln von Cards
|
||||
|
||||
### 📋 **Falls noch nicht installiert:**
|
||||
|
||||
```bash
|
||||
# In HACS → Frontend → Suche nach:
|
||||
- Bubble Card
|
||||
- Plotly Graph Card
|
||||
- Power Flow Card Plus
|
||||
- Stack-in-Card
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Anpassungen
|
||||
|
||||
### Layout ändern
|
||||
|
||||
```yaml
|
||||
# Von 4 auf 3 Spalten ändern (in horizontal-stack):
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- card1 # Spalte 1
|
||||
- card2 # Spalte 2
|
||||
- card3 # Spalte 3 (entferne 4. Card)
|
||||
```
|
||||
|
||||
### Farben anpassen
|
||||
|
||||
```yaml
|
||||
# In Plotly Graphen:
|
||||
line:
|
||||
color: '#FF9800' # Deine Wunschfarbe (Hex)
|
||||
```
|
||||
|
||||
### Graph-Zeitraum ändern
|
||||
|
||||
```yaml
|
||||
hours_to_show: 48 # Von 48h auf z.B. 24h ändern
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Responsive Verhalten
|
||||
|
||||
### Automatische Anpassung
|
||||
|
||||
Alle Dashboards passen sich automatisch an:
|
||||
|
||||
- **Desktop** (>1024px): Volle Breite, alle Spalten
|
||||
- **Tablet** (768-1024px): 2-3 Spalten, kompaktere Ansicht
|
||||
- **Smartphone** (<768px): 1 Spalte, vertikales Stacking
|
||||
|
||||
### Mobile Optimierungen
|
||||
|
||||
Die **Minimal-Version** ist speziell für Smartphones optimiert:
|
||||
- Große Touch-Targets (Bubble Cards)
|
||||
- Weniger Scroll-Bedarf
|
||||
- Schneller Überblick
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Empfohlene Nutzung
|
||||
|
||||
| Gerät | Dashboard-Version | Warum? |
|
||||
|-------|-------------------|--------|
|
||||
| Desktop PC | **Standard** | Volle Details, alle Graphen sichtbar |
|
||||
| Tablet | **Kompakt** | Ausgewogen zwischen Detail und Übersicht |
|
||||
| Smartphone | **Minimal** | Quick-Check, wichtigste Infos |
|
||||
| Wall Panel | **Kompakt** oder **Minimal** | Übersichtlich aus der Distanz |
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Fehlerbehebung
|
||||
|
||||
### Problem: Cards werden nicht angezeigt
|
||||
|
||||
**Lösung:**
|
||||
1. Prüfe ob alle Custom Cards installiert sind (HACS)
|
||||
2. Lösche Browser-Cache
|
||||
3. Neustart Home Assistant
|
||||
|
||||
### Problem: Entities nicht gefunden
|
||||
|
||||
**Lösung:**
|
||||
```yaml
|
||||
# In Developer Tools → States nachschauen:
|
||||
# Welche Entity-IDs existieren wirklich?
|
||||
# Dann im Dashboard anpassen
|
||||
```
|
||||
|
||||
### Problem: Plotly Graph zeigt keine Daten
|
||||
|
||||
**Lösung:**
|
||||
```yaml
|
||||
# Prüfe ob die Entity historische Daten hat:
|
||||
# Developer Tools → History → Entity auswählen
|
||||
# Falls nicht: InfluxDB/Recorder-Integration prüfen
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Dashboard-Vergleich
|
||||
|
||||
| Feature | Standard | Kompakt | Minimal |
|
||||
|---------|----------|---------|---------|
|
||||
| Power Flow Card | ✅ | ✅ | ✅ |
|
||||
| Preis-Graph | ✅ | ✅ | ✅ (klein) |
|
||||
| SOC-Graph | ✅ | ✅ | ✅ (klein) |
|
||||
| Energie-Fluss-Graph | ✅ | ❌ | ❌ |
|
||||
| Detaillierte Plan-Tabelle | ✅ | ✅ | ❌ |
|
||||
| Plan-Statistiken | ✅ | ✅ | ❌ |
|
||||
| Nächste Ladungen | ✅ | ✅ | ✅ |
|
||||
| System-Infos | ✅ | ✅ | ✅ (minimal) |
|
||||
| Schnelleinstellungen | ✅ | ✅ | ✅ (conditional) |
|
||||
| Bubble Cards | ✅ | ✅✅ | ✅✅✅ |
|
||||
| Stack-in-Card | ❌ | ✅✅ | ❌ |
|
||||
|
||||
---
|
||||
|
||||
## 🔮 Nächste Schritte
|
||||
|
||||
Nach der Dashboard-Installation kannst du:
|
||||
|
||||
1. **Plan-Historie implementieren** (wie im vorherigen Chat besprochen)
|
||||
2. **InfluxDB-Integration** für Langzeit-Datenanalyse
|
||||
3. **Notifications** bei Ladestart/-ende
|
||||
4. **Grafana-Dashboard** für erweiterte Analysen
|
||||
|
||||
---
|
||||
|
||||
## 💡 Tipps
|
||||
|
||||
### Performance-Optimierung
|
||||
|
||||
```yaml
|
||||
# Reduziere refresh_interval bei Plotly:
|
||||
refresh_interval: 300 # Nur alle 5 Minuten aktualisieren
|
||||
```
|
||||
|
||||
### Conditional Cards
|
||||
|
||||
```yaml
|
||||
# Zeige Card nur wenn Optimizer aktiv:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: input_boolean.battery_optimizer_enabled
|
||||
state: 'on'
|
||||
card:
|
||||
# Deine Card hier
|
||||
```
|
||||
|
||||
### Dark Mode Anpassungen
|
||||
|
||||
```yaml
|
||||
# In card_mod für bessere Lesbarkeit:
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei Fragen oder Problemen:
|
||||
|
||||
1. Prüfe die **Entity-IDs** in Developer Tools
|
||||
2. Schaue in die **Browser-Konsole** (F12) nach Fehlern
|
||||
3. Prüfe das **Home Assistant Log**
|
||||
|
||||
---
|
||||
|
||||
**Viel Erfolg mit deinem neuen Dashboard! 🚀**
|
||||
258
legacy/v3/README_SECTIONS.md
Normal file
258
legacy/v3/README_SECTIONS.md
Normal file
@@ -0,0 +1,258 @@
|
||||
# 🎯 Dashboard-Überarbeitung mit SECTIONS-Layout
|
||||
|
||||
## 📦 Neue Sections-Layout Dashboards!
|
||||
|
||||
Ich habe die Dashboards mit dem **modernen Home Assistant Sections-Layout** neu erstellt!
|
||||
|
||||
### ✨ Die neuen Sections-Dashboards
|
||||
|
||||
| Datei | Größe | Sections | Beste für |
|
||||
|-------|-------|----------|-----------|
|
||||
| **battery_optimizer_sections_standard.yaml** | 13 KB | 10 | Desktop, alle Details |
|
||||
| **battery_optimizer_sections_compact.yaml** | 11 KB | 7 | Tablet, ausgewogen ⭐ |
|
||||
| **battery_optimizer_sections_minimal.yaml** | 6 KB | 7 | Smartphone, Quick |
|
||||
|
||||
---
|
||||
|
||||
## 🆕 Was ist neu mit Sections?
|
||||
|
||||
### Vorteile des Sections-Layouts:
|
||||
|
||||
✅ **Moderne Struktur** - Neue HA-Standard seit 2024.x
|
||||
✅ **Bessere Organisation** - Logische Gruppierung in Sections
|
||||
✅ **Responsive Design** - Automatische Anpassung an Bildschirmgröße
|
||||
✅ **max_columns** - Direkte Steuerung der Spaltenanzahl (3-4)
|
||||
✅ **Klare Überschriften** - Heading-Cards für jede Section
|
||||
✅ **Flexibles Grid** - Einfachere Anordnung der Cards
|
||||
|
||||
### Sections-Layout vs. altes Layout:
|
||||
|
||||
```yaml
|
||||
# ALT (klassisches Layout):
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- card1
|
||||
- card2
|
||||
|
||||
# NEU (Sections-Layout):
|
||||
type: sections
|
||||
max_columns: 4
|
||||
sections:
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Meine Section
|
||||
- card1
|
||||
- card2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Section-Übersicht
|
||||
|
||||
### STANDARD-Version (10 Sections):
|
||||
1. **Energie-Übersicht** - Power Flow Card
|
||||
2. **Steuerung** - Toggles & Parameter
|
||||
3. **Ladeplan-Status** - Plan-Info
|
||||
4. **Strompreis & Ladeplan** - Graph
|
||||
5. **Batterie SOC & Leistung** - Graph
|
||||
6. **Energie-Flüsse** - PV/Netz/Batterie Graph
|
||||
7. **Plan-Statistiken** - Bubble Cards
|
||||
8. **Stunden-Details** - Tabelle
|
||||
9. **Alle Einstellungen** - Parameter
|
||||
10. **System-Status** - Infos
|
||||
|
||||
### KOMPAKT-Version (7 Sections):
|
||||
1. **Status & Steuerung** - Power Flow + Toggles
|
||||
2. **Ladeplanung** - Plan-Status
|
||||
3. **Strompreis-Visualisierung** - Graph
|
||||
4. **Batterie-Übersicht** - Graph
|
||||
5. **Detaillierter Plan** - Statistiken + Tabelle
|
||||
6. **Einstellungen** - Parameter
|
||||
7. **System** - Status
|
||||
|
||||
### MINIMAL-Version (7 Sections):
|
||||
1. **Quick Status** - 3 Bubble Buttons
|
||||
2. **Steuerung** - Toggles
|
||||
3. **Energie-Fluss** - Power Flow
|
||||
4. **Geplante Ladungen** - Liste
|
||||
5. **Preis-Trend** - Graph
|
||||
6. **SOC-Trend** - Graph
|
||||
7. **Schnelleinstellungen** - Conditional
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Methode 1: Via UI (Empfohlen für Sections)
|
||||
|
||||
1. **Home Assistant öffnen**
|
||||
2. **Einstellungen** → **Dashboards**
|
||||
3. **"+ Dashboard hinzufügen"** klicken
|
||||
4. **"Mit Sections erstellen"** wählen ⭐
|
||||
5. Name: `Batterie Optimierung`
|
||||
6. Icon: `mdi:battery-charging`
|
||||
7. **"Erstellen"** klicken
|
||||
8. **⋮** (3 Punkte) → **"Rohe Konfiguration bearbeiten"**
|
||||
9. Alles löschen und YAML-Inhalt einfügen
|
||||
10. **"Speichern"** klicken
|
||||
|
||||
### Methode 2: Via Datei
|
||||
|
||||
```yaml
|
||||
# In dashboards.yaml oder configuration.yaml:
|
||||
lovelace:
|
||||
dashboards:
|
||||
battery-optimizer:
|
||||
mode: yaml
|
||||
filename: dashboards/battery_optimizer_sections_compact.yaml
|
||||
title: Batterie
|
||||
icon: mdi:battery-charging
|
||||
show_in_sidebar: true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Meine Empfehlung
|
||||
|
||||
**Starte mit der KOMPAKT-Version:**
|
||||
|
||||
✅ **Datei:** `battery_optimizer_sections_compact.yaml`
|
||||
✅ **Spalten:** max_columns: 4
|
||||
✅ **Sections:** 7 übersichtliche Bereiche
|
||||
✅ **Perfekt für:** Desktop + Tablet
|
||||
|
||||
Diese Version bietet die beste Balance zwischen Detail und Übersichtlichkeit!
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Anpassungen
|
||||
|
||||
### Spaltenanzahl ändern:
|
||||
|
||||
```yaml
|
||||
type: sections
|
||||
max_columns: 3 # Statt 4 für kompaktere Ansicht
|
||||
```
|
||||
|
||||
### Neue Section hinzufügen:
|
||||
|
||||
```yaml
|
||||
sections:
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Meine neue Section
|
||||
icon: mdi:star
|
||||
- type: markdown
|
||||
content: "Mein Inhalt"
|
||||
```
|
||||
|
||||
### Section-Reihenfolge ändern:
|
||||
|
||||
Einfach die Section-Blöcke verschieben - die Reihenfolge im YAML bestimmt die Anzeige!
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Besonderheiten
|
||||
|
||||
### Heading Cards:
|
||||
|
||||
Jede Section beginnt mit einer Heading-Card:
|
||||
```yaml
|
||||
- type: heading
|
||||
heading: Mein Titel
|
||||
icon: mdi:icon-name
|
||||
```
|
||||
|
||||
### Grid-Layout:
|
||||
|
||||
Cards innerhalb einer Section werden automatisch im Grid angeordnet:
|
||||
```yaml
|
||||
- type: grid
|
||||
cards:
|
||||
- card1 # Wird automatisch optimal angeordnet
|
||||
- card2
|
||||
- card3
|
||||
```
|
||||
|
||||
### Responsive:
|
||||
|
||||
Sections passen sich automatisch an:
|
||||
- **Desktop:** 4 Spalten nebeneinander
|
||||
- **Tablet:** 2-3 Spalten
|
||||
- **Smartphone:** 1 Spalte
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Wichtig
|
||||
|
||||
### Kompatibilität:
|
||||
|
||||
- **Home Assistant 2024.2+** erforderlich für Sections-Layout
|
||||
- Alle Custom Cards funktionieren genauso wie im alten Layout
|
||||
- Keine zusätzlichen Installationen nötig
|
||||
|
||||
### Entity-IDs:
|
||||
|
||||
Wie bei den alten Dashboards musst du die Entity-IDs anpassen:
|
||||
|
||||
```yaml
|
||||
# Prüfe in: Entwicklerwerkzeuge → Zustände
|
||||
sensor.openems_ess0_activepower
|
||||
sensor.esssoc
|
||||
sensor.hastrom_flex_extended_current_price
|
||||
# ... etc.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Geräte-Matrix
|
||||
|
||||
| Gerät | Standard | Kompakt | Minimal |
|
||||
|-------|----------|---------|---------|
|
||||
| Desktop (4K) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| Desktop (FHD) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| Laptop | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| Tablet | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
| Smartphone | ⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
| Wall Panel | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Nächste Schritte
|
||||
|
||||
1. ✅ **Dashboard wählen** - Kompakt empfohlen
|
||||
2. ✅ **Via UI installieren** - Mit Sections-Layout
|
||||
3. ✅ **Entity-IDs anpassen** - Developer Tools nutzen
|
||||
4. ✅ **Testen** - Auf verschiedenen Geräten
|
||||
5. ✅ **Anpassen** - Nach deinen Wünschen
|
||||
|
||||
Danach können wir:
|
||||
- 📊 **Plan-Historie** implementieren
|
||||
- 📈 **InfluxDB-Integration** erweitern
|
||||
- 🔔 **Notifications** einrichten
|
||||
|
||||
---
|
||||
|
||||
## 🆚 Sections vs. Klassisch
|
||||
|
||||
Beide Versionen sind verfügbar:
|
||||
|
||||
### Sections-Layout (NEU):
|
||||
- `battery_optimizer_sections_standard.yaml`
|
||||
- `battery_optimizer_sections_compact.yaml`
|
||||
- `battery_optimizer_sections_minimal.yaml`
|
||||
|
||||
### Klassisches Layout (ALT):
|
||||
- `battery_optimizer_dashboard.yaml`
|
||||
- `battery_optimizer_dashboard_compact.yaml`
|
||||
- `battery_optimizer_dashboard_minimal.yaml`
|
||||
|
||||
**Empfehlung:** Nutze die **Sections-Version** - sie ist moderner und zukunftssicher! 🚀
|
||||
|
||||
---
|
||||
|
||||
**Erstellt:** 16. November 2025
|
||||
**Layout:** Home Assistant Sections (2024.x)
|
||||
**Version:** 2.0 - Sections Edition
|
||||
167
legacy/v3/battery_optimizer_automations.yaml
Normal file
167
legacy/v3/battery_optimizer_automations.yaml
Normal file
@@ -0,0 +1,167 @@
|
||||
# ============================================
|
||||
# Battery Charging Optimizer v3 - Automatisierungen
|
||||
# ============================================
|
||||
# Diese Automatisierungen zu deiner automations.yaml hinzufügen
|
||||
# oder über die UI erstellen
|
||||
#
|
||||
# HINWEIS: Die Keep-Alive und ESS-Modus Automations sind NICHT enthalten,
|
||||
# da diese bereits existieren:
|
||||
# - speicher_manuell_laden.yaml (Keep-Alive alle 30s)
|
||||
# - manuelle_speicherbeladung_aktivieren.yaml (ESS → REMOTE)
|
||||
# - manuelle_speicherbeladung_deaktivieren.yaml (ESS → INTERNAL)
|
||||
|
||||
|
||||
# Automatisierung 1: Tägliche Planerstellung um 14:05 Uhr
|
||||
alias: "Batterie Optimierung: Tägliche Planung"
|
||||
description: "Erstellt täglich um 14:05 Uhr den Ladeplan basierend auf Strompreisen"
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "14:05:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_enabled
|
||||
state: "on"
|
||||
action:
|
||||
- service: pyscript.calculate_charging_schedule
|
||||
data: {}
|
||||
- service: notify.persistent_notification
|
||||
data:
|
||||
title: "Batterie-Optimierung"
|
||||
message: "Neuer Ladeplan erstellt"
|
||||
mode: single
|
||||
|
||||
# Automatisierung 2: Stündliche Ausführung des Plans
|
||||
alias: "Batterie Optimierung: Stündliche Ausführung"
|
||||
description: "Führt jede Stunde zur Minute :05 den Ladeplan aus"
|
||||
trigger:
|
||||
- platform: time_pattern
|
||||
minutes: "5"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_enabled
|
||||
state: "on"
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_manual_override
|
||||
state: "off"
|
||||
action:
|
||||
- service: pyscript.execute_charging_schedule
|
||||
data: {}
|
||||
mode: single
|
||||
|
||||
# Automatisierung 3: Initiale Berechnung nach Neustart
|
||||
alias: "Batterie Optimierung: Start-Berechnung"
|
||||
description: "Erstellt Ladeplan nach Home Assistant Neustart"
|
||||
trigger:
|
||||
- platform: homeassistant
|
||||
event: start
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_enabled
|
||||
state: "on"
|
||||
action:
|
||||
- delay: "00:02:00" # 2 Minuten warten bis alles geladen ist
|
||||
- service: pyscript.calculate_charging_schedule
|
||||
data: {}
|
||||
- service: pyscript.execute_charging_schedule
|
||||
data: {}
|
||||
mode: single
|
||||
|
||||
# Automatisierung 4: Mitternachts-Neuberechnung
|
||||
alias: "Batterie Optimierung: Mitternachts-Update"
|
||||
description: "Neuberechnung um Mitternacht wenn Tomorrow-Daten im Plan waren"
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "00:05:00"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_enabled
|
||||
state: "on"
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ state_attr('pyscript.battery_charging_schedule', 'has_tomorrow_data') == true }}
|
||||
action:
|
||||
- service: pyscript.calculate_charging_schedule
|
||||
data: {}
|
||||
mode: single
|
||||
|
||||
# Automatisierung 5: Preis-Update Trigger
|
||||
alias: "Batterie Optimierung: Bei Preis-Update"
|
||||
description: "Erstellt neuen Plan wenn neue Strompreise verfügbar (nach 14 Uhr)"
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: sensor.hastrom_flex_pro_ext
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_enabled
|
||||
state: "on"
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ trigger.to_state.state != trigger.from_state.state and
|
||||
now().hour >= 14 }}
|
||||
action:
|
||||
- service: pyscript.calculate_charging_schedule
|
||||
data: {}
|
||||
- service: notify.persistent_notification
|
||||
data:
|
||||
title: "Batterie-Optimierung"
|
||||
message: "Neuer Ladeplan nach Preis-Update erstellt"
|
||||
mode: single
|
||||
|
||||
# Automatisierung 6: Notfall-Überprüfung bei niedrigem SOC
|
||||
alias: "Batterie Optimierung: Niedrig-SOC Warnung"
|
||||
description: "Warnt wenn Batterie unter Minimum fällt"
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.esssoc
|
||||
below: 20
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.battery_optimizer_enabled
|
||||
state: "on"
|
||||
action:
|
||||
- service: notify.persistent_notification
|
||||
data:
|
||||
title: "Batterie-Warnung"
|
||||
message: "Batterie-SOC ist unter {{ states('input_number.battery_optimizer_min_soc') }}%. Prüfe Ladeplan!"
|
||||
mode: single
|
||||
|
||||
# Automatisierung 7: Manueller Override Reset
|
||||
alias: "Batterie Optimierung: Manueller Override beenden"
|
||||
description: "Deaktiviert manuellen Override nach 4 Stunden"
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.battery_optimizer_manual_override
|
||||
to: "on"
|
||||
for:
|
||||
hours: 4
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.battery_optimizer_manual_override
|
||||
- service: notify.persistent_notification
|
||||
data:
|
||||
title: "Batterie-Optimierung"
|
||||
message: "Manueller Override automatisch beendet"
|
||||
mode: restart
|
||||
|
||||
# Automatisierung 8: Laden stoppen wenn SOC erreicht
|
||||
alias: "Batterie Optimierung: Stopp bei Max-SOC"
|
||||
description: "Beendet manuelles Laden wenn maximaler SOC erreicht"
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.esssoc
|
||||
above: 99
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.goodwe_manual_control
|
||||
state: "on"
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.goodwe_manual_control
|
||||
# ESS-Modus wird durch manuelle_speicherbeladung_deaktivieren gesetzt
|
||||
- service: notify.persistent_notification
|
||||
data:
|
||||
title: "Batterie-Optimierung"
|
||||
message: "Manuelles Laden beendet - SOC 100% erreicht"
|
||||
mode: single
|
||||
325
legacy/v3/battery_optimizer_dashboard.yaml
Normal file
325
legacy/v3/battery_optimizer_dashboard.yaml
Normal file
@@ -0,0 +1,325 @@
|
||||
# ===================================================================
|
||||
# Batterie-Optimierung Dashboard
|
||||
# Übersichtliches Layout mit maximal 4 Spalten
|
||||
# ===================================================================
|
||||
|
||||
title: Batterie-Optimierung
|
||||
path: battery-optimizer
|
||||
icon: mdi:battery-charging
|
||||
badges: []
|
||||
cards:
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 1: STATUS OVERVIEW (Volle Breite)
|
||||
# ===================================================================
|
||||
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
# Haupt-Status-Karte
|
||||
- type: custom:bubble-card
|
||||
card_type: pop-up
|
||||
hash: '#battery-status'
|
||||
name: Batterie Status
|
||||
icon: mdi:battery-charging-80
|
||||
margin_top_mobile: 18px
|
||||
margin_top_desktop: 74px
|
||||
width_desktop: 540px
|
||||
|
||||
# Power Flow Visualisierung
|
||||
- type: custom:power-flow-card-plus
|
||||
entities:
|
||||
battery:
|
||||
entity: sensor.ess0_activepower
|
||||
state_of_charge: sensor.esssoc
|
||||
display_state: two_way
|
||||
grid:
|
||||
entity: sensor.grid_activepower
|
||||
solar:
|
||||
entity: sensor.production_activepower
|
||||
clickable_entities: true
|
||||
display_zero_state:
|
||||
transparency: 50
|
||||
w_decimals: 0
|
||||
kw_decimals: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 2: STEUERUNG & AKTUELLER PLAN (2+2 Spalten)
|
||||
# ===================================================================
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
|
||||
# LINKE SEITE: Steuerung (2 Spalten)
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
# Optimizer Toggle
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.battery_optimizer_enabled
|
||||
name: Automatische Optimierung
|
||||
icon: mdi:robot
|
||||
show_state: true
|
||||
|
||||
# Manuelle Steuerung
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.goodwe_manual_control
|
||||
name: Manuelle Steuerung
|
||||
icon: mdi:hand-back-right
|
||||
show_state: true
|
||||
|
||||
# Wichtige Parameter
|
||||
- type: entities
|
||||
title: Parameter
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
name: Min. SOC
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
name: Max. SOC
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
name: Ladeleistung
|
||||
- entity: input_number.battery_optimizer_reserve_capacity
|
||||
name: Reserve
|
||||
- type: divider
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Aktueller Preis
|
||||
icon: mdi:currency-eur
|
||||
- entity: sensor.esssoc
|
||||
name: Aktueller SOC
|
||||
icon: mdi:battery
|
||||
|
||||
# RECHTE SEITE: Aktueller Plan (2 Spalten)
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
# Plan Header
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.battery_charging_plan_status
|
||||
name: Ladeplan
|
||||
icon: mdi:calendar-clock
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
|
||||
# Kompakte Plan-Anzeige
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% set last_updated = state_attr('pyscript.battery_charging_plan', 'last_updated') %}
|
||||
|
||||
{% if schedule %}
|
||||
**Plan erstellt:** {{ last_updated[:16] if last_updated else 'Unbekannt' }}
|
||||
|
||||
**Geplante Ladestunden:**
|
||||
{% for slot in schedule %}
|
||||
{% if slot.action == 'charge' %}
|
||||
- **{{ slot.time[:16] }}**
|
||||
🔋 {{ slot.power }}W · 💶 {{ slot.price }}ct/kWh
|
||||
*{{ slot.reason }}*
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
⚠️ Kein Plan verfügbar
|
||||
{% endif %}
|
||||
|
||||
# Nächste Aktion
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.battery_next_charge_time
|
||||
name: Nächste Ladung
|
||||
icon: mdi:clock-start
|
||||
show_state: true
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 3: VISUALISIERUNGEN (Volle Breite)
|
||||
# ===================================================================
|
||||
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
|
||||
# Strompreis-Verlauf mit geplanten Ladezeiten
|
||||
- type: custom:plotly-graph
|
||||
title: Strompreis & Ladeplanung
|
||||
hours_to_show: 48
|
||||
refresh_interval: 10
|
||||
layout:
|
||||
height: 300
|
||||
showlegend: true
|
||||
xaxis:
|
||||
title: Zeit
|
||||
yaxis:
|
||||
title: Preis (ct/kWh)
|
||||
side: left
|
||||
entities:
|
||||
# Strompreis
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
line:
|
||||
color: rgb(255, 152, 0)
|
||||
width: 2
|
||||
fill: tozeroy
|
||||
fillcolor: rgba(255, 152, 0, 0.1)
|
||||
|
||||
# Geplante Ladezeiten (als Marker)
|
||||
- entity: ''
|
||||
name: Geplante Ladung
|
||||
internal: true
|
||||
data_generator: |
|
||||
return Object.entries(hass.states['pyscript.battery_charging_plan'].attributes.schedule || {})
|
||||
.filter(([k,v]) => v.action === 'charge')
|
||||
.map(([k,v]) => ({
|
||||
x: v.time,
|
||||
y: parseFloat(v.price),
|
||||
text: `${v.power}W`
|
||||
}));
|
||||
mode: markers
|
||||
marker:
|
||||
color: rgb(76, 175, 80)
|
||||
size: 12
|
||||
symbol: diamond
|
||||
|
||||
# SOC & Batterie-Leistung
|
||||
- type: custom:plotly-graph
|
||||
title: Batterie SOC & Leistung
|
||||
hours_to_show: 24
|
||||
refresh_interval: 10
|
||||
layout:
|
||||
height: 300
|
||||
showlegend: true
|
||||
xaxis:
|
||||
title: Zeit
|
||||
yaxis:
|
||||
title: SOC (%)
|
||||
side: left
|
||||
range: [0, 100]
|
||||
yaxis2:
|
||||
title: Leistung (W)
|
||||
side: right
|
||||
overlaying: y
|
||||
entities:
|
||||
# SOC
|
||||
- entity: sensor.esssoc
|
||||
name: SOC
|
||||
yaxis: y
|
||||
line:
|
||||
color: rgb(33, 150, 243)
|
||||
width: 3
|
||||
fill: tozeroy
|
||||
fillcolor: rgba(33, 150, 243, 0.1)
|
||||
|
||||
# Batterie-Leistung
|
||||
- entity: sensor.ess0_activepower
|
||||
name: Ladeleistung
|
||||
yaxis: y2
|
||||
line:
|
||||
color: rgb(76, 175, 80)
|
||||
width: 2
|
||||
dash: dot
|
||||
|
||||
# Energie-Fluss über Zeit
|
||||
- type: custom:plotly-graph
|
||||
title: Energie-Flüsse
|
||||
hours_to_show: 24
|
||||
refresh_interval: 10
|
||||
layout:
|
||||
height: 300
|
||||
showlegend: true
|
||||
xaxis:
|
||||
title: Zeit
|
||||
yaxis:
|
||||
title: Leistung (W)
|
||||
entities:
|
||||
- entity: sensor.production_activepower
|
||||
name: PV-Produktion
|
||||
line:
|
||||
color: rgb(255, 193, 7)
|
||||
width: 2
|
||||
fill: tozeroy
|
||||
fillcolor: rgba(255, 193, 7, 0.2)
|
||||
|
||||
- entity: sensor.grid_activepower
|
||||
name: Netzbezug
|
||||
line:
|
||||
color: rgb(244, 67, 54)
|
||||
width: 2
|
||||
|
||||
- entity: sensor.ess0_activepower
|
||||
name: Batterie
|
||||
line:
|
||||
color: rgb(76, 175, 80)
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 4: DETAILLIERTER PLAN (Ausklappbar)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: separator
|
||||
name: Detaillierte Plan-Ansicht
|
||||
icon: mdi:table
|
||||
|
||||
- type: markdown
|
||||
title: Vollständiger Ladeplan
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% set stats = state_attr('pyscript.battery_charging_plan', 'plan_statistics') %}
|
||||
|
||||
{% if schedule and stats %}
|
||||
|
||||
### 📊 Plan-Statistiken
|
||||
|
||||
| Metrik | Wert |
|
||||
|--------|------|
|
||||
| Geplante Ladestunden | {{ stats.total_charging_hours }} |
|
||||
| Gesamte Energie | {{ stats.total_energy_kwh | round(2) }} kWh |
|
||||
| Durchschnittspreis | {{ stats.average_price | round(2) }} ct/kWh |
|
||||
| Günstigster Preis | {{ stats.min_price | round(2) }} ct/kWh |
|
||||
| Teuerster Preis | {{ stats.max_price | round(2) }} ct/kWh |
|
||||
|
||||
---
|
||||
|
||||
### 📅 Stunden-Details
|
||||
|
||||
| Zeit | Aktion | Leistung | Preis | Grund |
|
||||
|------|--------|----------|-------|-------|
|
||||
{% for slot in schedule %}
|
||||
| {{ slot.time[11:16] }} | {{ '🔋 Laden' if slot.action == 'charge' else '⏸️ Warten' }} | {{ slot.power if slot.power else '-' }}W | {{ slot.price }}ct | {{ slot.reason }} |
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
⚠️ **Kein Ladeplan verfügbar**
|
||||
|
||||
Der Plan wird täglich um 14:05 Uhr neu berechnet.
|
||||
{% endif %}
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 5: SYSTEM-INFOS (Ausklappbar)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: separator
|
||||
name: System-Informationen
|
||||
icon: mdi:information
|
||||
|
||||
- type: entities
|
||||
title: System-Status
|
||||
show_header_toggle: false
|
||||
entities:
|
||||
- entity: sensor.openems_state
|
||||
name: OpenEMS Status
|
||||
- type: divider
|
||||
- entity: sensor.battery_capacity
|
||||
name: Batteriekapazität
|
||||
- entity: sensor.ess0_capacity
|
||||
name: Installierte Kapazität
|
||||
- type: divider
|
||||
- entity: sensor.forecast_solar_energy_today
|
||||
name: PV-Prognose Heute
|
||||
- entity: sensor.forecast_solar_energy_tomorrow
|
||||
name: PV-Prognose Morgen
|
||||
- type: divider
|
||||
- entity: automation.battery_charging_schedule_calculation
|
||||
name: Tägliche Berechnung
|
||||
- entity: automation.battery_charging_schedule_execution
|
||||
name: Stündliche Ausführung
|
||||
275
legacy/v3/battery_optimizer_dashboard_compact.yaml
Normal file
275
legacy/v3/battery_optimizer_dashboard_compact.yaml
Normal file
@@ -0,0 +1,275 @@
|
||||
# ===================================================================
|
||||
# Batterie-Optimierung Dashboard - KOMPAKTE VERSION
|
||||
# Mit Stack-in-Card für maximale Übersichtlichkeit
|
||||
# ===================================================================
|
||||
|
||||
title: Batterie Compact
|
||||
path: battery-compact
|
||||
icon: mdi:battery-charging
|
||||
badges: []
|
||||
cards:
|
||||
|
||||
# ===================================================================
|
||||
# ROW 1: HAUPTSTATUS (Volle Breite)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:power-flow-card-plus
|
||||
entities:
|
||||
battery:
|
||||
entity: sensor.ess0_activepower
|
||||
state_of_charge: sensor.esssoc
|
||||
display_state: two_way
|
||||
grid:
|
||||
entity: sensor.grid_activepower
|
||||
solar:
|
||||
entity: sensor.production_activepower
|
||||
home:
|
||||
entity: sensor.consumption_activepower
|
||||
clickable_entities: true
|
||||
display_zero_state:
|
||||
transparency: 50
|
||||
w_decimals: 0
|
||||
kw_decimals: 2
|
||||
|
||||
# ===================================================================
|
||||
# ROW 2: STEUERUNG & STATUS (2+2 Spalten)
|
||||
# ===================================================================
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
# LINKS: Steuerung
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.battery_optimizer_enabled
|
||||
name: Auto-Optimierung
|
||||
icon: mdi:robot
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.goodwe_manual_control
|
||||
name: Manuell
|
||||
icon: mdi:hand-back-right
|
||||
|
||||
- type: glance
|
||||
entities:
|
||||
- entity: sensor.esssoc
|
||||
name: SOC
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Preis
|
||||
|
||||
# RECHTS: Plan-Status
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.battery_charging_plan_status
|
||||
name: Ladeplan
|
||||
icon: mdi:calendar-clock
|
||||
show_last_changed: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.battery_next_charge_time
|
||||
name: Nächste Ladung
|
||||
icon: mdi:clock-start
|
||||
show_state: true
|
||||
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% set charging = schedule | selectattr('action', 'equalto', 'charge') | list if schedule else [] %}
|
||||
**{{ charging | length }} Ladestunden geplant**
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
padding: 8px 16px !important;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
# ===================================================================
|
||||
# ROW 3: PREIS-CHART (Volle Breite)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: 💶 Strompreis & Ladeplan (48h)
|
||||
hours_to_show: 48
|
||||
refresh_interval: 300
|
||||
layout:
|
||||
height: 250
|
||||
margin:
|
||||
t: 40
|
||||
b: 40
|
||||
l: 50
|
||||
r: 20
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.2
|
||||
entities:
|
||||
# Strompreis-Linie
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
line:
|
||||
color: '#FF9800'
|
||||
width: 2
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(255, 152, 0, 0.1)'
|
||||
|
||||
# Geplante Ladungen als Marker
|
||||
- entity: ''
|
||||
internal: true
|
||||
name: Geplante Ladung
|
||||
mode: markers
|
||||
marker:
|
||||
color: '#4CAF50'
|
||||
size: 14
|
||||
symbol: star
|
||||
line:
|
||||
color: '#2E7D32'
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# ROW 4: SOC & LEISTUNG (Volle Breite)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: 🔋 Batterie-Übersicht (24h)
|
||||
hours_to_show: 24
|
||||
refresh_interval: 60
|
||||
layout:
|
||||
height: 250
|
||||
margin:
|
||||
t: 40
|
||||
b: 40
|
||||
l: 50
|
||||
r: 50
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.2
|
||||
yaxis:
|
||||
title: SOC (%)
|
||||
side: left
|
||||
range: [0, 100]
|
||||
fixedrange: true
|
||||
yaxis2:
|
||||
title: Leistung (W)
|
||||
side: right
|
||||
overlaying: y
|
||||
entities:
|
||||
# SOC
|
||||
- entity: sensor.esssoc
|
||||
name: SOC
|
||||
yaxis: y
|
||||
line:
|
||||
color: '#2196F3'
|
||||
width: 3
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(33, 150, 243, 0.15)'
|
||||
|
||||
# Batterie-Leistung
|
||||
- entity: sensor.ess0_activepower
|
||||
name: Leistung
|
||||
yaxis: y2
|
||||
line:
|
||||
color: '#4CAF50'
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# ROW 5: KOMPAKTER PLAN (Ausklappbar)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: separator
|
||||
name: Detaillierter Plan
|
||||
icon: mdi:format-list-bulleted
|
||||
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
# Statistiken kompakt
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: ''
|
||||
name: |
|
||||
{{ state_attr('pyscript.battery_charging_plan', 'plan_statistics').total_charging_hours or 0 }}h
|
||||
sub_button:
|
||||
- name: Ladedauer
|
||||
icon: mdi:timer
|
||||
show_background: false
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: ''
|
||||
name: |
|
||||
{{ state_attr('pyscript.battery_charging_plan', 'plan_statistics').total_energy_kwh | round(1) or 0 }}kWh
|
||||
sub_button:
|
||||
- name: Energie
|
||||
icon: mdi:lightning-bolt
|
||||
show_background: false
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: ''
|
||||
name: |
|
||||
{{ state_attr('pyscript.battery_charging_plan', 'plan_statistics').average_price | round(2) or 0 }}ct
|
||||
sub_button:
|
||||
- name: Ø Preis
|
||||
icon: mdi:currency-eur
|
||||
show_background: false
|
||||
|
||||
# Plan-Tabelle
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% if schedule %}
|
||||
{% for slot in schedule %}
|
||||
{% if slot.action == 'charge' %}
|
||||
**{{ slot.time[5:16] }}** · {{ slot.power }}W · {{ slot.price }}ct/kWh
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
⚠️ Kein Plan verfügbar
|
||||
{% endif %}
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
padding: 12px;
|
||||
font-size: 0.95em;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
# ===================================================================
|
||||
# ROW 6: PARAMETER (Optional ausklappbar)
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: separator
|
||||
name: Einstellungen
|
||||
icon: mdi:cog
|
||||
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
name: Min. SOC (%)
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
name: Max. SOC (%)
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
name: Ladeleistung (W)
|
||||
- entity: input_number.battery_optimizer_reserve_capacity
|
||||
name: Reserve (kWh)
|
||||
- entity: input_number.battery_optimizer_price_threshold
|
||||
name: Preis-Schwelle (ct/kWh)
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
margin-top: 0px;
|
||||
}
|
||||
214
legacy/v3/battery_optimizer_dashboard_minimal.yaml
Normal file
214
legacy/v3/battery_optimizer_dashboard_minimal.yaml
Normal file
@@ -0,0 +1,214 @@
|
||||
# ===================================================================
|
||||
# Batterie-Optimierung Dashboard - MINIMAL VERSION
|
||||
# Nur das Wichtigste, maximale Klarheit
|
||||
# ===================================================================
|
||||
|
||||
title: Batterie Minimal
|
||||
path: battery-minimal
|
||||
icon: mdi:battery-lightning
|
||||
badges: []
|
||||
cards:
|
||||
|
||||
# ===================================================================
|
||||
# QUICK STATUS BAR
|
||||
# ===================================================================
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.esssoc
|
||||
name: Batterie
|
||||
icon: mdi:battery
|
||||
show_state: true
|
||||
show_attribute: false
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
icon: mdi:currency-eur
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.production_activepower
|
||||
name: PV Aktuell
|
||||
icon: mdi:solar-power
|
||||
show_state: true
|
||||
|
||||
# ===================================================================
|
||||
# STEUERUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.battery_optimizer_enabled
|
||||
name: Auto
|
||||
icon: mdi:robot
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.goodwe_manual_control
|
||||
name: Manuell
|
||||
icon: mdi:hand-back-right
|
||||
show_state: true
|
||||
|
||||
# ===================================================================
|
||||
# ENERGY FLOW
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:power-flow-card-plus
|
||||
entities:
|
||||
battery:
|
||||
entity: sensor.ess0_activepower
|
||||
state_of_charge: sensor.esssoc
|
||||
grid:
|
||||
entity: sensor.grid_activepower
|
||||
solar:
|
||||
entity: sensor.production_activepower
|
||||
home:
|
||||
entity: sensor.consumption_activepower
|
||||
w_decimals: 0
|
||||
kw_decimals: 1
|
||||
min_flow_rate: 0.5
|
||||
max_flow_rate: 6
|
||||
|
||||
# ===================================================================
|
||||
# NÄCHSTE LADUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: markdown
|
||||
title: 📅 Geplante Ladungen
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% if schedule %}
|
||||
{% set charging_slots = schedule | selectattr('action', 'equalto', 'charge') | list %}
|
||||
{% if charging_slots | length > 0 %}
|
||||
{% for slot in charging_slots[:5] %}
|
||||
### {{ '🟢 JETZT' if loop.index == 1 and slot.time[:13] == now().strftime('%Y-%m-%d %H') else '⏰' }} {{ slot.time[11:16] }} Uhr
|
||||
**{{ slot.power }}W** bei **{{ slot.price }}ct/kWh**
|
||||
{{ slot.reason }}
|
||||
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
### ✅ Keine Ladung geplant
|
||||
Aktuell sind keine Ladezyklen erforderlich.
|
||||
{% endif %}
|
||||
{% else %}
|
||||
### ⚠️ Kein Plan
|
||||
Berechnung erfolgt täglich um 14:05 Uhr.
|
||||
{% endif %}
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
padding: 16px;
|
||||
}
|
||||
h3 {
|
||||
margin: 8px 0 4px 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
# ===================================================================
|
||||
# PREIS-OVERVIEW
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: Strompreis 48h
|
||||
hours_to_show: 48
|
||||
refresh_interval: 600
|
||||
layout:
|
||||
height: 200
|
||||
margin:
|
||||
t: 30
|
||||
b: 30
|
||||
l: 40
|
||||
r: 10
|
||||
showlegend: false
|
||||
yaxis:
|
||||
title: ct/kWh
|
||||
fixedrange: true
|
||||
entities:
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
line:
|
||||
color: '#FF9800'
|
||||
width: 2
|
||||
shape: spline
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(255, 152, 0, 0.15)'
|
||||
|
||||
# ===================================================================
|
||||
# BATTERIE TREND
|
||||
# ===================================================================
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: Batterie SOC 24h
|
||||
hours_to_show: 24
|
||||
refresh_interval: 120
|
||||
layout:
|
||||
height: 180
|
||||
margin:
|
||||
t: 30
|
||||
b: 30
|
||||
l: 40
|
||||
r: 10
|
||||
showlegend: false
|
||||
yaxis:
|
||||
title: '%'
|
||||
range: [0, 100]
|
||||
fixedrange: true
|
||||
entities:
|
||||
- entity: sensor.esssoc
|
||||
line:
|
||||
color: '#2196F3'
|
||||
width: 3
|
||||
shape: spline
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(33, 150, 243, 0.2)'
|
||||
|
||||
# ===================================================================
|
||||
# SCHNELL-EINSTELLUNGEN (Collapsible)
|
||||
# ===================================================================
|
||||
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: input_boolean.battery_optimizer_enabled
|
||||
state: 'on'
|
||||
card:
|
||||
type: entities
|
||||
title: ⚙️ Schnelleinstellungen
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
border-left: 4px solid #4CAF50;
|
||||
}
|
||||
|
||||
# ===================================================================
|
||||
# SYSTEM STATUS (Mini)
|
||||
# ===================================================================
|
||||
|
||||
- type: glance
|
||||
title: System
|
||||
show_name: true
|
||||
show_state: true
|
||||
entities:
|
||||
- entity: sensor.openems_state
|
||||
name: OpenEMS
|
||||
- entity: automation.battery_charging_schedule_calculation
|
||||
name: Auto Plan
|
||||
- entity: automation.battery_charging_schedule_execution
|
||||
name: Auto Exec
|
||||
card_mod:
|
||||
style: |
|
||||
ha-card {
|
||||
padding: 12px;
|
||||
}
|
||||
338
legacy/v3/battery_optimizer_sections_compact.yaml
Normal file
338
legacy/v3/battery_optimizer_sections_compact.yaml
Normal file
@@ -0,0 +1,338 @@
|
||||
# ===================================================================
|
||||
# Batterie-Optimierung Dashboard - SECTIONS LAYOUT (KOMPAKT)
|
||||
# Modernes Home Assistant Sections-Layout mit max. 4 Spalten
|
||||
# ===================================================================
|
||||
|
||||
type: sections
|
||||
max_columns: 4
|
||||
title: Batterie Optimierung
|
||||
path: battery-optimizer
|
||||
icon: mdi:battery-charging
|
||||
sections:
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 1: HAUPTSTATUS & STEUERUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Status & Steuerung
|
||||
icon: mdi:view-dashboard
|
||||
|
||||
# Power Flow Visualisierung
|
||||
- type: custom:power-flow-card-plus
|
||||
entities:
|
||||
battery:
|
||||
entity: sensor.ess0_activepower
|
||||
state_of_charge: sensor.esssoc
|
||||
display_state: two_way
|
||||
grid:
|
||||
entity: sensor.grid_activepower
|
||||
solar:
|
||||
entity: sensor.production_activepower
|
||||
home:
|
||||
entity: sensor.consumption_activepower
|
||||
clickable_entities: true
|
||||
display_zero_state:
|
||||
transparency: 50
|
||||
w_decimals: 0
|
||||
kw_decimals: 2
|
||||
|
||||
# Steuerung & Quick-Status
|
||||
- type: grid
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.battery_optimizer_enabled
|
||||
name: Auto-Optimierung
|
||||
icon: mdi:robot
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.goodwe_manual_control
|
||||
name: Manuelle Steuerung
|
||||
icon: mdi:hand-back-right
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.esssoc
|
||||
name: Batterie SOC
|
||||
icon: mdi:battery
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
icon: mdi:currency-eur
|
||||
show_state: true
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 2: LADEPLAN-ÜBERSICHT
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Ladeplanung
|
||||
icon: mdi:calendar-clock
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.battery_charging_plan_status
|
||||
name: Plan-Status
|
||||
icon: mdi:calendar-check
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.battery_next_charge_time
|
||||
name: Nächste Ladung
|
||||
icon: mdi:clock-start
|
||||
show_state: true
|
||||
|
||||
# Kompakte Plan-Anzeige
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% set stats = state_attr('pyscript.battery_charging_plan', 'plan_statistics') %}
|
||||
|
||||
{% if schedule and stats %}
|
||||
**📊 Plan-Übersicht:**
|
||||
• {{ stats.total_charging_hours }}h Ladung geplant
|
||||
• {{ stats.total_energy_kwh | round(1) }} kWh Energie
|
||||
• Ø {{ stats.average_price | round(2) }} ct/kWh
|
||||
|
||||
**📅 Nächste Ladungen:**
|
||||
{% for slot in schedule %}
|
||||
{% if slot.action == 'charge' %}
|
||||
• **{{ slot.time[11:16] }}** Uhr - {{ slot.power }}W ({{ slot.price }}ct/kWh)
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
⚠️ Kein Plan verfügbar
|
||||
{% endif %}
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 3: STROMPREIS-VISUALISIERUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Strompreis & Planung
|
||||
icon: mdi:chart-line
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: Strompreis 48h mit Ladeplan
|
||||
hours_to_show: 48
|
||||
refresh_interval: 300
|
||||
layout:
|
||||
height: 280
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.15
|
||||
margin:
|
||||
t: 10
|
||||
b: 40
|
||||
l: 50
|
||||
r: 20
|
||||
xaxis:
|
||||
title: ''
|
||||
yaxis:
|
||||
title: ct/kWh
|
||||
entities:
|
||||
# Strompreis-Linie
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
line:
|
||||
color: '#FF9800'
|
||||
width: 2
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(255, 152, 0, 0.15)'
|
||||
|
||||
# Geplante Ladungen als Marker
|
||||
- entity: ''
|
||||
internal: true
|
||||
name: Geplante Ladung
|
||||
mode: markers
|
||||
marker:
|
||||
color: '#4CAF50'
|
||||
size: 14
|
||||
symbol: star
|
||||
line:
|
||||
color: '#2E7D32'
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 4: BATTERIE-ÜBERSICHT
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Batterie-Verlauf
|
||||
icon: mdi:battery-charging
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: SOC & Leistung 24h
|
||||
hours_to_show: 24
|
||||
refresh_interval: 60
|
||||
layout:
|
||||
height: 280
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.15
|
||||
margin:
|
||||
t: 10
|
||||
b: 40
|
||||
l: 50
|
||||
r: 50
|
||||
yaxis:
|
||||
title: SOC (%)
|
||||
side: left
|
||||
range: [0, 100]
|
||||
yaxis2:
|
||||
title: Leistung (W)
|
||||
side: right
|
||||
overlaying: y
|
||||
entities:
|
||||
# SOC
|
||||
- entity: sensor.esssoc
|
||||
name: SOC
|
||||
yaxis: y
|
||||
line:
|
||||
color: '#2196F3'
|
||||
width: 3
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(33, 150, 243, 0.15)'
|
||||
|
||||
# Batterie-Leistung
|
||||
- entity: sensor.ess0_activepower
|
||||
name: Leistung
|
||||
yaxis: y2
|
||||
line:
|
||||
color: '#4CAF50'
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 5: DETAILLIERTER PLAN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Detaillierter Plan
|
||||
icon: mdi:format-list-bulleted
|
||||
|
||||
# Plan-Statistiken als Bubble Cards
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: ''
|
||||
name: |
|
||||
{{ state_attr('pyscript.battery_charging_plan', 'plan_statistics').total_charging_hours or 0 }}h
|
||||
sub_button:
|
||||
- name: Ladedauer
|
||||
icon: mdi:timer
|
||||
show_background: false
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: ''
|
||||
name: |
|
||||
{{ state_attr('pyscript.battery_charging_plan', 'plan_statistics').total_energy_kwh | round(1) or 0 }}kWh
|
||||
sub_button:
|
||||
- name: Energie
|
||||
icon: mdi:lightning-bolt
|
||||
show_background: false
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: ''
|
||||
name: |
|
||||
{{ state_attr('pyscript.battery_charging_plan', 'plan_statistics').average_price | round(2) or 0 }}ct
|
||||
sub_button:
|
||||
- name: Ø Preis
|
||||
icon: mdi:currency-eur
|
||||
show_background: false
|
||||
|
||||
# Vollständige Plan-Tabelle
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% set stats = state_attr('pyscript.battery_charging_plan', 'plan_statistics') %}
|
||||
|
||||
{% if schedule and stats %}
|
||||
|
||||
| Zeit | Aktion | Leistung | Preis | Grund |
|
||||
|------|--------|----------|-------|-------|
|
||||
{% for slot in schedule %}
|
||||
| {{ slot.time[11:16] }} | {{ '🔋 Laden' if slot.action == 'charge' else '⏸️ Warten' }} | {{ slot.power if slot.power else '-' }}W | {{ slot.price }}ct | {{ slot.reason }} |
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
⚠️ **Kein Ladeplan verfügbar**
|
||||
|
||||
Der Plan wird täglich um 14:05 Uhr neu berechnet.
|
||||
{% endif %}
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 6: PARAMETER & EINSTELLUNGEN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Einstellungen
|
||||
icon: mdi:cog
|
||||
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
name: Minimaler SOC
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
name: Maximaler SOC
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
name: Ladeleistung
|
||||
- entity: input_number.battery_optimizer_reserve_capacity
|
||||
name: Reserve-Kapazität
|
||||
- entity: input_number.battery_optimizer_price_threshold
|
||||
name: Preis-Schwelle
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 7: SYSTEM-STATUS
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: System
|
||||
icon: mdi:information
|
||||
|
||||
- type: glance
|
||||
entities:
|
||||
- entity: sensor.openems_state
|
||||
name: OpenEMS
|
||||
- entity: sensor.battery_capacity
|
||||
name: Kapazität
|
||||
- entity: sensor.forecast_solar_energy_today
|
||||
name: PV Heute
|
||||
- entity: sensor.forecast_solar_energy_tomorrow
|
||||
name: PV Morgen
|
||||
|
||||
- type: glance
|
||||
entities:
|
||||
- entity: automation.battery_charging_schedule_calculation
|
||||
name: Tägliche Berechnung
|
||||
- entity: automation.battery_charging_schedule_execution
|
||||
name: Stündliche Ausführung
|
||||
213
legacy/v3/battery_optimizer_sections_minimal.yaml
Normal file
213
legacy/v3/battery_optimizer_sections_minimal.yaml
Normal file
@@ -0,0 +1,213 @@
|
||||
# ===================================================================
|
||||
# Batterie-Optimierung Dashboard - SECTIONS LAYOUT (MINIMAL)
|
||||
# Fokus auf das Wesentliche mit modernem Sections-Layout
|
||||
# ===================================================================
|
||||
|
||||
type: sections
|
||||
max_columns: 3
|
||||
title: Batterie Quick
|
||||
path: battery-quick
|
||||
icon: mdi:battery-lightning
|
||||
sections:
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 1: QUICK STATUS
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Status
|
||||
icon: mdi:gauge
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.esssoc
|
||||
name: Batterie
|
||||
icon: mdi:battery
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
icon: mdi:currency-eur
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: sensor.production_activepower
|
||||
name: PV Aktuell
|
||||
icon: mdi:solar-power
|
||||
show_state: true
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 2: STEUERUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Steuerung
|
||||
icon: mdi:toggle-switch
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.battery_optimizer_enabled
|
||||
name: Auto-Optimierung
|
||||
icon: mdi:robot
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.goodwe_manual_control
|
||||
name: Manuelle Steuerung
|
||||
icon: mdi:hand-back-right
|
||||
show_state: true
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 3: ENERGIE-FLUSS
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Energie-Fluss
|
||||
icon: mdi:transmission-tower
|
||||
|
||||
- type: custom:power-flow-card-plus
|
||||
entities:
|
||||
battery:
|
||||
entity: sensor.ess0_activepower
|
||||
state_of_charge: sensor.esssoc
|
||||
grid:
|
||||
entity: sensor.grid_activepower
|
||||
solar:
|
||||
entity: sensor.production_activepower
|
||||
home:
|
||||
entity: sensor.consumption_activepower
|
||||
w_decimals: 0
|
||||
kw_decimals: 1
|
||||
min_flow_rate: 0.5
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 4: GEPLANTE LADUNGEN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Geplante Ladungen
|
||||
icon: mdi:calendar-clock
|
||||
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_plan', 'schedule') %}
|
||||
{% if schedule %}
|
||||
{% set charging_slots = schedule | selectattr('action', 'equalto', 'charge') | list %}
|
||||
{% if charging_slots | length > 0 %}
|
||||
{% for slot in charging_slots[:5] %}
|
||||
### {{ '🟢 JETZT' if loop.index == 1 and slot.time[:13] == now().strftime('%Y-%m-%d %H') else '⏰' }} {{ slot.time[11:16] }} Uhr
|
||||
**{{ slot.power }}W** bei **{{ slot.price }}ct/kWh**
|
||||
{{ slot.reason }}
|
||||
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
### ✅ Keine Ladung geplant
|
||||
Aktuell sind keine Ladezyklen erforderlich.
|
||||
{% endif %}
|
||||
{% else %}
|
||||
### ⚠️ Kein Plan
|
||||
Berechnung erfolgt täglich um 14:05 Uhr.
|
||||
{% endif %}
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 5: PREIS-TREND
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Strompreis 48h
|
||||
icon: mdi:chart-line-variant
|
||||
|
||||
- type: custom:plotly-graph
|
||||
hours_to_show: 48
|
||||
refresh_interval: 600
|
||||
layout:
|
||||
height: 200
|
||||
showlegend: false
|
||||
margin:
|
||||
t: 10
|
||||
b: 30
|
||||
l: 40
|
||||
r: 10
|
||||
yaxis:
|
||||
title: ct/kWh
|
||||
entities:
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
line:
|
||||
color: '#FF9800'
|
||||
width: 2
|
||||
shape: spline
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(255, 152, 0, 0.15)'
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 6: SOC-TREND
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Batterie SOC 24h
|
||||
icon: mdi:battery-charging-80
|
||||
|
||||
- type: custom:plotly-graph
|
||||
hours_to_show: 24
|
||||
refresh_interval: 120
|
||||
layout:
|
||||
height: 180
|
||||
showlegend: false
|
||||
margin:
|
||||
t: 10
|
||||
b: 30
|
||||
l: 40
|
||||
r: 10
|
||||
yaxis:
|
||||
title: '%'
|
||||
range: [0, 100]
|
||||
entities:
|
||||
- entity: sensor.esssoc
|
||||
line:
|
||||
color: '#2196F3'
|
||||
width: 3
|
||||
shape: spline
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(33, 150, 243, 0.2)'
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 7: SCHNELLEINSTELLUNGEN (Conditional)
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Einstellungen
|
||||
icon: mdi:tune
|
||||
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: input_boolean.battery_optimizer_enabled
|
||||
state: 'on'
|
||||
card:
|
||||
type: entities
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
name: Min. SOC
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
name: Max. SOC
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
name: Ladeleistung
|
||||
411
legacy/v3/battery_optimizer_sections_standard.yaml
Normal file
411
legacy/v3/battery_optimizer_sections_standard.yaml
Normal file
@@ -0,0 +1,411 @@
|
||||
# ===================================================================
|
||||
# Batterie-Optimierung Dashboard - SECTIONS LAYOUT (STANDARD)
|
||||
# Vollversion mit allen Details und Sections-Layout
|
||||
# ===================================================================
|
||||
|
||||
- type: sections
|
||||
max_columns: 4
|
||||
title: Batterie Detail
|
||||
path: battery-detail
|
||||
icon: mdi:battery-charging-100
|
||||
sections:
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 1: ÜBERSICHT & POWER FLOW
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Energie-Übersicht
|
||||
icon: mdi:home-lightning-bolt
|
||||
|
||||
- type: custom:power-flow-card-plus
|
||||
entities:
|
||||
battery:
|
||||
entity: sensor.essactivepower
|
||||
state_of_charge: sensor.esssoc
|
||||
display_state: two_way
|
||||
grid:
|
||||
entity: sensor.gridactivepower
|
||||
solar:
|
||||
entity: sensor.productionactivepower
|
||||
home:
|
||||
entity: sensor.consumptionactivepower
|
||||
clickable_entities: true
|
||||
display_zero_state:
|
||||
transparency: 50
|
||||
w_decimals: 0
|
||||
kw_decimals: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 2: STEUERUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Steuerung
|
||||
icon: mdi:controller
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.battery_optimizer_enabled
|
||||
name: Automatische Optimierung
|
||||
icon: mdi:robot
|
||||
show_state: true
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: switch
|
||||
entity: input_boolean.goodwe_manual_control
|
||||
name: Manuelle Steuerung
|
||||
icon: mdi:hand-back-right
|
||||
show_state: true
|
||||
|
||||
- type: entities
|
||||
title: Wichtige Parameter
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
name: Min. SOC
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
name: Max. SOC
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
name: Ladeleistung
|
||||
- entity: input_number.battery_optimizer_reserve_capacity
|
||||
name: Reserve
|
||||
- type: divider
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Aktueller Preis
|
||||
icon: mdi:currency-eur
|
||||
- entity: sensor.esssoc
|
||||
name: Aktueller SOC
|
||||
icon: mdi:battery
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 3: LADEPLAN-STATUS
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Ladeplan
|
||||
icon: mdi:calendar-clock
|
||||
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
entity: pyscript.battery_charging_schedule
|
||||
name: Plan-Status
|
||||
icon: mdi:calendar-check
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set attrs = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
||||
{% if attrs %}
|
||||
**Nächste Ladung:**
|
||||
{% set ns = namespace(found=false) %}
|
||||
{% for entry in attrs %}
|
||||
{% if entry.action == 'charge' and not ns.found %}
|
||||
🔋 **{{ entry.datetime[11:16] }} Uhr**
|
||||
{{ entry.price }} ct/kWh · {{ entry.power_w }}W
|
||||
{% set ns.found = true %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if not ns.found %}
|
||||
Keine Ladung geplant
|
||||
{% endif %}
|
||||
{% else %}
|
||||
⚠️ Kein Plan
|
||||
{% endif %}
|
||||
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
||||
{% set last_updated = state_attr('pyscript.battery_charging_schedule', 'last_update') %}
|
||||
|
||||
{% if schedule %}
|
||||
**Plan erstellt:** {{ last_updated[:16] if last_updated else 'Unbekannt' }}
|
||||
|
||||
**Geplante Ladestunden:**
|
||||
{% for slot in schedule %}
|
||||
{% if slot.action == 'charge' %}
|
||||
- **{{ slot.datetime[:16] }}**
|
||||
🔋 {{ slot.power_w }}W · 💶 {{ slot.price }}ct/kWh
|
||||
*{{ slot.reason }}*
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
⚠️ Kein Plan verfügbar
|
||||
{% endif %}
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 4: STROMPREIS & LADEPLAN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Strompreis & Ladeplanung
|
||||
icon: mdi:chart-bell-curve-cumulative
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: Strompreis 48h mit geplanten Ladezeiten
|
||||
hours_to_show: 48
|
||||
refresh_interval: 300
|
||||
layout:
|
||||
height: 300
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.2
|
||||
margin:
|
||||
t: 20
|
||||
b: 50
|
||||
l: 60
|
||||
r: 20
|
||||
xaxis:
|
||||
title: Zeit
|
||||
yaxis:
|
||||
title: Preis (ct/kWh)
|
||||
entities:
|
||||
# Strompreis
|
||||
- entity: sensor.hastrom_flex_ext
|
||||
name: Strompreis
|
||||
line:
|
||||
color: '#FF9800'
|
||||
width: 2
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(255, 152, 0, 0.1)'
|
||||
|
||||
# Geplante Ladezeiten (als Marker)
|
||||
- entity: ''
|
||||
name: Geplante Ladung
|
||||
internal: true
|
||||
mode: markers
|
||||
marker:
|
||||
color: '#4CAF50'
|
||||
size: 14
|
||||
symbol: star
|
||||
line:
|
||||
color: '#2E7D32'
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 5: BATTERIE SOC & LEISTUNG
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Batterie SOC & Leistung
|
||||
icon: mdi:battery-charging-outline
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: Batterie-Übersicht 24h
|
||||
hours_to_show: 24
|
||||
refresh_interval: 60
|
||||
layout:
|
||||
height: 300
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.2
|
||||
margin:
|
||||
t: 20
|
||||
b: 50
|
||||
l: 60
|
||||
r: 60
|
||||
xaxis:
|
||||
title: Zeit
|
||||
yaxis:
|
||||
title: SOC (%)
|
||||
side: left
|
||||
range: [0, 100]
|
||||
yaxis2:
|
||||
title: Leistung (W)
|
||||
side: right
|
||||
overlaying: y
|
||||
entities:
|
||||
# SOC
|
||||
- entity: sensor.esssoc
|
||||
name: SOC
|
||||
yaxis: y
|
||||
line:
|
||||
color: '#2196F3'
|
||||
width: 3
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(33, 150, 243, 0.1)'
|
||||
|
||||
# Batterie-Leistung
|
||||
- entity: sensor.essactivepower
|
||||
name: Ladeleistung
|
||||
yaxis: y2
|
||||
line:
|
||||
color: '#4CAF50'
|
||||
width: 2
|
||||
dash: dot
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 6: ENERGIE-FLÜSSE
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Energie-Flüsse
|
||||
icon: mdi:transmission-tower
|
||||
|
||||
- type: custom:plotly-graph
|
||||
title: PV, Netz & Batterie 24h
|
||||
hours_to_show: 24
|
||||
refresh_interval: 60
|
||||
layout:
|
||||
height: 300
|
||||
showlegend: true
|
||||
legend:
|
||||
orientation: h
|
||||
y: -0.2
|
||||
margin:
|
||||
t: 20
|
||||
b: 50
|
||||
l: 60
|
||||
r: 20
|
||||
xaxis:
|
||||
title: Zeit
|
||||
yaxis:
|
||||
title: Leistung (W)
|
||||
entities:
|
||||
- entity: sensor.productionactivepower
|
||||
name: PV-Produktion
|
||||
line:
|
||||
color: '#FFC107'
|
||||
width: 2
|
||||
fill: tozeroy
|
||||
fillcolor: 'rgba(255, 193, 7, 0.2)'
|
||||
|
||||
- entity: sensor.gridactivepower
|
||||
name: Netzbezug
|
||||
line:
|
||||
color: '#F44336'
|
||||
width: 2
|
||||
|
||||
- entity: sensor.essactivepower
|
||||
name: Batterie
|
||||
line:
|
||||
color: '#4CAF50'
|
||||
width: 2
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 7: PLAN-STATISTIKEN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Plan-Statistiken
|
||||
icon: mdi:chart-box
|
||||
|
||||
- type: markdown
|
||||
content: |
|
||||
{% set attrs = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
||||
{% set num_charges = state_attr('pyscript.battery_charging_schedule', 'num_charges') or 0 %}
|
||||
{% set total_energy = state_attr('pyscript.battery_charging_schedule', 'total_energy_kwh') or 0 %}
|
||||
{% set avg_price = state_attr('pyscript.battery_charging_schedule', 'avg_charge_price') or 0 %}
|
||||
{% set num_tomorrow = state_attr('pyscript.battery_charging_schedule', 'num_charges_tomorrow') or 0 %}
|
||||
|
||||
| Metrik | Wert |
|
||||
|--------|------|
|
||||
| 🕐 **Geplante Ladungen** | {{ num_charges }} Stunden |
|
||||
| ⚡ **Gesamt-Energie** | {{ total_energy | round(1) }} kWh |
|
||||
| 💶 **Durchschnittspreis** | {{ avg_price | round(2) }} ct/kWh |
|
||||
| 📅 **Davon Morgen** | {{ num_tomorrow }} Ladungen |
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 8: DETAILLIERTE PLAN-TABELLE
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Stunden-Details
|
||||
icon: mdi:table-large
|
||||
|
||||
- type: markdown
|
||||
title: Vollständiger Ladeplan
|
||||
content: |
|
||||
{% set schedule = state_attr('pyscript.battery_charging_schedule', 'schedule') %}
|
||||
|
||||
{% if schedule %}
|
||||
|
||||
| Zeit | Aktion | Leistung | Preis | Grund |
|
||||
|------|--------|----------|-------|-------|
|
||||
{% for slot in schedule[:20] %}
|
||||
| {{ slot.datetime[11:16] }} | {{ '🔋 Laden' if slot.action == 'charge' else '⏸️ Auto' }} | {{ slot.power_w if slot.power_w else '-' }}W | {{ slot.price }}ct | {{ slot.reason }} |
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
⚠️ **Kein Ladeplan verfügbar**
|
||||
|
||||
Der Plan wird täglich um 14:05 Uhr neu berechnet.
|
||||
{% endif %}
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 9: ALLE EINSTELLUNGEN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: Alle Einstellungen
|
||||
icon: mdi:cog-outline
|
||||
|
||||
- type: entities
|
||||
title: Batterie-Parameter
|
||||
entities:
|
||||
- entity: input_number.battery_optimizer_min_soc
|
||||
name: Minimaler SOC (%)
|
||||
- entity: input_number.battery_optimizer_max_soc
|
||||
name: Maximaler SOC (%)
|
||||
- entity: input_number.battery_optimizer_max_charge_power
|
||||
name: Ladeleistung (W)
|
||||
- entity: input_number.battery_optimizer_reserve_capacity
|
||||
name: Reserve-Kapazität (kWh)
|
||||
- entity: input_number.battery_optimizer_price_threshold
|
||||
name: Preis-Schwelle (ct/kWh)
|
||||
|
||||
# ===================================================================
|
||||
# SECTION 10: SYSTEM-INFORMATIONEN
|
||||
# ===================================================================
|
||||
|
||||
- type: grid
|
||||
cards:
|
||||
- type: heading
|
||||
heading: System-Status
|
||||
icon: mdi:information-outline
|
||||
|
||||
- type: markdown
|
||||
content: |
|
||||
**System-Informationen:**
|
||||
|
||||
**Batterie:**
|
||||
- Kapazität: {{ states('input_number.battery_capacity_kwh') }} kWh
|
||||
- Aktueller SOC: {{ states('sensor.esssoc') }}%
|
||||
- Leistung: {{ states('sensor.essactivepower') }}W
|
||||
|
||||
**PV-Prognose:**
|
||||
- Heute Ost: {{ states('sensor.energy_production_today') }} kWh
|
||||
- Heute West: {{ states('sensor.energy_production_today_2') }} kWh
|
||||
- Morgen Ost: {{ states('sensor.energy_production_tomorrow') }} kWh
|
||||
- Morgen West: {{ states('sensor.energy_production_tomorrow_2') }} kWh
|
||||
|
||||
**Optimizer Status:**
|
||||
- Aktiviert: {{ states('input_boolean.battery_optimizer_enabled') }}
|
||||
- Manueller Modus: {{ states('input_boolean.goodwe_manual_control') }}
|
||||
- Letztes Update: {{ state_attr('pyscript.battery_charging_schedule', 'last_update')[:16] if state_attr('pyscript.battery_charging_schedule', 'last_update') else 'Unbekannt' }}
|
||||
|
||||
**PyScript Trigger:**
|
||||
- Tägliche Berechnung: 14:05 Uhr
|
||||
- Stündliche Ausführung: xx:05 Uhr
|
||||
Reference in New Issue
Block a user