Le Détective Domotique IA

Une maison connectée sous Home Assistant génère des milliers de points de données chaque jour : températures, consommation électrique, ouvertures de portes, humidité… Soyons honnêtes : personne ne s’amuse à regarder ces graphiques tous les matins.

Résultat ? On rate les signaux faibles. Un frigo qui commence à rendre l’âme ou une fuite thermique hivernale passent inaperçus jusqu’à ce que la panne soit totale ou que la facture explose.

La solution est de déployer un “Détective Domotique” : un agent IA qui analyse quotidiennement vos historiques pour y trouver des anomalies invisibles à l’œil nu.

(Note sur la vie privée : Dans cet article, nous mettons en place un SLM local car c’est la solution de prédilection des “paranos” de la donnée qui refusent tout Cloud. Cependant, soyons pragmatiques : envoyer l’historique de température de votre salon ou la consommation de votre frigo à un LLM public comme Google Gemini, OpenAI (ChatGPT) ou Anthropic Claude présente un risque de sécuriter proche de zéro. Si vous débutez, utiliser l’une de ces APIs publiques sera d’ailleurs beaucoup plus simple à mettre en place !)

Des cas d’usage très concrets

L’IA excelle dans la reconnaissance de motifs (pattern recognition) dans les séries temporelles. Voici deux exemples typiques que notre détective peut repérer :

  1. Le syndrome du frigo défectueux : Votre prise connectée remonte la consommation de la cuisine. L’IA remarque que la moyenne de consommation du frigo est passée de 1 kWh/jour le mois dernier à 1.5 kWh/jour cette semaine, alors que la température ambiante de la maison n’a pas changé. L’IA déclenche une alerte : “Anomalie détectée : Le compresseur du frigo tourne anormalement longtemps. Vérifiez le joint de la porte ou prévoyez un dégivrage imminent sous peine de panne matérielle.”
  2. L’anomalie de chauffage (Fuite thermique) : Le thermostat du salon est réglé sur 20°C et le radiateur consomme à 100%. Pourtant, la sonde de température indique que la pièce chute à 18°C. L’IA croise les données et vous alerte : “Anomalie thermique : Le chauffage fonctionne à plein régime mais la température baisse. Une fenêtre est-elle restée ouverte ou y a-t-il un problème d’isolation grave dans la pièce ?”

L’Architecture du Détective

Pour réaliser ce projet sans envoyer nos données privées sur le Cloud, nous utilisons des outils Open Source :

Le Code (Python)

Voici le script Python qui va récupérer les données des 7 derniers jours dans InfluxDB, les synthétiser, et demander à l’IA de chercher le moindre problème.

import influxdb_client
from langchain_community.llms import Ollama

# 1. Connexion à la base de données InfluxDB de Home Assistant
token = "votre_token_influxdb"
org = "maison"
url = "http://homeassistant.local:8086"
client = influxdb_client.InfluxDBClient(url=url, token=token, org=org)
query_api = client.query_api()

# 2. Requête Flux pour récupérer la consommation du frigo sur 7 jours
query_frigo = """
from(bucket: "homeassistant")
  |> range(start: -7d)
  |> filter(fn: (r) => r["entity_id"] == "prise_frigo_energy")
  |> aggregateWindow(every: 1d, fn: sum)
"""
resultats_frigo = query_api.query(org=org, query=query_frigo)

# On formate les données pour l'IA
donnees_analyse = "Consommation journalière du Frigo (7 derniers jours) :\n"
for table in resultats_frigo:
    for record in table.records:
        donnees_analyse += f"- {record.get_time().date()} : {record.get_value()} kWh\n"

# (Vous pouvez faire la même chose pour les capteurs de température, etc.)

# 3. Construction du Prompt pour le Détective
prompt = f"""
Tu es un expert en maintenance prédictive et en domotique.
L'infrastructure vais te fournir des relevés de capteurs de la maison. Ton but est de détecter des anomalies, des dérives de consommation ou des pannes matérielles potentielles.

Voici les données :
{donnees_analyse}

Analyse ces données. Y a-t-il une tendance anormale ? 
Si oui, explique la cause probable de la panne (ex: problème de joint, compresseur fatigué) et propose une action corrective.
Sois concis et direct.
"""

# 4. Interrogation du SLM local
print("[*] Le détective IA analyse les logs...")
llm = Ollama(model="llama3", temperature=0.1) # Température basse pour une analyse stricte
analyse = llm.invoke(prompt)

print("\n--- RAPPORT DU DÉTECTIVE DOMOTIQUE ---")
print(analyse)

# Optionnel : Envoyer 'analyse' sur Telegram via un appel API si une anomalie est trouvée.

Conclusion

L’utilisation de l’IA ne se limite pas à générer du texte ou à coder. Dans le monde de l’IoT, l’analyse des séries temporelles (Time-Series) par des agents intelligents permet de transformer une maison simplement “connectée” en une maison “prédictive”. En détectant la panne d’un appareil électroménager avant qu’elle ne survienne, ou en repérant une dérive de consommation silencieuse, ce petit script Python couplé à un SLM local devient un outil d’économie d’énergie et de maintenance redoutablement efficace.


Sources

  1. InfluxDB - Base de données pour séries temporelles
  2. Ollama - Modèles IA en local
  3. Intégration InfluxDB pour Home Assistant

Si vous voulez plus d’information sur l’infrastructure vous pouvez voir l’ repo à ce sujet : https://github.com/ravindrajob/InfraAtHome