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:
Folzo
2026-04-04 08:45:59 +02:00
commit d1e12cff60
35 changed files with 4656 additions and 0 deletions
@@ -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. 😊