Lights Simulator est une intégration Home Assistant, installable par HACS, qui allume et éteint vos lampes au hasard quand la maison est vide. Le soir, et si vous le voulez le matin, la maison semble habitée. Elle est gratuite, open source (licence MIT) et disponible sur GitHub.

Logo Lights Simulator

Pourquoi ce projet

Une maison plongée dans le noir plusieurs soirs de suite signale une absence. Allumer toujours la même lampe à la même heure ne trompe personne non plus. Il faut du hasard : des pièces différentes, des durées variables, une fin de soirée qui change chaque jour.

Chez moi, ce simulateur existait depuis longtemps sous forme « fait main » : une quarantaine d’entrées simulateur_presence_*, des capteurs template, six automatisations et un script. Ça fonctionnait, mais c’était lourd à maintenir et impossible à partager. J’en ai donc fait une vraie intégration : tout se règle dans un panneau, sans YAML, et l’assistant d’installation reprend les réglages d’un simulateur « fait main » existant.

Ce que fait Lights Simulator

Le principe : quand la maison est vide et qu’on est dans une plage horaire, le simulateur tire une lampe, l’allume pour une durée aléatoire, fait une pause, puis recommence.

  • Déclenchement par l’alarme (vous choisissez les états qui comptent comme « absent »), par l’absence de toutes les personnes choisies, ou par l’un ou l’autre. Un délai évite de démarrer pour un simple aller-retour.
  • Trois modes : Arrêt, Auto (suit le déclenchement) et Forcé (pour tester ou pour une absence prévue).
  • Plage du soir : début au coucher du soleil ± quelques minutes, à heure fixe, ou quand la luminosité extérieure passe sous un seuil. La fin est une heure moyenne ± une variation tirée au hasard chaque soir.
  • Plage du matin facultative, qui se termine au lever du soleil, à heure fixe ou selon la luminosité. Les jours de chaque plage se cochent.
  • Lampes pondérées : un poids de 0 à 5 par lampe. Le salon s’allume plus souvent et plus longtemps que le couloir.
  • Capteur de luminosité par lampe : si la pièce est déjà éclairée, le simulateur tire une autre lampe, allume quand même, ou lance un script, une scène ou une automatisation à la place.
  • Fin de soirée progressive : chaque lampe s’éteint 1 à 5 minutes avant la fin tirée. Jamais d’extinction générale d’un coup, qui trahirait l’automatisme.
  • Retour de nuit : quand vous rentrez, les lampes du simulateur s’éteignent, sauf celles marquées « garder allumée » s’il fait nuit (pratique pour l’entrée ou le couloir).
  • Contrôle des lampes : une lampe qui ne confirme pas son allumage est écartée pendant un temps réglable.
  • Reprise après redémarrage de Home Assistant : chaque lampe garde son heure d’extinction.
  • Sauvegardes de la configuration dans Home Assistant (les 10 dernières), export et import en JSON.

Installation

Il faut Home Assistant 2024.12 ou plus récent.

  1. Dans HACS, menu ⋮ → Dépôts personnalisés, ajoutez https://github.com/akoonet-homeassistant/lights_simulator avec la catégorie Intégration.
  2. Recherchez Lights Simulator dans HACS et installez-le.
  3. Redémarrez Home Assistant.
  4. Paramètres → Appareils et services → Ajouter une intégration → Lights Simulator.

L’assistant pose deux questions : ce qui déclenche le mode Auto (alarme, personnes ou les deux) et les lampes à utiliser. S’il trouve un ancien simulateur « fait main », il propose d’en reprendre les plages, les jours, le rythme, les poids et le mode, sans rien modifier.

Pensez ensuite à désactiver vos anciennes automatisations de simulation, pour que deux simulateurs ne pilotent pas les mêmes lampes.

Le panneau de réglages

Tout se règle dans le panneau Lights Simulator de la barre latérale, sans une ligne de YAML. Tous les utilisateurs de Home Assistant peuvent l’ouvrir et changer les réglages, pas seulement les administrateurs : pratique pour le reste de la famille.

Captures réalisées sur une installation de démonstration : toutes les entités sont fictives.

Fonctionnement

L’onglet d’accueil montre l’état, le mode, l’heure de démarrage prévue ou réelle, la fin tirée pour la soirée, le lever et le coucher du soleil. Chaque lampe allumée apparaît avec son heure d’arrêt, et un journal garde la trace des dernières actions.

Plages

Pour chaque plage, soir et matin, on choisit entre Soleil, Heure fixe et Luminosité, puis la fin, la variation et les jours.

Lampes

Chaque lampe a sa fiche : poids, capteur de luminosité et seuil, comportement si la pièce est déjà éclairée, actions à l’allumage et à l’extinction, « garder allumée » au retour de nuit. Un bouton Tester allume la lampe pour vérifier qu’elle répond.

Rythme

C’est ici qu’on règle le déclenchement (alarme, personnes, délai), les durées d’allumage, les pauses, le nombre de lampes allumées en même temps et le contrôle des lampes.

Sauvegarde

Avant de tout chambouler, une sauvegarde nommée se crée en un clic. On peut aussi télécharger la configuration en JSON et la réimporter. Une copie de sécurité est faite automatiquement avant chaque restauration.

Masquer le panneau

Si vous ne voulez pas d’une entrée de plus dans la barre latérale, désactivez Afficher dans la barre latérale. Le panneau reste accessible par Paramètres → Appareils et services → Lights Simulator (bouton Configurer ou lien Visiter), par la carte Lovelace ou à l’adresse /lights-simulator.

La carte Lovelace et les entités

Une carte est fournie et se charge toute seule, sans ressource à ajouter :

type: custom:lights-simulator-card
titre: Simulateur de présence

Elle affiche le mode, l’état, le démarrage, le prochain lever ou coucher du soleil, chaque lampe allumée avec son heure d’arrêt (« Cuisine — jusqu’à 15:04 · 38 min ») et la dernière action. Le bouton « Ouvrir les réglages » mène au panneau.

Pour vos propres tableaux de bord et automatisations, l’intégration crée aussi des entités. Les plus utiles :

EntitéRôle
select.lights_simulator_modeMode : Arrêt, Auto, Forcé
binary_sensor.lights_simulator_actifSimulation en cours
binary_sensor.lights_simulator_maison_videMaison vide (après le délai)
sensor.lights_simulator_etatÉtat lisible
sensor.lights_simulator_demarrageHeure de démarrage réelle ou prévue
sensor.lights_simulator_fin_ce_soirFin tirée pour la soirée
sensor.lights_simulator_lampes_allumeesLampes allumées et temps restant, pratique pour un badge
switch.lights_simulator_<lampe>Lampe utilisée ou non par le simulateur
number.lights_simulator_<lampe>_poidsPoids de la lampe (0 à 5)

La liste complète est dans le README. Exemple : mon script « mode absent » passe simplement select.lights_simulator_mode sur Auto en partant.

Et la suite

Lights Simulator remplace chez moi tout l’ancien bricolage : plus d’entrées ni d’automatisations à maintenir, et des réglages que tout le monde à la maison peut ajuster. La demande d’ajout à la liste par défaut de HACS est en cours. Une fois acceptée, il suffira de chercher « Lights Simulator » dans HACS, sans ajouter le dépôt à la main.

Le code, les versions et le suivi des problèmes sont sur GitHub. Retours, idées et signalements de bugs y sont les bienvenus.