Expérimentation Home Assistant, MCP et LLM
Mesurer la qualité de l'air chez moi ne me suffisait plus. L'objectif : corréler les mesures pour produire une interprétation contextuelle des événements détectés.
Depuis quelques jours, je profite d'un peu de temps libre. Je me suis remis sur un sujet qui m'intéresse particulièrement : mesurer la qualité de l'air dans mon appartement.
Cette fois-ci, mon objectif n'était pas simplement de remonter des mesures brutes, mais de commencer à corréler différentes mesures pour produire une interprétation contextuelle des événements détectés.
C'est là que les récentes avancées technologiques (et la lecture d'articles sur LinkedIn) m'ont amené à tester l'usage d'un serveur MCP couplé à un LLM. J'utilise Home Assistant (Green), qui dispose de son serveur MCP.
Le montage
J'ai donc repris mon fer à souder et je me suis construit plusieurs capteurs autour d'ESP32, intégrés dans Home Assistant :
- BME280 / BME680 pour la température, l'humidité, la pression et certains indicateurs d'environnement
- SPS30 pour les particules fines (la « grosse boîte » verte sur la photo)
- SGP41 pour les VOC / NOx
- SCD41 pour le CO2
- TSL2591 pour la luminosité, afin de distinguer les cycles jour / nuit (un peu « overkill » mais je l'avais)
- LD2410 pour la détection de présence et le rapprochement avec les déplacements humains (avec en prime un petit affichage OLED SSD1306)
Le rôle du MCP
Le rôle du MCP est de permettre au LLM d'interagir avec Home Assistant de manière standardisée. Concrètement, le modèle peut aller lire la valeur actuelle d'un capteur, récupérer l'évolution des particules sur les dernières minutes, croiser cette information avec la présence détectée, puis la remettre en perspective avec la luminosité ou le CO2 pour qualifier un événement.
L'intérêt n'est plus seulement d'afficher des courbes, mais de produire une sortie plus exploitable : annotation d'un pic, interprétation textuelle et synthèse plus contextuelle. Par exemple, j'ai pu aboutir à ce type d'interprétation :
LLM inference - Salon - 19:14
PM2.5 : 41 µg/m³ · CO2 : 782 ppm - stable
Présence : active · Luminosité : faible · nuit
Conclusion : pic PM2.5 bref à 19:14. Présence active détectée. CO2 stable, pas de signe d'accumulation prolongée. Pas d'indice fort en faveur d'une source extérieure. Action suggérée : surveiller la récurrence sans présence ou sur plusieurs pièces.
Les premiers résultats sont intéressants. On retrouve certaines interprétations attendues, comme la hausse du CO2 lors d'une occupation prolongée ou des pics de particules lors de déplacements dans l'appartement (typiquement mon exemple). Mais j'ai vu aussi apparaître des cas moins simples à interpréter, avec par exemple des événements très courts, localisés, ou au contraire des signaux qui ne collent pas avec les corrélations habituelles.
C'est justement là que l'approche devient intéressante… à condition de rester prudent et d'éviter que le LLM ne transforme trop vite une corrélation en causalité.
Un budget de week-end
Côté LLM, je passe par OpenRouter, ce qui me permet de tester différents modèles assez simplement selon la qualité de restitution, la prudence dans l'interprétation ou le coût.
Pour rester pragmatique, j'y ai mis 10 $ de crédits pour mes essais du week-end… et je n'ai pas explosé le budget. Pour le moment, je suis resté sur des modèles à faible coût (Llama 3.1 8B Instruct, Claude 3.5 Haiku et GPT-4.1 mini). Je n'ai pas encore assez de recul pour bien apprécier lequel serait le plus pertinent dans mon contexte, et je n'ai pas encore osé passer sur des modèles plus lourds mais bien plus coûteux.
Comme quoi, même avec Home Assistant, MCP, quelques ESP32 et plusieurs LLM, on peut encore garder une expérimentation domestique compatible avec un budget raisonnable.
La vraie difficulté
La difficulté principale n'a pas été de connecter les capteurs, mais plutôt de :
- fiabiliser les mesures,
- recaler des signaux de nature différente,
- produire un contexte utile sans envoyer trop de bruit au modèle,
- garder une interprétation suffisamment prudente pour qu'elle reste crédible.
Le next step sera de continuer à enrichir les scénarios de corrélation, comparer encore les comportements des différents modèles, et voir jusqu'où il est possible d'aller sur l'explicabilité et la prédictibilité. Et bien sûr, de mettre tous mes montages dans des petits boîtiers adaptés et plus discrets :-)
En tout cas, j'ai trouvé un terrain d'expérimentation amusant, à la croisée de la domotique, de la donnée, de l'embarqué et des LLM.
Envie d'échanger sur un projet data ou IA ?
Expérimentations, architectures, retours de terrain - parlons-en.
