Compare commits

...

7 Commits

Author SHA1 Message Date
6db510ca58 Update README.md 2026-01-12 10:19:08 -08:00
85a6968bcc Update README.md 2026-01-12 10:10:14 -08:00
hiperman
90826e4a49 fix headers not rendering in README 2026-01-10 17:18:54 -05:00
hiperman
657c99cb8f update README 2026-01-10 17:16:40 -05:00
hiperman
f0af39e60f remove duplicated HA components 2026-01-09 22:45:32 -05:00
hiperman
9258db2ea0 polish docs 2026-01-09 22:44:13 -05:00
hiperman
35e4e6e2ac small update to documentation 2026-01-09 22:23:10 -05:00

View File

@@ -1,62 +1,54 @@
# Home-Assistant Sunrise Alarm
_Turn your smart lights into a natural alarm clock_
# HomeAssistant SunriseAlarm
**Turn your smart lights into a natural alarm clock**
---
## Table of Contents
1. [What it is & how it works](#what-it-is-&-how-it-works)
2. [Twostep installation](#twostep-installation)
* 2.1[sunrisesimulation](#sunrisesimulation)
* 2.2[sunrisealarm](#sunrisealarm)
3. [Configurable variables](#configurable-variables)
* 3.1`sunrisesimulation` script variables
* 3.2`sunrisealarm` automation variables
4. [Customising the experience](#customising-the-experience)
5. [Troubleshooting & FAQ](#troubleshooting-&-faq)
6. [License](#license)
This project is made up of two blueprints
- `sunrise-simulation.yaml`: This script turns any compatible light (or group of lights) into a soft-sunrise / sunset alarm. It gradually ramps the brightness and the colour temperature over a user-defined period.
- `sunrise-alarm.yaml`: Thin wrapper that calls the simulation script when the alarm occurs (or some configured time before/after).
---
## 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. |
| **sunrise-simulation** (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. The brightness and color curves can be configured to create more natural-looking sunrises. |
| **sunrise-alarm** (automation) | The “scheduler” that calls the simulation at a chosen time | Triggers the script at *Alarm Time - Offset* (e.g. 30min before the clock). An `input_boolean` lets you switch the alarm on/off. |
> [!NOTE]
> **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.
> The simulation can be reused in any scenario (e.g. a “morning routine” or a “sunset-in-30-min” routine). The alarm automation is a thin wrapper that turns that simulation into a timed alarm.
>
> Scripts can also be stopped while the are executing, allowing you to stop the sunrise arc without turning the scheduler on and off.
---
## 2. Installation
## Installation
### 2.1sunrisesimulation
### sunrise-simulation
1. **Import the blueprint**
1. **Import the sunrise script blueprint**
<div>
<a href="https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https://git.jaroszew.ski/patrick/ha-sunrise-alarm/raw/branch/main/sunrise-simulation.yaml">
<img src="https://my.home-assistant.io/badges/blueprint_import.svg" alt="Import sunrisesimulation">
<img src="https://my.home-assistant.io/badges/blueprint_import.svg" alt="Import sunrise-simulation">
</a>
</div>
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).
* You'll be asked for a handful of variables - see section 3.1 for the defaults and meaning.
* Click **Create** - Home-Assistant will add a script entity called `script.sunrise-simulation` (or whatever name you gave it).
---
### 2.2sunrisealarm
### sunrise-alarm
1. **Import the alarm automation blueprint**
<div>
<a href="https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https://git.jaroszew.ski/patrick/ha-sunrise-alarm/raw/branch/main/sunrise-alarm.yaml">
<img src="https://my.home-assistant.io/badges/blueprint_import.svg" alt="Import sunrisealarm">
<img src="https://my.home-assistant.io/badges/blueprint_import.svg" alt="Import sunrise-alarm">
</a>
</div>
@@ -64,18 +56,18 @@
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 a `offset_duration`
* Choose the `sunrisesimulation` script you created in the previous step for the `alarm_script` field.
* Save you now have a readytorun alarm!
* 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 `sunrise-simulation` script you created in the previous step for the `alarm_script` field.
* Save - you now have a ready-to-run 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`.
> **Tip** If you want a *sunset* alarm, simply copy the `sunrise-simulation` 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
## Configurable variables
### 3.1sunrisesimulation script variables
### sunrise-simulation script variables
| Variable | Type | Default | Description |
|----------|------|---------|-------------|
@@ -90,24 +82,27 @@
| `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
### sunrise-alarm 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. |
| `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.
1. `Alarm Time - Offset` fires the automation.
2. If `Alarm Enabled` is `on`, it calls the sunrise script.
3. If `Alarm Enabled` is `off`, nothing happens.
> [!WARNING]
> You may not be able to set negative duration values via the user interface. If so, you'll need to edit the YAML directly.
---
## 6. License
## 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.