Daylight that follows the sun between your scenes. The integration builds a Home Assistant scene that blends your day and evening looks from the sun’s cycle — cool by day, warm toward dusk — so activating it lights the room the way you want for now.
Built-in automatic light updates (on by default) re-apply each circadian scene on an interval with a matching transition, so the room fades through the day without a separate automation. Pause per room from the sidebar list, or set the global interval to 0 to turn updates off.
Support the project: buymeacoffee.com/etokheim
- Install via HACS (search Scene Studio), or copy
custom_components/scene_studiointo your config. - Restart Home Assistant.
- Add the integration once: Settings → Devices & services → Add integration → Scene Studio.
- Open Scene Studio from the sidebar to create and edit rooms.
You do not add a new integration entry for each room — one instance covers every circadian scene.
The domain and GitHub repo are now scene_studio (was circadian_scenes). After updating:
- Remove the old Circadian Scenes config entry if Home Assistant still lists it.
- Add Scene Studio once.
- Room configs migrate from
circadian_scenes.scenestoscene_studio.sceneswhen the new store is empty. Re-link HACS to etokheim/scene_studio if needed.
v4 renamed scene_extrapolation to circadian_scenes. If that store is the only one present, Scene Studio still copies scene_extrapolation.scenes into scene_studio.scenes. Remove the old config entry and add Scene Studio once.
Create two (or more) native Home Assistant scenes for an area: how the room should look by day, and how it should look in the evening. You can also pin looks to dawn, sunrise, noon, sunset, and dusk.
Then, in the Scene Studio sidebar, add a circadian scene for that area and assign those native scenes to the solar events you care about.
You might already have fixed scenes like this:
Scene Studio blends between them so the room looks right whenever you activate it:
A typical result:
- Simple — it is still “just a scene”: activate it when you want that look; turn lights off normally when you don’t.
- Any colors — not limited to white / warm white.
- Effects — e.g. fireplace after sunset, or Christmas lights that still follow the day.
- Turn lights off or on by time of day (bright undimmable lamp off in the evening; cozy lamp on only then).
- Not only lights — a scene can drive shades, locks, and other entities if you want.
- Nightlights mode — optionally use a dedicated scene when an
input_booleanis on. - Automatic light updates — keep the room tracking the sun after activation without fighting a “force lights on” loop.
- Works with scenes created in Home Assistant (not vendor scenes such as Hue-only scenes).
- You need at least two native scenes per area you want to control — and HA’s scene editor is still tedious.
- Activation is slower than a plain scene (~1 s vs ~200 ms in practice). Debug logging shows timing for your setup.
Example performance numbers
Loaded 5 scenes from in-memory entities
Time getting native scenes: 2.6ms
Time calculating solar events: 0.3ms
Time getting sun events (precalculated): 0.6ms
Time extrapolating: 862.5ms
Time total applying scene: 866.3ms
| Integration | Notes |
|---|---|
| Flux | Built-in; drives individual lights; YAML; smaller install base. |
| Circadian Lighting | Drives lights/groups directly; richer options; large community. |
| Adaptive Lighting | Continuous CT/brightness without scene knots. |
Scene Studio stays scene-based on purpose: predictable, easy to combine with motion and schedules, and automatic light updates that can skip overridden lamps.
Keep the core simple, then add behavior with the rest of Home Assistant:
- All-day fade — use built-in automatic light updates (default). Older blueprints that re-activate every few minutes are legacy and not required.
- Motion lighting — automation that activates the circadian scene on motion (a blueprint is still useful for this).
The color wheel is based on the wheel in Hue Like Light Card by Gh61. huemane-light-card is built on that card, and this panel’s wheel uses the same implementation as its starting point.
If Scene Studio saves you setup time or makes your evenings nicer, you can buy me a coffee:
Issues and ideas: GitHub Issues.
What happens when the sun doesn't rise or set? (Polar regions, midnight sun, polar night)
In polar regions the sun may never set (midnight sun) or never rise (polar night). When solar calculations fail completely, the integration uses seasonal fallback times:
- Winter: Dawn 8:45, Sunrise 10:30, Noon 12:00, Sunset 13:00, Dusk 22:00
- Summer: Dawn 2:15, Sunrise 4:00, Noon 13:00, Sunset 22:00, Dusk 23:55
When only some events fail, it keeps chronological order by taking the later of:
- previous event + 30 minutes, or
- that event’s seasonal fallback
Example: Dawn calculates as 06:00 but sunrise fails → use the later of 06:30 and the summer sunrise fallback (04:00) → 06:30, so sunrise stays after dawn.



