Selora Homes Selora Homes

Hue Sunrise Effects Automation

Learn how to create natural sunrise effects with Philips Hue lights in Home Assistant for gentle wake-ups and circadian rhythm support.

Hue Philips-Hue Sunrise Lighting Automation Circadian-Rhythm Home-Assistant

Create natural sunrise effects with Philips Hue lights for gentle wake-ups and circadian rhythm support. This guide covers automation strategies for gradual light transitions that mimic natural dawn.

Understanding Sunrise Effects

Benefits

  • Gentle wake-ups: Gradual light increase helps you wake naturally
  • Circadian support: Aligns your body clock with natural light patterns
  • Energy efficiency: Uses less energy than instant bright light
  • Customizable: Adjust duration, colors, and intensity to your preferences

Prerequisites

Hardware Requirements

  • Philips Hue bridge and compatible bulbs
  • Bulbs that support color temperature (white ambiance) or full color
  • Stable Home Assistant connection to Hue bridge

Home Assistant Setup

# Example configuration.yaml
hue:
  bridges:
    - host: 192.168.1.100
      allow_unreachable: true
      allow_hue_groups: true

Basic Sunrise Automation

Simple Version

automation:
  - alias: "Bedroom Sunrise Wake-up"
    trigger:
      - platform: time
        at: "06:30:00"
    action:
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: 255
          color_temp_kelvin: 3000
          transition: 1800

Advanced Gradual Transition

automation:
  - alias: "Advanced Bedroom Sunrise"
    trigger:
      - platform: time
        at: "06:30:00"
    action:
      - repeat:
          count: 30  # 30 steps over 30 minutes
          sequence:
            - service: light.turn_on
              target:
                entity_id: light.bedroom_lights
              data:
                brightness: "{{ repeat.index * 8.5 | round(0) }}"  # Gradual increase
                color_temp_kelvin: "{{ 2000 + (repeat.index * 33) | round(0) }}"
                transition: 60  # 1 minute between steps
            - delay: "00:01:00"

Circadian Rhythm Integration

Time-Based Color Temperature

automation:
  - alias: "Circadian Sunrise"
    trigger:
      - platform: time
        at: "06:30:00"
    variables:
      # Calculate color temperature based on time of year
      month_offset: "{{ now().month - 6 }}"  # -5 to +6
      base_kelvin: "{{ 2700 + (month_offset * 50) }}"
    action:
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: 1
          color_temp_kelvin: "{{ base_kelvin | int }}"
          transition: 1800  # 30 minutes total

Weather-Adaptive Sunrise

automation:
  - alias: "Weather-Adaptive Sunrise"
    trigger:
      - platform: time
        at: "06:30:00"
    variables:
      cloud_cover: "{{ state_attr('weather.home', 'cloud_coverage') | default(0) }}"
      # Brighter sunrise on cloudy days
      target_brightness: "{{ 200 + (cloud_cover * 0.55) | round(0) }}"
    action:
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: 1
          color_temp_kelvin: 2200
          transition: 1800
      - delay: "00:30:00"
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: "{{ target_brightness | int }}"
          color_temp_kelvin: 3000

Weekend and Holiday Variations

Weekend Later Wake-up

automation:
  - alias: "Weekend Sunrise"
    trigger:
      - platform: time
        at: "08:00:00"
    condition:
      - condition: time
        weekday:
          - sat
          - sun
    action:
      - service: script.turn_on
        target:
          entity_id: script.sunrise_effect

Holiday Mode

input_boolean:
  holiday_mode:
    name: "Holiday Mode"
    initial: false

automation:
  - alias: "Holiday Sunrise"
    trigger:
      - platform: time
        at: "07:30:00"
    condition:
      - condition: state
        entity_id: input_boolean.holiday_mode
        state: "on"
    action:
      - service: script.turn_on
        target:
          entity_id: script.extended_sunrise

Scripts for Reusable Effects

Basic Sunrise Script

script:
  sunrise_effect:
    alias: "Sunrise Effect"
    variables:
      duration: 1800  # 30 minutes
      start_brightness: 1
      end_brightness: 255
      start_kelvin: 2000
      end_kelvin: 3000
    sequence:
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: "{{ start_brightness }}"
          color_temp_kelvin: "{{ start_kelvin }}"
          transition: "{{ duration }}"
      - delay: "{{ duration }}"
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: "{{ end_brightness }}"
          color_temp_kelvin: "{{ end_kelvin }}"

Color Sunrise Script

script:
  color_sunrise:
    alias: "Color Sunrise Effect"
    variables:
      steps: 20
      step_duration: 90  # 30 minutes total
    sequence:
      - repeat:
          count: "{{ steps }}"
          sequence:
            - service: light.turn_on
              target:
                entity_id: light.bedroom_lights
              data:
                brightness: "{{ (repeat.index / steps * 255) | round(0) }}"
                xy_color: [0.6, 0.4]  # Deep orange
                transition: "{{ step_duration }}"
            - delay: "{{ step_duration }}"
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: 255
          color_temp_kelvin: 3000

Integration with Sleep Trackers

Sleep As Android Integration

automation:
  - alias: "Wake Up with Sleep As Android"
    trigger:
      - platform: template
        value_template: >
          {{ is_state('sensor.sleep_as_android', 'alarm_triggered') and
             is_state('binary_sensor.sleep_as_android_alarm_active', 'on') }}
    action:
      - service: script.turn_on
        target:
          entity_id: script.adaptive_sunrise

Calendar Integration

automation:
  - alias: "Early Meeting Sunrise"
    trigger:
      - platform: calendar
        event: start
        offset: "01:00:00"
    condition:
      - condition: template
        value_template: >
          {{ 'meeting' in trigger.calendar_event.summary.lower() and
             trigger.calendar_event.start.hour < 8 }}
    action:
      - service: script.turn_on
        target:
          entity_id: script.quick_sunrise  # 15-minute version

Troubleshooting

Common Issues

  1. Lights don’t respond: Check Hue bridge connection and bulb availability
  2. Transition too abrupt: Increase transition time or add more steps
  3. Color not changing: Ensure bulbs support color temperature
  4. Automation not triggering: Verify time format and conditions

Debugging Tools

# Test automation manually
script:
  test_sunrise:
    alias: "Test Sunrise"
    sequence:
      - service: light.turn_on
        target:
          entity_id: light.bedroom_lights
        data:
          brightness: 100
          color_temp_kelvin: 2500
          transition: 300  # 5 minutes for testing

Advanced Features

Multi-Room Sunrise

automation:
  - alias: "Whole House Sunrise"
    trigger:
      - platform: time
        at: "06:30:00"
    action:
      # Start with bedroom
      - service: script.turn_on
        target:
          entity_id: script.bedroom_sunrise
      - delay: "00:10:00"
      # Then bathroom
      - service: script.turn_on
        target:
          entity_id: script.bathroom_sunrise
      - delay: "00:10:00"
      # Finally kitchen
      - service: script.turn_on
        target:
          entity_id: script.kitchen_sunrise

Energy Monitoring

sensor:
  - platform: template
    sensors:
      sunrise_energy_usage:
        friendly_name: "Sunrise Energy Usage"
        unit_of_measurement: "W"
        value_template: >
          {{ states('sensor.hue_bridge_power') | float(0) }}