# 🚀 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 ", "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. 😊