Mit einem normalen Wecker wird man unsanft aus dem Schlaf gerissen. Mit dem langsamen hochdimmen einer Lichtquelle wird man ggf. schon etwas aus dem Tiefschlaf geholt und vielleicht sogar aufgeweckt, wenn das Licht entsprechend hell ist. So einen Lichtwecker kann man natürlich fertig kaufen. Allerdings sind die Geräte überteuert und meist von der Lichtleistung zu gering, so dass es nicht wirklich den Effekt erzielt. Mit Home Assistant und einer LED RGB Lichtleiste, die sich bei mir auf meinem Kleiderschrank befindet, habe ich mir einen sehr effizienten und hellen Lichtwecker gebaut. Mit diesem wird ein Sonnenaufgang simuliert, der sogar die entsprechenden Farben wiedergibt. Erst Rot, dann Orange und Gelb bis hin zu Weiß. Prinzipiell kann man jede LED Lichtquelle verwenden, die dimmbar ist und die Farbe wechseln kann. Ich habe einen Philipps Hue LED Strip (Amazon Affiliate Link), der prima funktioniert. Bei manchen LED Lichtern kann die Transition, d.h. der weiche Übergang zu Helligkeit und Farben ggf. nicht funktionieren, weshalb ich die Phillips Hue Kompenten (Amazon Affiliate Link) empfehle.
Über eine Home Assistant Kachel wird der Wecker gesteuert. Einstellbar ist die Weckzeit und die Fade-in-Dauer, d.h. wie lange der Dimmvorgang bis zur vollen Helligkeit und Lichtfarbe dauern soll. In der Regel machen 10 bis 20 Minuten Sinn. Weiterhin kann eingestellt werden, ob der Wecker gernerell aktiv sein soll, bzw. auch am Wochenende.
Zunächst müssen in der Home Assistant „configuration.yaml“ folgende Sensoren und Input Values definiert werden. Die Input Values können in den aktuellen Home Assistant Versionen auch über Helper per GUI angelegt werden. Danach folgt die Definition der Home Assistant Kachel. Weiterhin wird eine Automatisierung für den Trigger des Alarms angelegt und der eigentliche Fade-In-Lichtwecker wird per Skript gesteuert, welches von der Automatisierung aufgerufen wird. Nachfolgend findet Ihr den gesamten Code.
Home Assistant Sensoren und Input Values in der "configuration.yaml"
sensor:
- platform: time_date
- platform: template
sensors:
wakeup_alarm_time:
friendly_name: 'Weckzeit'
value_template: '{% if states.input_number.wakeup_hour.state|length == 3 %}0{% endif %}{{ states.input_number.wakeup_hour.state | int }}:{% if states.input_number.wakeup_minutes.state|length == 3 %}0{% endif %}{{ states.input_number.wakeup_minutes.state | int }}'
- platform: template
sensors:
wakeup_start_time_lights:
friendly_name: 'Fade-in Start'
value_template: >
{% if states.sensor.wakeup_alarm_time and states.input_number.wakeup_duration %}
{% set alarmtime = states.sensor.wakeup_alarm_time.state %}
{% set alarm_hour = alarmtime.split(":")[0] | int %}
{% set alarm_min = alarmtime.split(":")[1] | int %}
{% set light_dur = states.input_number.wakeup_duration.state | int %}
{% set alarm_min_light = alarm_min - light_dur %}
{% if alarm_min_light < 0 %}
{% set alarm_min_light = alarm_min_light + 60 %}
{% set alarm_hour_light = alarm_hour - 1 %}
{% if alarm_hour_light < 0 %}{% set alarm_hour_light = 23 %}{% endif %}
{% if alarm_hour_light < 10 %}0{% endif %}{{ alarm_hour_light}}:{% if alarm_min_light < 10 %}0{% endif %}{{ alarm_min_light }}
{% else %}
{% if alarm_hour < 10 %}0{% endif %}{{ alarm_hour }}:{% if alarm_min_light < 10 %}0{% endif %}{{ alarm_min_light }}
{% endif %}
{% endif %}
- platform: template
sensors:
wakeup_fadein_duration:
friendly_name: 'Fade-in Dauer'
value_template: '{{ states.input_number.wakeup_duration.state | int }}'
unit_of_measurement: 'min'
input_number:
wakeup_hour:
name: 'Stunde'
icon: mdi:clock-in
min: 0
max: 23
step: 1
wakeup_minutes:
name: 'Minute'
icon: mdi:clock-in
min: 0
max: 55
step: 5
wakeup_duration:
name: 'Fade-in Dauer'
icon: mdi:clock-in
min: 5
max: 60
step: 5
input_boolean:
wakeup:
name: 'Wecker einschalten'
icon: mdi:power
wakeup_weekends:
name: 'Auch am Wochenende'
icon: mdi:power
Home Assistant Kachel zur Steuerung des Lichtweckers
entities:
- entity: Euer LED Licht
- entity: sensor.wakeup_alarm_time
- entity: sensor.wakeup_start_time_lights
- entity: sensor.wakeup_fadein_duration
- entity: input_number.wakeup_hour
- entity: input_number.wakeup_minutes
- entity: input_number.wakeup_duration
- entity: input_boolean.wakeup
- entity: input_boolean.wakeup_weekends
show_header_toggle: false
title: Schlafzimmer
type: entities
Home Assistant Automatisierung, um den Lichtwecker zu triggern
alias: WakeUp Light Bedroom
trigger:
- platform: template
value_template: >-
{{ states.sensor.time.state ==
states.sensor.wakeup_start_time_lights.state }}
condition:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.wakeup
state: "on"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.wakeup_weekends
state: "on"
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: script.wakeup_bedroom
data: {}
Home Assistant Skript zum Ablauf des Lichtweckers (Helligkeit und Lichtfarbe)
alias: Wakeup lighting
sequence:
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 0
rgb_color:
- 128
- 0
- 0
- delay:
seconds: 1
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 1
rgb_color:
- 128
- 0
- 0
- delay:
seconds: 1
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 35
rgb_color:
- 128
- 0
- 0
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 -1 ) |
round ) | int }}
- delay: >-
00:00:{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 ) |
round ) | int }}
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 70
rgb_color:
- 192
- 64
- 0
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 - 1 ) |
round ) | int }}
- delay: >-
00:00:{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 ) |
round ) | int }}
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 105
rgb_color:
- 224
- 128
- 32
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 - 1 ) |
round ) | int }}
- delay: >-
00:00:{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 ) |
round ) | int }}
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 140
rgb_color:
- 255
- 176
- 96
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 - 1 ) |
round ) | int }}
- delay: >-
00:00:{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 ) |
round ) | int }}
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 175
rgb_color:
- 255
- 224
- 160
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 - 1 ) |
round ) | int }}
- delay: >-
00:00:{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 ) |
round ) | int }}
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 210
rgb_color:
- 255
- 255
- 224
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 - 1 ) |
round ) | int }}
- delay: >-
00:00:{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 ) |
round ) | int }}
- service: light.turn_on
data_template:
entity_id: Euer LED Licht
brightness: 255
rgb_color:
- 240
- 255
- 255
transition: >-
{{ (( states.input_number.wakeup_duration.state | float * 60 / 7 - 1 ) |
round ) | int }}
mode: single
Home Assistant Automation zum Beenden des Skripts wenn man wach ist, d.h. das Licht ausschaltet
alias: Schlafzimmer WakeUp abbrechen
trigger:
- platform: state
entity_id:
- Euer LED Licht
from: "on"
to: "off"
condition:
- condition: state
entity_id: script.wakeup_bedroom
state: "on"
action:
- service: script.turn_off
data_template:
entity_id: script.wakeup_bedroom
mode: single
Die perfekte Basis für Euer Home Assistant System ist kein Raspberry Pi, sondern ein Mini PC, der kaum mehr Strom braucht dafür aber viel mehr Leistung hat. Nach meiner Erfahrung läuft Home Assistant dort viel flüssiger. Bei mir sogar mit Proxmox VE als Basis zusammen mit vielen anderen Anwendungen. Weiterhin gibt es eine Vielzahl spannender ZigBee Komponenten, sich prima mit Home Assistant und ZigBee2MQTT verwenden lassen. Für die Kommunikation zwischen ZigBee2MQTT und den ZigBee Geräten wird noch eine Bridge, hier ein günstiger Sonoff USB-Stick, benötigt. Alles könnt Ihr nachfolgend günstig bestellen.
-
Aqara Zigbee Vibrationssensor
20,99 € – 86,99 € -
Beelink Mini S bzw. S12 Mini PC, Intel Celeron N5095, N95 oder N100, 8 bzw. 16 GB DDR4, 128, 256 oder 512 GB SSD und Windows 11 Pro
154,99 € – 173,99 € -
SONOFF ZigBee 3.0 USB Dongle Plus ZBDongle-P für ZigBee2MQTT und Home Assistant
30,99 € – 34,99 € -
TuYa ZigBee Infrarot Bewegungssensor (PIR)
8,99 € – 31,99 € -
TuYa ZigBee Wassersensor bzw. Leckagesensor
-
ZigBee bzw. WLAN Temperatur und Luftfeuchtigkeitssensor ideal für ZigBee2MQTT, Home Assistant und Smart Home
7,99 € – 9,99 € -
ZigBee Kontaktsensor für Fenster und Türen
-
Zigbee Mini Button zur Steuerung des Smart Homes
8,99 € -
ZigBee Smart Knob Drehschalter z.B. Licht und Farbton stufenlos einstellen
16,99 €
Wenn man die home-assistant App auf seinem Telefon installiert hat, wird darüber der Zeitpunkt des frühesten eingestellten Weckers als Sensor verfügbar. Darüber die Zeit zu setzen, zu der die Transition abgeschlossen ist, wäre /richtig/ elegant. Dann bräuchte man überhaupt nicht über deine Kachel gehen.