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 This project is made up of two blueprints
**Turn your smart lights into a natural alarm clock** - `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).
## 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)
--- ---
## 1. What it is & how it works ## 1. What it is & how it works
| Component | Purpose | What it does | | 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. | | **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. |
| **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-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?** > **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> <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"> <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> </a>
</div> </div>
2. **Create a script from 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). * 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. * You'll be asked for a handful of variables - see section 3.1 for the defaults and meaning.
* Click **Create** HomeAssistant will add a script entity called `script.sunrise-simulation` (or whatever name you gave it). * 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** 1. **Import the alarm automation blueprint**
<div> <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"> <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> </a>
</div> </div>
@@ -64,18 +56,18 @@
2. **Create the automation** 2. **Create the automation**
* Pick an `input_datetime` that represents the clock you want to use as the alarm. * 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. * Pick an `input_boolean` that toggles the alarm on or off.
* Choose a `offset_duration` * 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. * Choose the `sunrise-simulation` script you created in the previous step for the `alarm_script` field.
* Save you now have a readytorun alarm! * 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 | | 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. | `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 | | Variable | Type | Default | Description |
|----------|------|---------|-------------| |----------|------|---------|-------------|
| `alarm_time` | `input_datetime` | — | The time you want the alarm to ring (e.g. `07:00 AM`). | | `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. | | `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`). | | `sunrise_script` | `script` | — | The script instance created by the `sunrisesimulation` blueprint (`script.sunrise-simulation`). |
The automation uses the following logic: The automation uses the following logic:
1. `AlarmTime Offset` fires the automation. 1. `Alarm Time - Offset` fires the automation.
2. If `AlarmEnabled` is `on`, it calls the sunrise script. 2. If `Alarm Enabled` is `on`, it calls the sunrise script.
3. If `AlarmEnabled` is `off`, nothing happens. 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**. 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. Feel free to fork, modify, or redistribute the blueprints as long as you keep the same license.