Intermédiaire 11 minDomotique

LLM local pour la domotique : vie privée et maison connectée

La domotique cloud — Google Home, Alexa, SmartThings — envoie en continu des bouts d'information sur ce qui se passe chez vous vers des serveurs distants. Un LLM local domotique vie privée renverse l'équation : votre serveur Home Assistant pilote vos lampes et thermostats, un modèle Ollama traduit vos demandes en actions, et rien ne sort du réseau local. Ce guide montre comment câbler concrètement Ollama à Home Assistant, quel modèle léger choisir pour rester sous les deux secondes de latence, et ce que vous gagnez vraiment en confidentialité.

Par Mohamed Meguedmi·Màj 2026-06-03·Testé sur Windows, macOS, Linux

#Pourquoi un LLM local pour la maison connectée ?

Sur une enceinte cloud classique, chaque phrase prononcée est envoyée à un serveur distant pour être transcrite, comprise et exécutée. La transcription est conservée, parfois écoutée par des sous-traitants pour entraîner les modèles, et le constructeur sait à quel moment vous rentrez chez vous, à quelle heure vous allumez la chambre, quand vous lancez votre playlist du soir. Pour beaucoup de foyers, c'est trop d'information donnée à trop de tiers.

Home Assistant adresse le problème à la racine : c'est une plateforme open source qui tourne sur votre matériel et parle aux objets connectés en local (Zigbee, Z-Wave, Matter, MQTT). En lui ajoutant un LLM local via Ollama, vous obtenez un assistant capable de comprendre des phrases libres (« baisse le chauffage du salon de deux degrés », « éteins toutes les lampes du rez-de-chaussée ») sans qu'aucun audio ni aucune commande ne quitte le LAN.

Confidentialité réelle
Aucune donnée d'usage envoyée à un tiers. Pas de profil publicitaire construit sur vos habitudes.
Fonctionne hors-ligne
Coupure Internet, panne d'un fournisseur cloud — votre maison continue de répondre aux commandes.
Latence prévisible
Plus de round-trip vers un datacenter ; la latence dépend uniquement de votre machine.
Contrôle total
Vous choisissez le modèle, vous le mettez à jour quand vous voulez, vous le remplacez quand un meilleur sort.
i
Home Assistant en deux phrases
C'est un serveur (Python) qui agrège des centaines d'intégrations domotiques sous une seule interface. Il se déploie en quelques minutes sur Raspberry Pi, NUC, mini-PC ou conteneur Docker — et ne dépend d'aucun service en ligne pour fonctionner.

#Prérequis

Home Assistant en place
Version 2024.6 minimum (qui inclut l'intégration Ollama native). Idéalement la dernière stable. HA OS, HA Container ou HA Supervised conviennent tous.
Une machine pour Ollama
Ollama peut tourner sur la même machine que HA si elle est assez musclée, ou sur un PC à part sur le LAN. Un Mac mini M4, un NUC i7 ou un PC avec GPU 8 Go+ font très bien le travail.
Ollama installé
Daemon actif sur le port 11434. Vérifiez avec curl http://localhost:11434 — la réponse doit être Ollama is running. Si rien n'est en place, suivez d'abord le guide d'installation Ollama du site.
Réseau local stable
Idéalement HA et Ollama sur le même VLAN, avec IP fixe pour le serveur Ollama. Le port 11434 doit être ouvert entre les deux.
Un modèle adapté
On y vient juste après. À ce stade, retenez qu'il faut un modèle qui sait faire du tool calling (appel d'outils).
!
Le Raspberry Pi 5 seul, ça suffit ?
Un Pi 5 8 Go peut faire tourner Home Assistant ET un petit modèle 3B en CPU pour des commandes courtes — mais la latence grimpe vite (4-8 s par requête). Pour un usage fluide en famille, dédiez une machine à Ollama et gardez le Pi pour HA. Voir le guide LLM sur Raspberry Pi 5 si vous voulez tout réunir.

#Modèles légers adaptés aux commandes domotiques

