feat: méthode WebSocket HA pour Lovelace + vue lumières créée

This commit is contained in:
Nox
2026-02-22 18:28:34 +00:00
parent 7d6605e33e
commit 917d1da7c0
668 changed files with 198094 additions and 0 deletions
+34
View File
@@ -106,6 +106,40 @@
- **Utiliser en priorité** pour les recherches contextuelles (memory_search reste utile pour le démarrage de session)
- ⚠️ Qdrant charge ~34 collections KiloCode au démarrage → ~30s avant d'être prêt
## Home Assistant — Lovelace / Dashboards
### Dashboards disponibles
- `lovelace` → "Aperçu" (dashboard principal, 15+ vues)
- `vue-par-pieces` → "Vue par pièces"
- `mushroom-strategy` → "Mushroom-strategy"
- `map` → Map
### Modifier/créer des vues Lovelace via WebSocket API
L'API REST `/api/lovelace/config` retourne 404 même si HA est en mode storage → **utiliser l'API WebSocket** à la place.
**Méthode (Node.js, WebSocket natif Node 22) :**
```js
const ws = new WebSocket(`${HA_URL.replace('http://','ws://')}/api/websocket`);
// Auth
ws.send(JSON.stringify({ type: 'auth', access_token: TOKEN }));
// Lire config
send({ type: 'lovelace/config' }) // → result.views[]
// Sauvegarder config modifiée
send({ type: 'lovelace/config/save', config: modifiedConfig })
// Lister les dashboards
send({ type: 'lovelace/dashboards/list' })
// Pour un dashboard spécifique (url_path)
send({ type: 'lovelace/config', url_path: 'vue-par-pieces' })
```
**Script template :** `/home/node/.openclaw/workspace/ha_ws_add_lights.mjs`
- Lire config → modifier le tableau `views` → sauvegarder
- Utiliser le WebSocket natif Node 22 (pas besoin du package `ws`)
- Timeout de sécurité à 15s
- Le code de sortie 1 (timeout) est normal si `ws.close()` ne coupe pas avant le timeout — le succès est dans le log
**Astuce :** Pour ajouter une vue sans écraser les existantes, lire d'abord la config, push la nouvelle vue, puis sauvegarder le tout.
## Leçons apprises
- **Toujours prendre un snapshot du LXC 145** (`mini-pc`) avant toute modification de config ou installation qui pourrait casser OpenClaw
- Commande : `curl -sk -X POST -H "Authorization: PVEAPIToken=$PVE_TOKEN" -H "Content-Type: application/json" -d '{"snapname":"<nom>","description":"<desc>"}' "$PVE_URL/api2/json/nodes/mini-pc/lxc/145/snapshot"`