This blueprint calculates optimal brightness and color temperature values throughout the day and stores them in input_number helpers for use by other automations and blueprints.
Key Features
Flexible Scheduling: Choose between per-day schedules or simple workday/non-workday mode with automatic holiday detection
Sun Tracking: Optional sunrise/sunset awareness for natural transitions
Smooth Ramping: Gradual transitions between day phases (wake, morning, evening, sleep, night)
Helper Output: Stores values in input_number entities for use by switches, dashboards, and other automations
Direct Light Control: Optionally control lights directly through this blueprint. Works standalone without button automations, or alongside them for centralized adaptive scheduling
Auto-Adjust: Automatically update selected lights when schedule changes (only affects lights that are ON)
Multiple Zones: Create multiple instances with different helper pairs for different lighting zones
Requirements
Home Assistant: Version 2024.10.0 or later
Sun Integration: sun.sun entity for sunrise/sunset tracking
Workday Integration: Optional, only needed for Workday/Non-Workday mode with automatic holiday detection
Works Great With:
This blueprint pairs perfectly with my switch blueprints that support adaptive lighting mode:
Thanks for sharing this. I was looking for a lightweight alternative to the basnijholt/adaptive-lighting integration. Seems to be working great on my bathroom lamp so far!
Yeah, which is why I made it exactly. I had used the Adaptive Lighting Custom Component in the past but it did too much for my needs so I was using Light Schedules for a while which had static times for when to switch the Brightness and Color Temperature.
Direct Light Control: Optionally control lights directly from this blueprint - no button automations needed!
Auto-Adjust: Automatically update selected lights when the schedule changes (only affects lights that are ON)
Flexible Targeting: Select individual lights, entire devices, or whole areas to control
Centralized Control: Use with or without button automations - handle adaptive scheduling in one place instead of enabling it in each button blueprint
Comprehensive Documentation: All input fields now have clear required/optional tags and detailed descriptions
Two Ways to Use:
Standalone Mode: Perfect if you don’t use button automations - just select your lights and enable auto-adjust!
With Button Automations: Already using the button blueprints? You can now centralize your adaptive scheduling here instead of configuring auto-adjust in each button
Upgrade Instructions: Please re-import the blueprint. Your existing helper-only configurations will continue to work perfectly - the new Direct Light Control section is completely optional and defaults to disabled for backwards compatibility.
Removed unnecessary sun.sun state trigger - the entity’s elevation and azimuth attributes change continuously throughout the day, causing race conditions with the time_pattern trigger
Added mode: restart to handle edge cases of overlapping triggers (e.g., HA restart occurring exactly on a 5-minute mark)
Upgrade Instructions:
Simply re-import the blueprint and reload Automations
Is there a way for this blueprint to not auto adjust lights if I manually adjust them? For instance at night I have it set to 1% but if I adjust them to 100% can they stay at that value for x amount of time?
Also, if I have a light that was 100% during the day but then off for some time before being turned on again in the middle of the night I would want it to turn on at 1% (not 100% and then wait the up to 5 minutes for the time pattern to trigger it)
I need to research if it is possible to achieve your first question without Custom Components.
For your second question, you should send the Dynamic Brightness and Dynamic Colour with the turn_on event. Not use a raw turn_on. The blueprint checks if a light is on and sends the updates only when it is on. So when it is off and you send a raw turn_on signal, it will use the last state and not use the blueprint values at all.
There are examples on how to use it for turn_on in the blueprint, even with scripts and buttons you can integrate into your dashboard so you never turn it on without also sending the data in the helpers.