Le bon modèle pour la domotique n'est pas forcément le plus gros : il doit (1) supporter le tool calling correctement pour appeler les services Home Assistant, (2) bien parler français, (3) répondre vite. Les modèles 3B à 8B en Q4_K_M sont le sweet spot.

Llama 3.1 8B (Q4_K_M, ~5 Go VRAM)
Le défaut conseillé par la doc Home Assistant. Tool calling robuste, français correct, latence raisonnable sur GPU. C'est le bon point de départ.
Qwen 2.5 7B (Q4_K_M, ~5 Go VRAM)
Excellent en français, tool calling fiable, légèrement plus rapide que Llama 3.1. Bon choix alternatif si Llama dérive sur vos commandes.
Llama 3.2 3B (Q4_K_M, ~2 Go VRAM)
Pour les setups modestes (Pi 5, NUC sans GPU). Tool calling présent mais moins fiable sur des commandes complexes — restez sur des phrases courtes et explicites.
Qwen 2.5 14B (Q4_K_M, ~9 Go VRAM)
Si vous avez une RTX 3060 12 Go ou mieux. Gain net sur les commandes ambiguës (« mets une ambiance cosy au salon ») et la compréhension contextuelle.
Mistral 7B Instruct
Très bon en français, mais le tool calling est moins fiable que Llama 3.1 ou Qwen 2.5. Plutôt pour des dialogues, moins pour piloter strictement la maison.
Quantization recommandée : Q4_K_M
Pour la domotique, Q4_K_M donne le meilleur compromis VRAM/qualité. Inutile de monter en Q5 ou Q8 : sur des commandes courtes et structurées, la différence est invisible. Réservez les hautes quantizations à du dialogue libre ou du RAG.

#1. Brancher Ollama à Home Assistant

L'intégration Ollama est officielle dans Home Assistant depuis la version 2024.6. Elle se configure entièrement depuis l'interface, sans toucher à configuration.yaml.

  1. 01
    Tirer le modèle côté Ollama
    Sur la machine qui héberge Ollama, lancez la commande shell ci-dessous. Le téléchargement prend 3-5 Go selon le modèle choisi.
Terminal — machine Ollama
ollama pull llama3.1:8b
ollama list  # vérifier que le modèle apparaît
  1. 01
    Rendre Ollama accessible sur le LAN
    Par défaut Ollama n'écoute que sur localhost. Pour que Home Assistant (potentiellement sur une autre machine) puisse l'appeler, exposez le service sur toutes les interfaces.
Linux/macOS — exposer Ollama sur le LAN
# systemd (Linux)
sudo systemctl edit ollama
# ajouter dans le bloc [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama

# macOS (lancement manuel ou launchctl)
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
# puis relancer Ollama
  1. 01
    Ajouter l'intégration dans Home Assistant
    Paramètres > Appareils et services > Ajouter une intégration > rechercher « Ollama ».
  2. 02
    Renseigner l'URL
    URL : http://IP-DU-SERVEUR-OLLAMA:11434 (ex: http://192.168.1.42:11434). Si Ollama tourne sur la même machine que HA Container, utilisez http://host.docker.internal:11434.
  3. 03
    Choisir le modèle
    Home Assistant interroge automatiquement Ollama et affiche la liste des modèles disponibles. Sélectionnez llama3.1:8b.
  4. 04
    Activer le contrôle (Control Home Assistant)
    Dans les options de l'intégration, cochez « Control Home Assistant ». C'est ce qui autorise le LLM à appeler des services (allumer, éteindre, régler température). Sans cette case, il ne fait que discuter.
!
Pas d'auth par défaut sur Ollama
Ollama n'a pas d'authentification intégrée. Si vous exposez le port 11434 sur le LAN, assurez-vous que votre routeur ne le route pas vers Internet. Pour un setup plus serré, mettez Ollama derrière un reverse proxy avec auth basique (Caddy, nginx) ou limitez par IP au firewall.

#2. Exposer les bonnes entités à l'assistant

