214 lines
6.2 KiB
YAML
214 lines
6.2 KiB
YAML
blueprint:
|
|
name: Smart Light Dimmer V3.0
|
|
description: 'Version 3.0 ! BETA !
|
|
|
|
Switch or dim lights based on the value of a light sensor.
|
|
|
|
Light color and temperature can be specified (fixed value).
|
|
|
|
Settings for brightness, temperature and color above and below min and max values
|
|
of the sensor can be set.
|
|
|
|
'
|
|
source_url: https://gist.github.com/Twanne/56791e1917c751de7a72b16ee5e067cd
|
|
domain: automation
|
|
input:
|
|
schedule_start:
|
|
name: Schedule start time
|
|
description: Automation only runs after this time.
|
|
selector:
|
|
time: {}
|
|
schedule_stop:
|
|
name: Schedule stop time
|
|
description: Automation does not run after this time.
|
|
selector:
|
|
time: {}
|
|
schedule_days:
|
|
name: Run on these days
|
|
description: 'Days on which the automation will run.
|
|
|
|
Write days in short form, seperated by punctuation marks and/or spaces.
|
|
|
|
(i.e.: mon, tue, wed,...)
|
|
|
|
'
|
|
selector:
|
|
text: {}
|
|
light_sensor_entity:
|
|
name: Light Sensor
|
|
selector:
|
|
entity:
|
|
domain: sensor
|
|
device_class: illuminance
|
|
multiple: false
|
|
max_brightness_value:
|
|
name: Maximum ambient light value
|
|
description: Maximum ambient light value measured.
|
|
default: 500
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 1000.0
|
|
step: 10.0
|
|
unit_of_measurement: lx
|
|
mode: slider
|
|
min_brightness_value:
|
|
name: Minimum ambient light value
|
|
description: Minimum ambient light value measured.
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 1000.0
|
|
step: 10.0
|
|
unit_of_measurement: lx
|
|
mode: slider
|
|
light_value_1:
|
|
name: Dimming value 1
|
|
description: Brightness of the light at maximum ambient light.
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
unit_of_measurement: '%'
|
|
light_value_2:
|
|
name: Dimming value 2
|
|
description: Brightness of the light at minimum ambient light.
|
|
default: 100
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
unit_of_measurement: '%'
|
|
light_brightness_over_max:
|
|
name: Brightness when over max ambient.
|
|
description: Brightness of the light when the sensor measures over the maximum
|
|
ambient light value.
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
unit_of_measurement: '%'
|
|
light_temp_over_max:
|
|
name: Light temperature when over max ambient.
|
|
description: Temperature of the light when over maximum ambient light value.
|
|
default: 2000
|
|
selector:
|
|
color_temp: {}
|
|
light_color_over_max:
|
|
name: Light color when over max ambient.
|
|
description: Color of the light when over maximum ambient light value.
|
|
selector:
|
|
color_rgb: {}
|
|
light_brightness_under_min:
|
|
name: Brightness when under min ambient.
|
|
description: Brightness of the light when the sensor measures under the minimum
|
|
ambient light value.
|
|
default: 100
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
unit_of_measurement: '%'
|
|
light_temp_under_min:
|
|
name: Light temperature when under min ambient.
|
|
description: Temperature of the light when under minimum ambient light value.
|
|
default: 2000
|
|
selector:
|
|
color_temp: {}
|
|
light_color_under_min:
|
|
name: Light color when under min ambient.
|
|
description: Color of the light when over under minimum light value.
|
|
selector:
|
|
color_rgb: {}
|
|
light_temp:
|
|
name: Light temperature
|
|
description: Temperature of the light when between minimum and maximum measured
|
|
light values.
|
|
default: 2000
|
|
selector:
|
|
color_temp: {}
|
|
light_color:
|
|
name: Light color
|
|
description: Color of the light when between minimum and maximum measured light
|
|
values.
|
|
selector:
|
|
color_rgb: {}
|
|
target_light:
|
|
name: Target lights
|
|
description: which lights do you want to control?
|
|
selector:
|
|
target:
|
|
entity:
|
|
domain: light
|
|
mode: single
|
|
variables:
|
|
light_sensor: !input light_sensor_entity
|
|
maxB: !input max_brightness_value
|
|
minB: !input min_brightness_value
|
|
light1: !input light_value_1
|
|
light2: !input light_value_2
|
|
slope: '{{ ( light1 - light2 ) / ( maxB - minB ) }}'
|
|
constant: '{{ light1 - ( slope * maxB ) }}'
|
|
days: !input schedule_days
|
|
trigger:
|
|
platform: state
|
|
entity_id: !input light_sensor_entity
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: !input light_sensor_entity
|
|
above: !input min_brightness_value
|
|
- condition: time
|
|
after: !input schedule_start
|
|
before: !input schedule_stop
|
|
- condition: template
|
|
value_template: '{{ now().strftime(''%a'') | lower in days }}'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id: !input light_sensor_entity
|
|
above: maxB
|
|
sequence:
|
|
- service: light.turn_on
|
|
data:
|
|
brightness_pct: !input light_brightness_over_max
|
|
color_temp: !input light_temp_over_max
|
|
color_rgb: !input light_color_over_max
|
|
target: !input target_light
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id: !input light_sensor_entity
|
|
below: minB
|
|
sequence:
|
|
- service: light.turn_on
|
|
data:
|
|
brightness_pct: !input light_brightness_under_min
|
|
color_temp: !input light_temp_under_min
|
|
color_rgb: !input light_color_under_min
|
|
target: !input target_light
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id: !input light_sensor_entity
|
|
below: maxB
|
|
above: minB
|
|
sequence:
|
|
- service: light.turn_on
|
|
data:
|
|
brightness_pct: '{{ (( slope_brightness * states(light_sensor)|int ) + constant_brightness)|round
|
|
}}'
|
|
color_temp: '{{ (( slope_temperature * states(light_sensor)|int ) + constant_temperature)|round
|
|
}}'
|
|
color_rgb: !input light_color
|
|
target: !input target_light
|