Initial commit: Documentation Effi v1.0
- Structure complète du projet - Docker compose de production - Documentation organisée par thèmes - Guides d'installation et configuration - Section dépannage détaillée - Journal historique
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
# 🚀 Projet Futur : Intégration EFFi avec Homelab & Home Assistant
|
||||
|
||||
**Date de création** : 2026-02-23
|
||||
**Statut** : À explorer (priorité moyenne)
|
||||
**Responsable** : Folzo
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Objectif
|
||||
|
||||
Créer une **couche conversationnelle intelligente** pour gérer :
|
||||
- **Home Assistant** (domotique, éclairage, chauffage, sécurité).
|
||||
- **Homelab** (supervision des services, backup, monitoring).
|
||||
- **Automatisations familiales** (rappels, gestion des tâches).
|
||||
|
||||
EFFi agit comme un **hub central** pour toutes les interactions vocales ou textuelles avec tes infrastructures.
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Architecture Proposée
|
||||
|
||||
### 1. **Couche Vocale (STT/TTS existant)**
|
||||
- **Entrée** : Commande vocale ou texte via Open WebUI.
|
||||
- **Traitement** : STT (Whisper sur `folzo-Corp`) → Analyse par EFFi → Action.
|
||||
- **Sortie** : Réponse vocale (XTTS sur `folzo-Corp`) ou notification.
|
||||
|
||||
### 2. **Couche d’Automatisation (`n8n`)**
|
||||
- **Rôle** : Traduire les commandes d’EFFi en actions pour HA/Homelab.
|
||||
- **Exemple de workflow** :
|
||||
```plaintext
|
||||
[Commande vocale : "Eteins les lumières"]
|
||||
→ STT → EFFi → n8n (appel API HA) → HA éteint les lumières → TTS "Fait !"
|
||||
```
|
||||
|
||||
### 3. **Couche Domotique (Home Assistant)**
|
||||
- **Intégration** : Utilisation de l’[API REST de HA](https://developers.home-assistant.io/docs/api/rest/).
|
||||
- **Fonctionnalités clés** :
|
||||
- Contrôle des lumières, chauffage, volets.
|
||||
- Scénarios (mode cinéma, sécurité, nuit).
|
||||
- Alertes (portes ouvertes, mouvement détecté).
|
||||
|
||||
### 4. **Couche Homelab (Supervision)**
|
||||
- **Outils** : Docker API, SSH, `systemctl`.
|
||||
- **Fonctionnalités** :
|
||||
- Vérification de l’état des services (`docker ps`, `systemctl status`).
|
||||
- Redémarrage automatique en cas d’erreur.
|
||||
- Mises à jour (`docker compose pull`).
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Fonctionnalités Clés
|
||||
|
||||
### A. **Domotique avec Home Assistant**
|
||||
|
||||
| **Commande Vocale** | **Action d’EFFi** | **Technologie** |
|
||||
|-----------------------------------|---------------------------------------------------------------------------------|--------------------------------------|
|
||||
| "Allume la lumière du salon" | Envoie une requête à HA pour allumer `light.salon`. | API REST HA + `n8n`. |
|
||||
| "Quelle est la température ?" | Récupère les données du capteur `sensor.temperature` via HA. | API Sensor HA. |
|
||||
| "Active le mode cinéma" | Lance un scénario HA (lumière éteinte, projecteur allumé, volets fermés). | Automations HA. |
|
||||
| "Alerte : la porte est ouverte" | Vérifie `binary_sensor.porte_entree` et envoie une notification. | Events HA + `n8n`. |
|
||||
|
||||
**Exemple de scénario complet** :
|
||||
1. **Commande** : *« Effi, bonne nuit. »*
|
||||
2. **Actions** :
|
||||
- HA éteint les lumières.
|
||||
- HA baisse le chauffage à 18°C.
|
||||
- HA active le mode « Nuit » (volets fermés).
|
||||
- EFFi rappelle : *« Bonne nuit ! Je surveille tout. »*
|
||||
|
||||
---
|
||||
|
||||
### B. **Supervision Homelab**
|
||||
|
||||
| **Commande** | **Action** | **Technologie** |
|
||||
|-----------------------------------|--------------------------------------------------------------------------------|--------------------------------------|
|
||||
| "Vérifie l’état du NAS" | Exécute `docker ps` et renvoie les stats CPU/mémoire. | Docker API. |
|
||||
| "Redémarre le service Qdrant" | Exécute `docker restart qdrant` via SSH. | SSH + `mcpo`. |
|
||||
| "Fais un backup des fichiers" | Lance un script `rsync` ou `borg`. | SSH + scripts. |
|
||||
| "Quelle est la CPU de effi-server ?" | Récupère les stats via `docker stats`. | Docker SDK. |
|
||||
|
||||
**Exemple de workflow** :
|
||||
1. **Commande** : *« Effi, check les ressources. »*
|
||||
2. **Actions** :
|
||||
- EFFi exécute : `docker stats --format "{{.Name}}: {{.CPUPerc}}%"`.
|
||||
- Réponse : *« effi-server : 12% CPU, qdrant : 3%. Tout est normal. »*
|
||||
|
||||
---
|
||||
|
||||
### C. **Automatisations Familiales**
|
||||
|
||||
| **Fonctionnalité** | **Description** | **Intégration** |
|
||||
|-----------------------------------|---------------------------------------------------------------------------------|--------------------------------------|
|
||||
| Rappels de tâches | *« Effi, rappelle-moi d’acheter du lait. »* → Sync avec Nextcloud. | Nextcloud API + `n8n`. |
|
||||
| Gestion des recettes | *« Effi, quelle recette pour ce soir ? »* → Intègre Jellyfin ou un wiki. | API Jellyfin ou Obsidian. |
|
||||
| Calendrier partagé | *« Qu’est-ce que j’ai prévu demain ? »* → Sync avec Google/Nextcloud Calendar.| Calendar API. |
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Étapes de Mise en Œuvre
|
||||
|
||||
### 1. **Prérequis Techniques**
|
||||
- [ ] **Home Assistant** :
|
||||
- Activer l’API REST dans `Configuration > Long Live Options`.
|
||||
- Créer un **token d’accès** pour EFFi.
|
||||
- [ ] **`n8n`** :
|
||||
- Configurer un node **Home Assistant** avec ton token.
|
||||
- Créer un workflow de test (ex : allumer une lumière).
|
||||
- [ ] **Accès SSH** :
|
||||
- Configurer `mcpo` pour exécuter des commandes Docker/SSH.
|
||||
|
||||
### 2. **Configuration d’EFFi**
|
||||
- [ ] **Ajouter un plugin ou script** pour HA dans `mcpo` (Python).
|
||||
- [ ] **Configurer le STT/TTS** pour une boucle vocale complète.
|
||||
- [ ] **Documenter les commandes vocales** dans une FAQ.
|
||||
|
||||
### 3. **Tests Initiaux**
|
||||
1. Tester les commandes basiques avec `n8n` (ex : allumer/éteindre une lumière).
|
||||
2. Vérifier la boucle vocale (STT → HA → TTS).
|
||||
3. Automatiser une tâche homelab (ex : vérifier l’état des services).
|
||||
|
||||
---
|
||||
|
||||
## 📝 Exemples de Commandes Vocales
|
||||
|
||||
### **Domotique**
|
||||
- *« Allume la lumière dans la chambre. »*
|
||||
- *« Baisse le chauffage à 20°C. »*
|
||||
- *« Ferme les volets du salon. »*
|
||||
- *« Quel est l’état des capteurs de mouvement ? »*
|
||||
|
||||
### **Homelab**
|
||||
- *« Vérifie l’état de mon NAS. »*
|
||||
- *« Redémarre le service Docker qui plante. »*
|
||||
- *« Fais un backup des fichiers importants. »*
|
||||
- *« Quelle est la consommation CPU de effi-server ? »*
|
||||
|
||||
### **Automatisations Familiales**
|
||||
- *« Rappelle-moi d’appeler maman ce soir. »*
|
||||
- *« Quelle recette puis-je faire avec des pommes de terre ? »*
|
||||
- *« Qu’est-ce que j’ai dans mon calendrier pour demain ? »*
|
||||
|
||||
---
|
||||
|
||||
## 📁 Ressources Utiles
|
||||
|
||||
### **Documentation**
|
||||
- [API REST Home Assistant](https://developers.home-assistant.io/docs/api/rest/)
|
||||
- [Automatisations avec `n8n`](https://n8n.io/integrations/home-assistant/)
|
||||
- [Docker API](https://docs.docker.com/engine/api/)
|
||||
|
||||
### **Scripts d’Exemple**
|
||||
```python
|
||||
# Exemple de script pour mcpo (Python)
|
||||
def handle_ha_command(command):
|
||||
import requests
|
||||
ha_url = "http://192.168.1.50:8123/api/services/light/turn_on"
|
||||
headers = {"Authorization": "Bearer <TON_TOKEN_HA>", "Content-Type": "application/json"}
|
||||
data = {"entity_id": "light.salon"}
|
||||
|
||||
if "lumière salon" in command:
|
||||
response = requests.post(ha_url, headers=headers, json=data)
|
||||
return "Lumière allumée !" if response.ok else "Erreur."
|
||||
return "Commande non reconnue."
|
||||
```
|
||||
|
||||
### **Workflow `n8n`**
|
||||
```plaintext
|
||||
1. **Trigger** : Webhook (ex : `http://effi-server:5678/webhook/ha`)
|
||||
2. **Function Node** : Parse la commande (ex : extrait "light.salon").
|
||||
3. **HTTP Request** : Appelle l’API HA.
|
||||
4. **Webhook** : Renvoie la confirmation à EFFi pour TTS.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔜 Prochaines Étapes (Quand tu auras le temps !)
|
||||
|
||||
1. **Priorité 1** :
|
||||
- Configurer un workflow `n8n` pour HA (ex : allumer une lumière).
|
||||
- Tester la boucle vocale STT → HA → TTS.
|
||||
2. **Priorité 2** :
|
||||
- Automatiser la supervision d’un service Docker (ex : `qdrant`).
|
||||
- Intégrer un rappels de tâches avec Nextcloud.
|
||||
3. **Priorité 3** :
|
||||
- Créer des scénarios complexes (ex : mode cinéma complet).
|
||||
- Documenter toutes les commandes vocales possibles.
|
||||
|
||||
---
|
||||
|
||||
## 💡 Idées Avancées (Pour plus tard)
|
||||
|
||||
- **Intégration avec Jellyfin** : *« Effi, lance mon dernier film vu en mode cinéma. »*
|
||||
- **Voice Cloning** : Utiliser des modèles vocaux personnalisés pour une voix plus naturelle.
|
||||
- **IA Contextuelle** : EFFi se souvient de tes habitudes (ex : *« D’habitude, tu éteins les lumières à 23h. »*).
|
||||
- **Dashboard Vocale** : *« Effi, montre-moi les stats de mon homelab. »* → Réponse vocale + affichage sur un écran.
|
||||
|
||||
---
|
||||
|
||||
## 📅 Journal des Mises à Jour
|
||||
|
||||
| **Date** | **Action** | **Statut** |
|
||||
|----------------|-------------------------------------------|-------------|
|
||||
| 2026-02-23 | Création de cette note. | ✅ Terminé |
|
||||
| À définir | Configuration initiale de `n8n` + HA. | À faire |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Conclusion
|
||||
|
||||
Ce projet permettrait de **centraliser toutes tes interactions avec ton homelab et ta domotique** via une interface vocale naturelle. En démarrant par les bases (contrôle des lumières, supervision Docker), tu pourras progressivement ajouter des fonctionnalités plus avancées.
|
||||
|
||||
**Prochaine action** : Quand tu auras 30 minutes, lance-toi sur la configuration de `n8n` avec Home Assistant ! Je peux te guider étape par étape si besoin. 😊
|
||||
Reference in New Issue
Block a user