Home Assistant gère parfois des centaines d'entités (capteurs, prises, ampoules, vues, automatisations…). Les envoyer toutes au LLM saturerait le contexte et embrouillerait le modèle. L'astuce : exposer uniquement ce que l'assistant doit réellement contrôler.

  1. 01
    Paramètres > Voix > Exposer
    Liste de toutes les entités. Activez celles que l'assistant doit piloter : lumières, thermostats, prises, volets. Désactivez les capteurs internes (RAM du Pi, signal Zigbee, etc.) qui ne servent à rien à un humain.
  2. 02
    Renommer en langage naturel
    Une entité light.salon_lampe_principale_zigbee_3 est illisible. Renommez-la en « Lampe principale du salon ». Le LLM choisit la bonne entité bien plus fiablement à partir d'un nom humain.
  3. 03
    Grouper par zone
    Assignez chaque entité à une zone (Salon, Cuisine, Chambre…). Le LLM peut alors comprendre « éteins le salon » sans lister manuellement chaque lampe.
  4. 04
    Tester
    Dans Paramètres > Voix > Assistants, cliquez sur l'icône chat de votre pipeline Ollama, et essayez : « Quelle est la température de la chambre ? » puis « Allume la lampe principale du salon ».
Limite raisonnable : 30-50 entités exposées
Au-delà, les modèles 7-8B commencent à confondre les entités proches (« lampe de chevet » vs « lampe de bureau »). Si vous avez 200 ampoules, utilisez les zones et groupes HA plutôt que d'exposer chaque entité individuellement.

#3. Pipeline vocale 100 % locale (en option)

