51 lines
2.4 KiB
Markdown
51 lines
2.4 KiB
Markdown
|
|
---
|
||
|
|
okf: "0.1"
|
||
|
|
type: incident
|
||
|
|
visibility: private
|
||
|
|
status: active
|
||
|
|
updated: 2026-08-03
|
||
|
|
links:
|
||
|
|
- ../phases/backlog.md
|
||
|
|
---
|
||
|
|
|
||
|
|
## Cutover HA "ken": kontener piha to legacy, prawdziwy dom to RPi4/HAOS (2026-07-22)
|
||
|
|
|
||
|
|
**Data**: 2026-07-22
|
||
|
|
**Źródło**: recon — dwie instancje HA równolegle sterowały domem (kontener
|
||
|
|
`homeassistant5` na piha + RPi4 HAOS 192.168.31.7), patrz
|
||
|
|
`services/home-assistant/DESIGN.md` sekcja "Incident log". `instances.yaml`
|
||
|
|
naprawiony w tej samej sesji: `ken` = 192.168.31.7 (api), `ken-legacy` =
|
||
|
|
dawny kontener piha (docker-exec, archived).
|
||
|
|
|
||
|
|
**Do zrobienia**:
|
||
|
|
1. **ha-diag-agent na piha**: przepiąć z `http://localhost:8123` (celuje w
|
||
|
|
legacy!) na `http://192.168.31.7:8123` — wymaga nowego tokenu
|
||
|
|
`diag_agent` wystawionego na instancji 31.7 (obecny token jest dla
|
||
|
|
kontenera piha i nie zadziała na nowym targecie).
|
||
|
|
2. **Wygaszenie `homeassistant5`**: import archiwalny do
|
||
|
|
`services/home-assistant/config/ken-legacy/` → `docker stop` (BEZ `rm`)
|
||
|
|
→ 7 dni obserwacji (upewnić się, że nic w domu nie polega na tym
|
||
|
|
kontenerze) → decyzja o `docker rm`.
|
||
|
|
3. ✅ ZROBIONE (2026-07-22) — **Adapter `api` w `import.sh` dla `ken`**:
|
||
|
|
automatyzacje/skrypty/sceny przez `/api/config/<domain>/config/<id>`
|
||
|
|
(REST), dashboardy/area+entity registry/`input_*` helpery przez websocket
|
||
|
|
API (`scripts/ha/lib/ha_api.py`, `ha_ws.py`, `import_api.py`). Pierwszy
|
||
|
|
realny import `ken` zaimportował 118 automatyzacji, 5 skryptów, 3 sceny,
|
||
|
|
7 dashboardów (default + 6 named; jeden zarejestrowany dashboard nigdy
|
||
|
|
nie skonfigurowany — `config_not_found`, odnotowany w raporcie, nie
|
||
|
|
twardy błąd). Pełny import `/config` pozostaje poza zasięgiem (HAOS bez
|
||
|
|
SSH) — patrz DESIGN.md.
|
||
|
|
4. ✅ ZROBIONE (2026-07-22) — **`scripts/ha/deploy.sh`, adapter `api`, zakres
|
||
|
|
automations/scripts/scenes**: drift-check (świeży re-import vs. `HEAD`,
|
||
|
|
dowolna różnica poza plikami z tego deployu = abort z diffem) →
|
||
|
|
walidacja (lokalny sanity check + `check_config` na instancji) → zapis
|
||
|
|
per obiekt (`POST /api/config/<domain>/config/<id>`) → verify (GET +
|
||
|
|
porównanie, bez auto-rollbacku). `--dry-run` zweryfikowany na żywym
|
||
|
|
`ken` (read-only, bez różnic). Testy offline:
|
||
|
|
`scripts/ha/tests/test_deploy_api_offline.sh`. Poza zakresem: dashboardy/
|
||
|
|
helpery (WS, brak mutującej komendy), adapter `docker-exec`, DELETE
|
||
|
|
obiektów usuniętych z repo (tylko ostrzeżenie).
|
||
|
|
|
||
|
|
---
|
||
|
|
|