2026-01-09 22:23:10 -05:00
2026-01-09 09:47:11 -08:00
2026-01-09 22:23:10 -05:00
2026-01-09 22:08:02 -05:00

HomeAssistant SunriseAlarm

Turn your smart lights into a natural alarm clock

This script turns any compatible light (or group of lights) into a softsunrise / sunset alarm. It gradually ramps the brightness and the colour temperature over a userdefined period

The script can also run in reverse mode, turning the light down to simulate a sunset.

This project is made up of two blueprints

  • sunrise-simulation.yaml: Simulates a sunset/sunrise on a group of lights based on user-defined parameters
  • sunrise-alarm.yaml: Thin wrapper that calls the simulation script when trigger occurs.

1. What it is & how it works

Component Purpose What it does
sunrisesimulation (script) The “engine” that gradually lights up (or down) your bulbs Uses a repeat loop to turn the selected lights on/off and slowly increase/decrease brightness over a configurable time span.
sunrisealarm (automation) The “scheduler” that calls the simulation at a chosen time Triggers the script at AlarmTime Offset (e.g. 30min before the clock). An input_boolean lets you switch the alarm on/off.

Why two separate blueprints?
The simulation can be reused in any scenario (e.g. a “morning routine” or a “sunsetin30min” routine). The alarm automation is a thin wrapper that turns that simulation into a timed alarm.


2. Installation

2.1sunrisesimulation

  1. Import the blueprint

  2. Create a script from the blueprint

    • In the “Create new script” dialog, name it sunrise-simulation (you can give any name you like).
    • Youll be asked for a handful of variables see section3.1 for the defaults and meaning.
    • Click Create HomeAssistant will add a script entity called script.sunrise-simulation (or whatever name you gave it).

2.2sunrisealarm

  1. Import the alarm automation blueprint

  2. Create the automation

    • Pick an input_datetime that represents the clock you want to use as the alarm.
    • Pick an input_boolean that toggles the alarm on or off.
    • Choose an offest_duration for how long before/after to start the sunrise arc relative to the alarm time. You'll usually want this to be the same as duration defined in the previous script, this time negative, so that the peak (end) of the arc aligns with the alarm time.
    • Choose the sunrisesimulation script you created in the previous step for the alarm_script field.
    • Save you now have a readytorun alarm!

Tip

If you want a sunset alarm, simply copy the sunrisesimulation script (or create a new script from the blueprint if you want to define a different arc) and reverse it by setting direction with the reversed flag set to true. You'll also want to create a new automation that calls it with a negative offset_duration.


2.3Configurable variables

3.1sunrisesimulation script variables

Variable Type Default Description
lights list of entity_ids ["light.kitchen"] All bulbs that should be part of the arc.
total_duration integer 30 Total time the arc takes on minutes.
steps integer 10 How many brightness steps the script performs. If your light(s) do not support transition you should set this higher for a more gradual change (max value is 100).
start_brightness integer 0 Brightness percentage at the very beginning of the arc.
end_brightness integer 100 Brightness percentage at the very end of the arc.
start_temp integer 2000 Color temperature (kelvin) at the very beginning of the arc.
end_temp integer 5000 Color temperature (kelvin) at the very end of the arc.
reversed boolean false If true, the script will run your arc in reverse (useful for easily defining sunsets).
curve_type string sigmoid linear, parabolic (quadratic), or sigmoid (an S-curve). As we don't perceive light intensity linearly, sigmoid or parabolic make for a more natural curve.

3.2sunrisealarm automation variables

Variable Type Default Description
alarm_time input_datetime The time you want the alarm to ring (e.g. 07:00 AM).
offset_duration time "00:30:00" How many minutes after alarm_time the sunrise arc should start. A negative value would start before the alarm.
alarm_enabled input_boolean A switch that turns the whole alarm on/off.
sunrise_script script The script instance created by the sunrisesimulation blueprint (script.sunrise-simulation).

The automation uses the following logic:

  1. AlarmTime Offset fires the automation.
  2. If AlarmEnabled is on, it calls the sunrise script.
  3. If AlarmEnabled is off, nothing happens.

6. License

This repository is released under the MIT License.
Feel free to fork, modify, or redistribute the blueprints as long as you keep the same license.

Description
A HomeAssistant automation and script blueprint that turns your smart lights into a natural alarm clock.
Readme MIT 53 KiB