Vos lumières s'allument toujours à la même intensité et la même couleur, quelle que soit l'heure ? Ce réglage statique, ignoré la plupart du temps, a un impact réel sur votre niveau d'énergie dans la journée et sur votre qualité de sommeil le soir. La lumière bleue et froide du matin stimule le cortisol ; la lumière ambrée du soir favorise la mélatonine. Un éclairage intelligent qui reproduit cette progression naturelle n'a rien d'anecdotique.
Adaptive Lighting est un custom component Home Assistant installé via HACS qui fait exactement cela : il calcule en permanence la position du soleil à votre emplacement et ajuste automatiquement la luminosité et la température de couleur de vos ampoules tout au long de la journée. Ce guide couvre l'installation, la configuration complète — y compris le sleep mode et la gestion des interventions manuelles — et des exemples YAML concrets pour l'intégrer dans vos automations.
Pourquoi synchroniser son éclairage avec le soleil (et pas avec une minuterie fixe)
Une minuterie fixe — "70 % de luminosité à 18h, 40 % à 21h" — a le mérite de la simplicité. Mais elle ignore deux réalités : le lever et le coucher du soleil changent chaque jour de plusieurs minutes, et votre besoin en lumière varie selon les saisons. En janvier à Paris, la nuit tombe à 17h ; en juin à 21h40. Une automatisation fixe est donc soit trop agressive en hiver, soit trop tardive en été.
Adaptive Lighting résout ce problème en calculant l'heure de lever et de coucher du soleil à partir de votre géolocalisation configurée dans Home Assistant (Paramètres → Système → Général). La courbe de luminosité et de température de couleur suit naturellement ces variations saisonnières, sans aucune intervention de votre part.
Adaptive Lighting vs Flux : pourquoi choisir le custom component
Home Assistant propose nativement l'intégration Flux, qui suit le même principe. Pourquoi alors installer un custom component supplémentaire ? Parce que Flux présente deux limitations importantes en usage quotidien.
Première limitation : Flux n'a pas de notion de contrôle manuel. Si vous baissez vous-même la luminosité d'une lampe pendant un film, Flux la repassera à sa valeur calculée à la prochaine itération. Adaptive Lighting détecte cet changement et marque la lampe comme "contrôlée manuellement" : il cesse de l'ajuster jusqu'à ce qu'elle soit éteinte et rallumée, ou jusqu'à ce que vous réactiviez explicitement l'adaptation.
Deuxième limitation : Flux n'a pas de sleep mode. Adaptive Lighting propose un mode nuit configurable — luminosité et température de couleur ultra-basses (autour de 1 000 K, proche du rouge) — activable via un switch dédié ou via une automatisation. C'est la lumière idéale pour se lever la nuit sans perturber le cycle de mélatonine.
En pratique : si vous utilisez Flux et que vous n'avez jamais besoin de toucher manuellement vos lumières, il fait très bien son travail. Si vous avez plusieurs scénarios (film, lecture, nuit), Adaptive Lighting est nettement plus adapté.
Prérequis : ampoules et coordinateur compatibles
Adaptive Lighting fonctionne avec n'importe quelle entité light.* dans Home Assistant qui supporte au moins l'un des deux modes suivants :
- color_temp : variation de la température de couleur en Kelvin (blanc chaud ↔ blanc froid). Nécessaire pour l'adaptation chromatique.
- brightness : variation de la luminosité. Toutes les ampoules connectées le supportent.
Les ampoules RGB seules (trois canaux couleur sans canal blanc dédié) peuvent fonctionner avec l'option prefer_rgb_color, mais le rendu est moins fidèle qu'avec une vraie ampoule "White Ambiance" ou "Tunable White". Pour un résultat optimal, préférez :
- Ampoules Zigbee Philips Hue White Ambiance (intégrées via Zigbee2MQTT sans pont)
- Ampoules Zigbee White Ambiance budget : innr E27 (disponible sur Amazon), IKEA KAJPLATS (Matter/Zigbee dual, en boutique IKEA uniquement) — excellente alternative à moindre coût
- Ampoules Wi-Fi Shelly DUO W (deux canaux blanc : chaud + froid)
- Rubans LED WLED avec LEDs bi-couleur CCT (voir notre guide WLED)
Aucun coordinateur particulier n'est requis : Adaptive Lighting interagit uniquement avec les entités light.* de Home Assistant, peu importe leur protocole sous-jacent (Zigbee, Wi-Fi, Z-Wave, ESPHome).
Pour tirer pleinement parti de l'adaptation chromatique, une ampoule White Ambiance avec une large plage Kelvin fait la différence. Le Philips Hue White Ambiance A60 couvre le spectre complet avec une gradation ultra-basse jusqu'à 0,2 % :
Philips Hue White Ambiance A60 E27
Spectre complet · Gradation 0,2% · 1100 lm · E27 · Zigbee
Pour équiper plusieurs pièces à moindre coût, l'innr E27 propose une compatibilité Zigbee native (Zigbee2MQTT, ZHA — sans pont Hue requis) avec une plage 2200-5000 K suffisante pour l'éclairage circadien :
innr Ampoule Zigbee E27 Blanc Chaud à Froid
Zigbee natif · 2200-5000K · 1190 lm · Compatible Z2M/ZHA
Alternative sans Zigbee, l'ampoule Wi-Fi Shelly DUO W s'intègre directement dans Home Assistant via l'intégration Shelly officielle, sans coordinateur ni passerelle intermédiaire :
Shelly Duo Bulb E27 Gen3
Wi-Fi + BT · 2700-6500K · 806 lm · Intégration HA native · E27
Installation via HACS (5 minutes)
Adaptive Lighting n'est pas inclus dans Home Assistant par défaut : c'est un custom component distribué via HACS (Home Assistant Community Store). Si HACS n'est pas encore installé sur votre instance, l'installation se fait via le terminal intégré à HA (add-on Terminal & SSH, disponible sur Home Assistant OS et Supervised) : ouvrez une session SSH et exécutez wget -O - https://get.hacs.xyz | bash -, puis redémarrez HA. Une fois redémarré, allez dans Paramètres → Appareils et services → Ajouter une intégration, cherchez "HACS" et suivez la procédure d'authentification GitHub.
Une fois HACS opérationnel, l'installation d'Adaptive Lighting se fait en trois clics :
- Ouvrir HACS → Intégrations → bouton Explorer et télécharger des dépôts
- Rechercher Adaptive Lighting → sélectionner le dépôt de Bas Nijholt
- Cliquer sur Télécharger, puis Redémarrer Home Assistant
Après le redémarrage, Adaptive Lighting apparaît dans la liste des intégrations disponibles. Pas de configuration YAML nécessaire — tout se fait via l'interface.
Créer votre première instance et ajouter vos lumières
Allez dans Paramètres → Appareils et services → Ajouter une intégration, recherchez "Adaptive Lighting" et cliquez sur Configurer. L'assistant vous demande un nom pour cette instance (ex : "Salon", "Bureau", "Chambre"). Créez une instance par zone si vous souhaitez des comportements différents pièce par pièce.
Une fois l'instance créée, allez dans la liste des intégrations, cliquez sur Adaptive Lighting → Options. C'est ici que vous ajoutez vos entités lumière et configurez tous les paramètres. Le champ Lumières accepte n'importe quelle entité light.*, y compris des groupes de lumières.
Adaptive Lighting crée automatiquement quatre switches pour chaque instance :
switch.adaptive_lighting_salon— active ou désactive l'adaptation globaleswitch.adaptive_lighting_sleep_mode_salon— active le mode nuitswitch.adaptive_lighting_adapt_brightness_salon— active/désactive uniquement l'adaptation de luminositéswitch.adaptive_lighting_adapt_color_salon— active/désactive uniquement l'adaptation de couleur
Ces quatre switches sont vos leviers de contrôle principaux dans vos automations.
Les paramètres essentiels : luminosité, température de couleur, transitions
Les options par défaut donnent un résultat immédiatement utilisable, mais quelques ajustements rendent l'expérience nettement meilleure selon votre installation.
Luminosité
Luminosité minimale (min_brightness_pct) : pourcentage appliqué la nuit, autour du coucher du soleil. La valeur par défaut est 1 %, ce qui peut être trop sombre pour certaines ampoules. Commencez à 5-10 % et ajustez selon votre ressenti.
Luminosité maximale (max_brightness_pct) : pourcentage appliqué en milieu de journée. 100 % par défaut. Vous pouvez le baisser si vous trouvez votre éclairage trop intense même à midi.
Température de couleur
Température minimale (min_color_temp) : la valeur la plus chaude appliquée en soirée, exprimée en Kelvin. Valeur par défaut : 2 000 K (ambre chaud, similaire à une ampoule à incandescence). En dessous de 2 000 K, seules quelques ampoules haut de gamme descendent.
Température maximale (max_color_temp) : la valeur la plus froide appliquée en milieu de journée. Valeur par défaut : 5 500 K. Vérifiez la plage supportée par vos ampoules — certaines s'arrêtent à 4 000 K, d'autres (haut de gamme) montent jusqu'à 6 500 K. Augmenter au-delà de 5 500 K n'a d'effet que si vos ampoules le supportent réellement.
Transitions
Durée de transition (transition) : en secondes, la durée de changement entre deux valeurs successives. La valeur par défaut (45 secondes) est suffisamment douce pour que les changements soient imperceptibles. Montez à 60-90 secondes pour une transition encore plus fluide.
Fréquence d'adaptation (interval) : en secondes, à quelle fréquence Adaptive Lighting recalcule et applique la valeur. Valeur par défaut : 90 secondes. Descendre en dessous de 30 secondes génère une charge réseau inutile sur les ampoules Zigbee.
Décalage par rapport au lever/coucher du soleil
sunrise_offset et sunset_offset permettent d'avancer ou retarder le début et la fin de la courbe d'adaptation. Par exemple, sunrise_offset: "-01:00:00" commence à refroidir la lumière une heure avant le lever du soleil, utile si vous vous levez tôt. Ces décalages s'expriment au format HH:MM:SS, négatif pour avancer, positif pour retarder.
Sleep mode : configurer la lumière nocturne
Le sleep mode est la fonctionnalité la plus utile d'Adaptive Lighting pour les nuits. Activé via switch.adaptive_lighting_sleep_mode_chambre, il substitue la courbe normale par des valeurs fixes ultra-basses, idéales pour les trajets nocturnes sans perturber l'endormissement.
Deux paramètres clés à configurer dans les options :
- Luminosité en sleep mode (
sleep_brightness_pct) : entre 1 et 5 % pour un éclairage de sécurité minimum. - Température de couleur en sleep mode (
sleep_color_temp) : entre 1 000 et 1 500 K pour une lumière très ambrée, presque rouge — la moins agressive pour la rétine et la production de mélatonine.
Exemple d'automatisation pour activer le sleep mode automatiquement à 22h30 et le désactiver au réveil :
alias: Adaptive Lighting — sleep mode chambre
triggers:
- trigger: time
at: "22:30:00"
id: activate_sleep
- trigger: time
at: "07:00:00"
id: deactivate_sleep
actions:
- choose:
- conditions:
- condition: trigger
id: activate_sleep
sequence:
- action: switch.turn_on
target:
entity_id: switch.adaptive_lighting_sleep_mode_chambre
- conditions:
- condition: trigger
id: deactivate_sleep
sequence:
- action: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_chambre
Take back control : gérer les interventions manuelles
L'un des problèmes les plus fréquents rapportés sur le forum HACF avec les systèmes d'éclairage adaptatif : vous baissez vous-même la lumière pour regarder un film, et 90 secondes plus tard le système la remet à sa valeur calculée. Adaptive Lighting résout ce problème avec la fonctionnalité take back control.
Quand take_over_control est activé (valeur par défaut : true), toute modification manuelle d'une lumière — depuis l'interface HA, depuis un interrupteur physique, depuis une télécommande Zigbee — marque cette lumière comme "contrôlée manuellement". Adaptive Lighting cesse alors de l'ajuster jusqu'à ce que vous éteigniez et rallumez la lampe, ou jusqu'à ce que vous appeliez le service adaptive_lighting.set_manual_control pour réactiver l'adaptation.
Pour réactiver l'adaptation sur toutes les lumières d'une instance depuis une automatisation ou un script :
- action: adaptive_lighting.set_manual_control
data:
entity_id: switch.adaptive_lighting_salon
lights: all
manual_control: false
Un cas d'usage courant : créer un bouton dans votre tableau de bord qui désactive le contrôle manuel sur tout le salon en un seul appui, après une session film ou réunion.
L'option detect_non_ha_changes va plus loin : elle surveille également les changements effectués en dehors de Home Assistant — depuis l'application du fabricant de l'ampoule ou un autre système. Activez-la uniquement si vos lumières sont régulièrement contrôlées depuis plusieurs sources, car elle génère des lectures d'état supplémentaires.
Combiner Adaptive Lighting avec vos automations existantes
Adaptive Lighting et vos automations d'allumage/extinction sont complémentaires : Adaptive Lighting ne s'occupe que de la valeur des lumières déjà allumées. Il n'allume ni n'éteint rien de lui-même. Vos automations de détection de présence ou vos routines d'entrée continuent de fonctionner normalement.
Allumage avec les bonnes valeurs dès le premier instant
Si vous allumez une lumière via une automatisation, elle peut prendre quelques secondes avant qu'Adaptive Lighting ne l'ajuste à la valeur correcte. Pour éviter ce flash initial, appelez le service adaptive_lighting.apply immédiatement après l'allumage :
alias: Entrée — allumer lumière avec adaptive lighting
triggers:
- trigger: state
entity_id: binary_sensor.mouvement_entree
to: "on"
actions:
- action: light.turn_on
target:
entity_id: light.entree
- action: adaptive_lighting.apply
data:
entity_id: switch.adaptive_lighting_entree
lights:
- light.entree
Désactiver l'adaptation pour une scène spécifique
Pour les scènes (film, dîner, ambiance) où vous ne voulez pas que l'adaptation reprenne automatiquement, désactivez temporairement le switch principal :
alias: Activer scène cinéma
actions:
- action: switch.turn_off
target:
entity_id: switch.adaptive_lighting_salon
- action: scene.turn_on
target:
entity_id: scene.cinema
Pensez à créer une automatisation complémentaire qui réactive Adaptive Lighting quand vous quittez la pièce ou à une heure fixe.
Dépannage : cas courants
Les lumières ne changent pas de couleur, seulement de luminosité
Vérifiez d'abord que vos ampoules supportent la variation de température de couleur (color_temp dans les attributs de l'entité HA). Une ampoule RGB pure sans canal blanc ne peut pas reproduire les blancs chauds. Consultez la fiche de l'entité dans Outils de développement → États et vérifiez la présence de l'attribut color_temp_kelvin.
Si l'attribut est présent mais que les changements n'ont pas d'effet visible, activez l'option prefer_rgb_color: false explicitement dans la configuration.
Adaptive Lighting reprend le contrôle trop tôt après une intervention manuelle
Vérifiez que take_over_control est bien à true dans les options. Si la lumière est contrôlée depuis une application tierce (Hue app, Shelly app), activez également detect_non_ha_changes.
Conflit avec une autre automatisation qui modifie la luminosité
Si une de vos automations existantes modifie la luminosité d'une lumière couverte par Adaptive Lighting, Home Assistant interprète cela comme un contrôle manuel et stoppe l'adaptation. Deux solutions : soit inclure un appel à adaptive_lighting.set_manual_control avec manual_control: false à la fin de votre automatisation, soit gérer la luminosité exclusivement via Adaptive Lighting et supprimer les valeurs de luminosité de vos autres automations.
Les lumières clignotent lors des transitions
Ce comportement peut apparaître sur certaines ampoules Zigbee bas de gamme qui interprètent mal les commandes rapides. Augmentez la valeur de transition à 90 ou 120 secondes, et montez interval à 120 secondes pour espacer les envois de commandes.
Adaptive Lighting est une des rares intégrations qui améliore concrètement la vie quotidienne sans nécessiter de matériel supplémentaire. Une fois configuré, vous oubliez qu'il tourne — vos lumières suivent simplement le rythme de la journée, et vous le remarquerez surtout le jour où vous le désactiverez.