Si vous voulez parler à voix haute (au lieu de taper dans l'app HA), Assist permet de chaîner reconnaissance vocale → LLM → synthèse vocale, tout en local. Aucune dépendance Google ou Amazon.

Wake word — openWakeWord
Add-on HA officiel. Détecte un mot-clé d'activation (« Hey Jarvis », « Nabu ») sur un Pi ou un ESP32 satellite (Atom Echo, M5Stack).
STT (speech-to-text) — Whisper
Add-on HA officiel basé sur faster-whisper. Modèle tiny ou base suffit pour des commandes courtes, en français. ~1-2 s de transcription sur CPU correct.
LLM — Ollama (déjà configuré)
Reçoit la transcription, appelle l'outil HA approprié, renvoie une phrase de confirmation.
TTS (text-to-speech) — Piper
Add-on HA officiel. Voix françaises natives (fr_FR-siwis-medium, fr_FR-tom-medium). Très rapide, ~200 ms par phrase.

Une fois les quatre add-ons installés et démarrés, Paramètres > Voix > Assistants permet d'assembler le pipeline : sélectionnez Whisper en STT, votre intégration Ollama en agent conversationnel, Piper en TTS. C'est le moment où votre maison devient pilotable à la voix, sans aucune connexion sortante.

i
Satellite vocal sans micro PC
Un ESP32-S3-BOX ou un M5Stack Atom Echo flashé avec ESPHome devient un satellite Assist : il capte le wake word, envoie l'audio à HA, joue la réponse TTS. Coût : 20-30 €. Plusieurs satellites peuvent cohabiter dans une même maison.

#Latence : local vs cloud

C'est l'argument souvent négligé. Le cloud n'est pas magique : chaque commande fait un aller-retour datacenter, plus une file d'attente côté serveur. En local, vous coupez la moitié du trajet.

Cloud (Google/Alexa)
STT cloud (~400 ms) + intent cloud (~300 ms) + action HA via cloud (~200 ms) + TTS (~300 ms) = 1,2-1,8 s en moyenne, plus si le réseau est chargé.
Local — Pi 5 + LLM 3B CPU
STT Whisper tiny (~800 ms) + LLM 3B (~3-5 s sur CPU) + action (~50 ms) + TTS Piper (~200 ms) = 4-6 s. Acceptable pour une commande, frustrant en usage intensif.
Local — PC + LLM 8B GPU 8 Go
Whisper base (~400 ms) + LLM 8B Q4 (~600-900 ms) + action (~50 ms) + TTS (~200 ms) = 1,3-1,6 s. Aussi rapide qu'un Google Home, sans le cloud.
Local — Mac mini M4 24 Go
Pipeline complet ~1,1-1,4 s grâce au GPU intégré et à la mémoire unifiée. C'est probablement le meilleur rapport perf/consommation pour de la domotique LLM 24/7.
Garder le modèle chaud
Ollama décharge les modèles inactifs au bout de 5 minutes par défaut. Pour la domotique, lancez Ollama avec OLLAMA_KEEP_ALIVE=24h — le modèle reste en VRAM, et la première commande après plusieurs heures de silence répond aussi vite que la centième.

#Ce qui sort vraiment du LAN (rien)

Vérifions concrètement le périmètre des données. Sur un setup HA + Ollama + Whisper + Piper bien configuré :

Audio capté par le micro
Traité par Whisper local. Aucun audio quitte le réseau.
Texte transcrit de votre commande
Envoyé à Ollama local. Aucune transcription quitte le réseau.
Liste de vos appareils et zones
Partagée avec Ollama local pour qu'il appelle la bonne entité. Reste sur le LAN.
Décision et action HA
Exécutée par HA, qui parle directement à Zigbee/Z-Wave/Matter/MQTT en local.
Réponse vocale Piper
Audio synthétisé localement. Aucune voix de synthèse fetchée en ligne.

Le seul trafic sortant possible reste les mises à jour de HA, d'Ollama et des modèles — vous décidez quand les lancer. Pour un usage strict, on peut couper Internet à la machine HA après installation : tout continue de fonctionner.

i
Pour le vérifier vous-même
Sur votre routeur (ou avec tcpdump sur l'hôte), filtrez le trafic sortant des IP de HA et Ollama pendant l'usage de l'assistant. Vous ne verrez que des résolutions DNS et éventuellement NTP — aucun trafic vers un service IA tiers.

#Astuces et dépannage

Le LLM répond en anglais
Ajoutez un prompt système dans l'intégration Ollama : « Tu es l'assistant domotique de la maison. Réponds toujours en français, en une phrase courte. » Cette consigne suffit avec Llama 3.1 ou Qwen 2.5.
Il invente des entités inexistantes
Symptôme d'un modèle trop petit ou d'un nom d'entité ambigu. Renommez les entités en langage naturel, réduisez le nombre exposé, ou passez à Qwen 2.5 14B si VRAM disponible.
Il appelle le bon service mais sur la mauvaise zone
Vérifiez que chaque entité a bien une « area » assignée dans HA. Sans zone, le modèle devine et se trompe sur les noms proches.
Latence qui s'effondre après quelques heures
Ollama a déchargé le modèle. Lancez le service avec OLLAMA_KEEP_ALIVE=24h (ou 168h pour une semaine).
Connection refused depuis HA
Ollama écoute encore sur 127.0.0.1. Vérifiez OLLAMA_HOST=0.0.0.0:11434 dans l'unit systemd, redémarrez, et testez avec curl depuis la machine HA.
Pi 5 qui chauffe en CPU
Le LLM en CPU sollicite les 4 cœurs à 100 %. Ajoutez un ventilateur actif (ou un Pi 5 case Argon ONE V3) si vous tenez à tout faire tourner sur le Pi. Sinon, déportez Ollama sur un autre hôte.
Voulez confiner Ollama au LAN seulement
Plutôt que 0.0.0.0:11434, écoutez sur l'IP LAN précise (ex: OLLAMA_HOST=192.168.1.42:11434). Ollama n'acceptera plus de connexion depuis d'autres interfaces.

#Pour aller plus loin

Vous avez un assistant domotique LLM local fonctionnel. Quelques pistes pour aller plus loin :

Installer Ollama sur Linux
Si vous voulez dédier une machine Linux à Ollama (le scénario le plus propre pour de la domotique 24/7), le guide d'install Linux couvre systemd, GPU NVIDIA/AMD, et la configuration réseau.
LLM sur Raspberry Pi 5
Pour évaluer concrètement ce qui passe en CPU pur sur un Pi 5 8 Go, avec benchmarks tokens/sec et choix de modèles 1-3B.
Choisir sa quantification (Q4, Q5, Q8)
Pour comprendre pourquoi Q4_K_M est le sweet spot domotique, et quand monter en Q5_K_M ou descendre en Q3 a du sens.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.