Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RuslanLanket/91ab5080b36394844d5c48e522b907f6 to your computer and use it in GitHub Desktop.
Save RuslanLanket/91ab5080b36394844d5c48e522b907f6 to your computer and use it in GitHub Desktop.
Home Assistant Blueprint: Включение и выключение света, выключателя, объекта или сцены с помощью условий запуска
blueprint:
name: 1 Rus Включение и выключение света, выключателя, объекта или сцены с помощью условий запуска
description: >
# Включение и выключение света, выключателя, объекта или сцены с помощью условий запуска
**Version: 1.7**
Наиболее распространенная автоматика, используемая для включения и выключения источника света, выключателя, объекта или сцены с помощью двоичного датчика, высоты солнца, значения освещенности окружающей среды или времени, когда их значение изменяет состояние или превышает заданное значение.
Перевел и подмял под своё усмотрение
**Процесс автоматизации:**
- Включите свет, выключатель, объект или сцену с включенным и выключенным состоянием объекта, высотой солнца, значением освещенности окружающей среды или временем.
- Выключите свет, выключатель, объект или сцену с включенным и выключенным состоянием объекта, высотой солнца, значением освещенности окружающей среды или временем.
- У вас есть возможность установить дни недели. Это глобальный параметр для всех условий запуска.
- У вас есть возможность ввести любые глобальные условия, которые вам нравятся.
Обязательные параметры = *
**поддержка на английском** See our FAQ: [Click Here](https://community.home-assistant.io/t/turn-light-switch-or-scene-on-off-with-trigger-conditions/527354/2?u=blacky)
исходник [тут](https://gist.github.com/Blackshome/e6c8f1bf846bab2fa4431934a0a85770)
domain: automation
input:
entity_switch:
name: Свет - Переключатели Сущности - Сцены *
description: Освещение, которое включается и выключается с помощью двоичного датчика, высоты солнца, значения освещенности окружающей среды или времени.
Вы также можете добавлять переключатели и сцены. При добавлении сцены, пожалуйста, прочтите раздел "Сцены для отключения" ниже.
selector:
target:
end_scenes:
name: Сцены, которые нужно отключить
description: Если вы выбрали сцену для включения выше в разделе "Освещение - переключатели - Объекты - сцены" и хотели бы, чтобы она была выключена,
тогда вы должны создать другую идентичную сцену, в которой все выключено, и выбрать ее здесь.
default: []
selector:
entity:
multiple: true
filter:
domain:
- scene
include_light_control:
name: Управление освещением
description: Выберите параметры, которые вы хотели бы использовать. Он будет управлять только объектом "light", у которого есть настройка яркости.
default: dont_use_brightness
selector:
select:
options:
- label: Использовать яркость
value: "use_brightness"
- label: Не использовать яркость
value: "dont_use_brightness"
light_brightness:
name: Яркость
description: Яркость ламп при их включении.
default: 100
selector:
number:
min: 1
max: 100
mode: slider
step: 1
unit_of_measurement: '%'
include_bypass:
name: Использовать опцию обхода By-pass (необязательно)
description: Выберите включить или отключить.
default: bypass_disabled
selector:
select:
options:
- label: Включена фукция обхода By-pass
value: "bypass_enabled"
- label: Выключена фукция обхода By-pass
value: "bypass_disabled"
motion_bypass:
name: Обходной путь By-pass
description: Выберите переключатель switch, который отключит все опции и заставит ваше освещение работать в обычном режиме.
Объект не может быть включен в выборку "Освещение - Выключатели - Объекты - Сцены".
default: []
selector:
entity:
include_entity_input:
name: Используйте параметр зависимости от Состояния объекта (Необязательно)
description: Это используется для добавления триггера, когда объект изменяет свое состояние с включенного на ВЫКЛЮЧЕННОЕ или с ВЫКЛЮЧЕННОГО на ВКЛЮЧЕННЫЙ. Он не будет корректно работать с датчиком движения. Если вы хотите использовать датчик движения, пожалуйста, рассмотрите этот blueprint. Например датчик присутсвия
[Click Here](https://community.home-assistant.io/t/sensor-light-motion-sensor-door-sensor-sun-elevation-lux-value-scenes-time-light-control-device-tracker-night-lights/481048).
default: entity_disabled
selector:
select:
options:
- label: Включён параметр состояния объекта
value: "entity_enabled"
- label: Выключён параметр состояния объекта
value: "entity_disabled"
entity_input:
name: Входной объект
description: Выберите объект, который вы хотели бы использовать. Объект должен быть включен или выключен.
default: []
selector:
entity:
include_sun:
name: Зависимость от Солнца (необязательно)
description: Это используется для добавления триггера, который срабатывает, когда высота Солнца превышает его значение высоты.
default: sun_disabled
selector:
select:
options:
- label: Зависит от Солнца
value: "sun_enabled"
- label: Не зависит от Солнца
value: "sun_disabled"
sun_elevation:
name: Высота солнца
description: Это угол между солнцем и горизонтом. Отрицательные значения означают, что солнце находится ниже горизонта. Ориентир -1,5 (сумерки) и -4,0 (рассвет).
default: -1.5
selector:
number:
min: -10
max: 5
step: 0.5
unit_of_measurement: градусы
include_ambient:
name: Зависимость от датчика освещенности (необязательно)
description: This is used for adding a trigger to work when the Ambient Light LUX Value crosses over its LUX value.
default: ambient_disabled
selector:
select:
options:
- label: Зависит от датчика освещенности
value: "ambient_enabled"
- label: Не зависит от датчика освещенности
value: "ambient_disabled"
ambient_light_sensor:
name: Датчик освещенности
description: Выберите Датчик освещенности
default: []
selector:
entity:
filter:
domain: sensor
device_class: illuminance
ambient_light_value:
name: Значение LUX окружающего освещения - Включён триггер
description: Установите значение люкса окружающего освещения. Это значение должно быть равно или меньше приведенного ниже значения "LUX OFF Trigger".
Ориентир - 20 LUX (сумерки).
default: 20
selector:
number:
min: 0
max: 500
step: 10
unit_of_measurement: LUX
ambient_light_value_off:
name: Значение LUX окружающего освещения - Выключён триггер
description: Установите значение люкса окружающего освещения. Это значение должно быть равно или выше приведенного выше значения "ЛЮКС ПРИ срабатывании".
Ориентир - 80 люкс (рассвет).
default: 80
selector:
number:
min: 0
max: 1000
step: 10
unit_of_measurement: LUX
include_time:
name: Использовать параметра времени (необязательно)
description: Это используется для добавления триггера, который срабатывает, когда время превышает заданное значение.
default: time_disabled
selector:
select:
options:
- label: Использовать параметра времени
value: "time_enabled"
- label: Не использовать параметра времени
value: "time_disabled"
after_time:
name: Включать в
description: Установите время включения.
default: 00:00:00
selector:
time:
before_time:
name: Выключать в
description: Установите время выключения.
default: 00:00:00
selector:
time:
include_weekdays:
name: Зависимость от дней недели (Необязательно)
description: Это используется для добавления условия, которое должно работать только в установленные дни недели. Это глобальный параметр для всех условий запуска.
default: weekday_disabled
selector:
select:
options:
- label: Зависит от дней недели
value: "weekday_enabled"
- label: Не зависит от дней недели
value: "weekday_disabled"
weekday_options:
name: Дни недели
description: Выберите дни недели, в которые вы хотели бы запустить автоматизацию.
default:
- mon
- tue
- wed
- thu
- fri
- sat
- sun
selector:
select:
multiple: true
mode: list
options:
- label: Понедельник
value: "mon"
- label: Вторник
value: "tue"
- label: Среда
value: "wed"
- label: Четверг
value: "thu"
- label: Пятница
value: "fri"
- label: Суббота
value: "sat"
- label: Воскременье
value: "sun"
global_conditions:
name: Глобальные условия
description: Введите любые глобальные условия, которые вы хотели бы применить к автоматизации.
default: []
selector:
condition:
mode: restart
max_exceeded: silent
variables:
entity_switch: !input entity_switch
end_scenes: !input end_scenes
include_light_control: !input include_light_control
light_brightness: !input light_brightness
include_bypass: !input include_bypass
motion_bypass: !input motion_bypass
include_entity_input: !input include_entity_input
entity_input: !input entity_input
include_sun: !input include_sun
sun_elevation: !input sun_elevation
include_ambient: !input include_ambient
ambient_light_sensor: !input ambient_light_sensor
ambient_light_value: !input ambient_light_value
ambient_light_value_off: !input ambient_light_value_off
include_time: !input include_time
after_time: !input after_time
before_time: !input before_time
include_weekdays: !input include_weekdays
weekday_options: !input weekday_options
global_conditions: !input global_conditions
trigger:
- platform: state
id: "t1"
entity_id: !input entity_input
from: "off"
to: "on"
- platform: state
id: "t2"
entity_id: !input entity_input
from: "on"
to: "off"
- platform: numeric_state
id: "t3"
entity_id: sun.sun
attribute: elevation
below: !input sun_elevation
- platform: numeric_state
id: "t4"
entity_id: sun.sun
attribute: elevation
above: !input sun_elevation
- platform: numeric_state
id: "t5"
entity_id: !input ambient_light_sensor
below: !input ambient_light_value
- platform: numeric_state
id: "t6"
entity_id: !input ambient_light_sensor
above: !input ambient_light_value_off
- platform: time
id: "t7"
at: !input after_time
- platform: time
id: "t8"
at: !input before_time
# All Conditions
condition:
#Trigger conditions
- condition: or
conditions:
- condition: and # trigger by entity input & check trigger t1
conditions:
- "{{ include_entity_input == 'entity_enabled' }}"
- condition: trigger
id:
- 't1'
- condition: state
entity_id: !input entity_input
match: any
state: 'on'
- condition: and # trigger by entity input & check trigger t2
conditions:
- "{{ include_entity_input == 'entity_enabled' }}"
- condition: trigger
id:
- 't2'
- condition: state
entity_id: !input entity_input
match: any
state: 'off'
- condition: and # trigger by sun & check trigger t3 & t4
conditions:
- "{{ include_sun == 'sun_enabled' }}"
- condition: trigger
id:
- 't3'
- 't4'
- condition: and # trigger by ambient & check trigger t5 & t6
conditions:
- "{{ include_ambient == 'ambient_enabled' }}"
- condition: trigger
id:
- 't5'
- 't6'
- condition: and # trigger by time & check trigger t7 & t8
conditions:
- "{{ include_time == 'time_enabled' }}"
- condition: trigger
id:
- 't7'
- 't8'
# Check Motion Sensor Manual By-pass
- condition: or
conditions:
- "{{ include_bypass == 'bypass_disabled' }}"
- "{{ motion_bypass == [] }}"
- "{{ (include_bypass == 'bypass_enabled') and (states[motion_bypass].state == 'off') }}"
# Check Entity Input
- condition: or
conditions:
- "{{ include_entity_input == 'entity_disabled' }}"
- "{{ entity_input == [] }}"
- "{{ (include_entity_input == 'entity_enabled') and (states[entity_input].state == 'on') }}"
- "{{ (include_entity_input == 'entity_enabled') and (states[entity_input].state == 'off') }}"
# Check Sun Elevation
- condition: or
conditions:
- "{{ include_sun == 'sun_disabled' }}"
- "{{ (include_sun == 'sun_enabled') and (state_attr('sun.sun','elevation') <= sun_elevation | float(90)) }}"
- "{{ (include_sun == 'sun_enabled') and (state_attr('sun.sun','elevation') >= sun_elevation | float(90)) }}"
# Check Ambient Light Sensor
- condition: or
conditions:
- "{{ include_ambient == 'ambient_disabled' }}"
- "{{ ambient_light_sensor == [] }}"
- "{{ (include_ambient == 'ambient_enabled') and (states[ambient_light_sensor].state | int < ambient_light_value | int) }}"
- "{{ (include_ambient == 'ambient_enabled') and (states[ambient_light_sensor].state | int > ambient_light_value | int) }}"
# Check The Time Options
- condition: or
conditions:
- "{{ include_time == 'time_disabled' }}"
- "{{ include_time == 'time_enabled' }}"
# Check The Weekday Option
- condition: or
conditions:
- "{{ include_weekdays == 'weekday_disabled' }}"
- condition: and
conditions:
- condition: time
weekday: !input weekday_options
- "{{ include_weekdays == 'weekday_enabled' }}"
# Global Conditions
- condition: and
conditions: !input global_conditions
action:
- choose:
- conditions:
- condition: trigger
id:
- 't1'
- 't3'
- 't5'
- 't7'
sequence:
- alias: 'Turn on'
service: homeassistant.turn_on
target: !input entity_switch
- choose:
- alias: 'Set the brightness for the light switch'
conditions:
- condition: template
value_template: "{{ include_light_control == 'use_brightness' }}"
sequence:
- service: light.turn_on
target: !input entity_switch
data:
brightness_pct: !input light_brightness
- conditions:
- condition: trigger
id:
- 't2'
- 't4'
- 't6'
- 't8'
sequence:
- alias: 'Turn off'
service: homeassistant.turn_off
target: !input entity_switch
- alias: "Turn off the scenes"
service: scene.turn_on
entity_id: !input end_scenes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment