Files
hermes-skills/smart-home/smart-home-automation/references/ha-dashboard-redesign.md
T

179 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HA Dashboard Redesign — Brainstorming & Design
Session: 2026-07-10. User requested a complete dashboard redesign, mobile-first, with Mushroom Cards + Bubble Card navigation.
## Brainstorming Process
Used the `brainstorming` skill. Key decisions via clarifying questions:
1. **Goal**: Komplett-Redesign — alles neu, sauber strukturiert
2. **Primary device**: Handy (mobile-first, desktop is secondary)
3. **Top functions**: Energie (PV/Speicher/Marstek/Strompreis), Rollos, Licht
4. **Structure**: Ein Hauptdashboard + Energie separat (as before)
5. **Card approach**: Mix aus Mushroom + Bubble Navigation
## Entity Inventory (via browser console)
| Domain | Count | Key entities |
|--------|-------|-------------|
| light | 20 | Schlafzimmer, Esszimmer, Bad, Tradfri×7, Kinderzimmer×2, Garten×2, Deckenleuchte |
| cover | 10 | Wohnzimmerfenster×2, Wohnzimmertür, Esszimmertür, Küchenfenster×2, Badrollo, Terrassenrollo, Markise |
| climate | 12 | ViCare heating + 11 room thermostats (Bad, Büro, Esszimmer, FBH-WC, Flur unten, Gang OG, Wohnzimmer, Kinderzimmer Cleo, Schlafzimmer, Schminkzimmer, Windfang) |
| camera | 10 | Terrasse, Einfahrt, 6× robot vacuum maps, thumbnail |
| scene | 9 | Alles aus×2, Fernsehabend, Heizungen an/aus, Raffstore am Tag |
| lock | 5 | Haustür + others |
| media_player | 10 | Wohnzimmer, Harmony Hub + others |
| automation | 35 | Including Marstek Kaskaden-Steuerung |
| switch | 196 | Much chaff among them |
| sensor | 1128 | Heavily overloaded |
## Existing Dashboard State (pre-redesign)
| Dashboard | URL Path | Views | Cards (main) | Status |
|-----------|----------|-------|--------------|--------|
| Übersicht (default) | `lovelace` | 3 | 43+1+1 | ⚠️ Overloaded — cameras, blinds, 11 thermostats, media, energy, lights, sensors, scenes, weather, door contacts all on one view |
| Stromerzeugung/-verbrauch | `stromerzeugung-verbrauch` | 5 | 30 | 3 of 5 views empty (PV Erzeugung, Stromverbrauch, Kindle) |
| IT | `dashboard-it` | 1 | 16 | OK |
| Karte | `map` | 1 | 1 | Minimal |
| Editor | `dashboard-editor` | 1 | 1 | Tool (config-editor-card) |
| Übersicht (test) | `dashboard-test` | 1 | 0 | Empty — delete candidate |
| Haus | `dashboard-haus` | 0 | 0 | Empty — repurpose as new main dashboard |
| Typen | `dashboard-typen` | 0 | 0 | Empty — delete candidate |
| Home_Auto | `home-auto` | 0 | 0 | Empty — delete candidate |
| Moonraker | `dashboard-moonraker` | 0 | 0 | Empty — delete candidate |
## Installed Custom Cards (via HACS)
Already installed:
- `custom:power-flow-card-plus` — power distribution visualization
- `custom:price-timeline-card` — electricity price timeline
- `custom:config-editor-card` — dashboard editor
Needed for redesign:
- `mushroom-cards` — compact, touch-friendly UI elements (HACS)
- `bubble-card` — bottom-bar navigation, swipe between views (HACS)
## Approved Design
### Dashboard 1: "Haus" (Main Dashboard, mobile-first)
**Navigation:** Bubble Card Bottom-Bar with 5 tabs
```
🏠 Home | ☀️ Rollos | 💡 Licht | 🔒 Sicherheit | 🌡️ Klima
```
**Tab 1 — Home (Minimal):**
- Mushroom Title Card "Schön Home"
- Mushroom Template Card: Weather + outside temp
- Power-Flow-Card-Plus (mini energy flow: PV ↔ Battery ↔ House ↔ Grid)
- 2× Mushroom Entity Card: Presence (Dominik, Sarah)
- 1× Mushroom Chips Card: Door open/closed, Marstek SoC, electricity price — quick-info badges
**Tab 2 — Rollos (10 covers, grouped by floor):**
- Mushroom Cover Card per cover (large touch buttons: up/stop/down)
- Ground floor: Wohnzimmer×2, Esszimmer, Küche×2, Terrasse, Markise
- Upper floor: Bad, Schlafzimmer
- Master "Alle Rollos" card at top
**Tab 3 — Licht (20 lights + 9 scenes):**
- Mushroom Light Card per room (group where possible)
- Scenes as Mushroom Action Buttons at bottom: "Alles aus", "Fernsehabend", "Raffstore am Tag"
**Tab 4 — Sicherheit:**
- 2 Camera Cards (Terrasse, Einfahrt) — Picture Glance, compact
- Binary sensors: door/window contacts as Mushroom Entity Cards
- Lock: front door as Mushroom Lock Card
**Tab 5 — Klima (12 thermostats):**
- Mushroom Climate Card per room
- ViCare Heating + hot water at top
- Outside temperature chip
### Dashboard 2: "Energie" (existing, upgraded)
Remains separate. Fill the 3 empty views:
- **PV Erzeugung:** Apexcharts (daily/weekly curves SMA)
- **Stromverbrauch:** Apexcharts (consumer breakdown: heat pump, household, wallbox)
- **Kindle:** Black/white E-Ink optimized dashboard
### Cleanup
| Dashboard | Action |
|-----------|--------|
| dashboard-test (empty) | Delete |
| Haus (empty) | Repurpose → new main dashboard |
| Typen (empty) | Delete |
| Home_Auto (empty) | Delete |
| Moonraker (empty) | Delete |
| Editor | Keep (tool) |
| IT | Keep |
| Karte | Keep |
| Übersicht (lovelace, 43 cards) | Keep as backup after migration, then delete |
## Implementation Notes
- All dashboards use `mode: 'storage'` (UI-managed, not YAML files)
- Dashboard config write-back via WebSocket: `conn.sendMessagePromise({type: 'lovelace/config/save', url_path: '...', config: cfg})`
- Custom cards must be installed via HACS before referencing them in dashboard config
- Bubble Card bottom navigation requires a `bubble-card` config at the view level
## HACS Installation via WebSocket (confirmed working 2026-07-10)
HACS custom cards can be installed programmatically via the WebSocket API — no need to fight the HACS UI iframe:
```javascript
// 1. Find repository ID
const repos = await conn.sendMessagePromise({type: 'hacs/repositories/list'});
const mushroom = repos.find(r => r.full_name === 'piitaya/lovelace-mushroom');
// mushroom.id = '444350375'
// 2. Install
await conn.sendMessagePromise({type: 'hacs/repository/download', repository: mushroom.id});
// Returns {} on success
// 3. Verify resource registration
const resources = await conn.sendMessagePromise({type: 'lovelace/resources'});
// Look for /hacsfiles/lovelace-mushroom/mushroom.js in resources
```
Installed: Mushroom v5.1.1 (repo ID 444350375), Bubble Card v3.2.4 (repo ID 680112919).
## Entity Verification Pitfalls (encountered during implementation)
- **Scene name mismatch:** `scene.alles_aus` does NOT exist — the correct entity is `scene.alles_aus_2`. Always query `ha.hass.states` for scene entities before referencing.
- **Binary sensors lacking `device_class`:** Door/window binary sensors in this homelab do NOT have `device_class: door` or `device_class: window`. Filtering by `device_class` returns zero results. Instead, filter by entity name keywords: `tur`, `fenster`, `door`, `window`.
- **Available binary sensors (as of 2026-07-10):** `binary_sensor.wohnzimmerfenster2`, `binary_sensor.wohnzimmerture`, `binary_sensor.esszimmerture`, `binary_sensor.esszimmerture_2` — only 4, not the full set shown in the old overview dashboard.
- **Locks:** 5 lock entities exist: `lock.voreingestellte_tur` (main door), `lock.turoffner_1`, `lock.free_hometouch_7`, `lock.free_hometouch_7_2`, `lock.free_hometouch_7_3`.
## Post-Implementation Dashboard State (2026-07-10)
| Dashboard | URL Path | Views | Cards/view | Status |
|-----------|----------|-------|------------|--------|
| Haus (NEW) | `dashboard-haus` | 5 | 6/3/5/4/5 | ✅ Mushroom + Bubble, mobile-first |
| Stromerzeugung/-verbrauch | `stromerzeugung-verbrauch` | 5 | 30/1/4/4/1 | ✅ All views filled |
| Übersicht (backup) | `lovelace` | 3 | 43/1/1 | Kept as backup |
| IT | `dashboard-it` | 1 | 16 | Unchanged |
| Karte | `map` | 1 | 1 | Unchanged |
| Editor | `dashboard-editor` | 1 | 1 | Unchanged |
Deleted: dashboard-test, Typen, Home_Auto, Moonraker (4 empty ghost dashboards).
## Haus Dashboard View Structure (final)
| View | Path | Cards | Content |
|------|------|-------|---------|
| Home | `home` | 6 | Bubble popup, weather template, power-flow-card-plus, presence grid, chips (door/Marstek/SMA), bubble nav |
| Rollos | `rollos` | 3 | Bubble popup, 9 mushroom cover cards in 2-col grid, bubble nav |
| Licht | `licht` | 5 | Bubble popup, scene chips (5 scenes), 8 room lights in 2-col grid, 9 tradfri/misc lights in 3-col grid, bubble nav |
| Sicherheit | `sicherheit` | 4 | Bubble popup, 2 camera picture-glance, 2 lock cards + 4 door/window sensors in 2-col grid, bubble nav |
| Klima | `klima` | 5 | Bubble popup, ViCare climate card, WW + outside temp grid, 11 room climate cards in 2-col grid, bubble nav |
## Energie Dashboard Filled Views
| View | Path | Cards | Content |
|------|------|-------|---------|
| PV Erzeugung | `pv-erzeugung` | 4 | 3 apexcharts (PV delivery, SoC, Solcast forecast vs actual), entity stats |
| Stromverbrauch | `stromverbrauch` | 4 | 3 apexcharts (house consumption, battery discharge, sauna power), consumer entity list |
| Kindle | `kindle` | 1 | Vertical stack of 6 mushroom template cards (PV, Haus, SMA SoC, Marstek SoC, Strompreis, PV Einsparung) — black icons for E-Ink |