feat: méthode WebSocket HA pour Lovelace + vue lumières créée
This commit is contained in:
@@ -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"`
|
||||
|
||||
Reference in New Issue
Block a user