- Работа
- Home Assistant
- Home Assistant и режим выхода из дома.
Home Assistant и режим выхода из дома.
Пока нахожусь в стадии изучения всего и вся и у меня простая задача, сделать 2 режима, дома и выход из дома и соответсвенно из этих режимов уже выбирать дальнейшее поведение дома.
Начнем с того, что первым делом сделаем глобальный переключатель, от которого и будем в дальнейшем отталкиваться.
В configuration.yaml
добавляем строки
input_boolean:
away_from_home:
name: Вне дома
icon: mdi:home-city-outline
# Значение по умолчанию
initial: "on"
В пользовательском интерфейсе сделаем так:
- type: horizontal-stack #Горизонтальная группировка следующих трех карточек
cards:
- type: markdown
content: |
**Привет, {{user}}!**
{% if is_state('input_boolean.away_from_home', 'on') %}Режим выхода из дома, на охране {% else %} {% if is_state('script.exit_from_home', 'on') %} Запущен режим выхода из дома, можешь спокойно уходить. {% else %} Все хорошо, снято с охраны {% endif %} {% endif %}
- type: conditional
conditions:
- entity: input_boolean.away_from_home
state: "off"
- entity: script.exit_from_home
state: "off"
card:
type: button
name: Выход из дома
icon: mdi:home-city-outline #Иконка
show_state: false
tap_action:
action: call-service
service: script.turn_on
service_data:
entity_id: script.exit_from_home
- type: conditional
conditions:
- entity: script.exit_from_home
state: "on"
card:
type: button
name: Отменить запуск режима выхода из дома.
icon: mdi:home-city-outline #Иконка
show_state: false
tap_action:
action: call-service
service: homeassistant.turn_off
service_data:
entity_id: script.exit_from_home
- type: conditional
conditions:
- entity: input_boolean.away_from_home
state: "on"
card:
type: button
name: Вход домой
icon: mdi:home-outline #Иконка
show_state: false
tap_action:
action: call-service
service: script.turn_on
service_data:
entity_id: script.enter_to_home
Этим мы добавили приветствие со статусом и кнопку выхода из дома. При нажатии на эту кнопку запустится скрипт, который будет ниже, он даст отсрочку на 10 минут, для спокойного выхода из дома. Но пока таймер не закончился, состояние этой кнопки будет таким, что при повторном нажатии можно отменить действие. После того как режим будет переведен во вне дома
, кнопка изменится на переход в режим дома
.
Далее пошли скрипты, это мои варианты, оставлю как есть.
exit_from_home:
alias: Выход из дома
sequence:
# Это извращение для того что бы заставить Xiaomi gateway 3 пикнуть 2 раза :). Что бы я знал, что автоматизация запустилась.
- service: alarm_control_panel.alarm_arm_home
entity_id: alarm_control_panel.gateway_alarm
- delay: 3
- service: alarm_control_panel.alarm_disarm
entity_id: alarm_control_panel.gateway_alarm
# Даем время на спокойный выход из дома
- delay:
minutes: 10
# Меняем статус нашего переключателя
- service: input_boolean.turn_on
entity_id: input_boolean.away_from_home
# Информируем, что все окей :)
- service: notify.notify
data:
message: "Дом поставлен на охрану"
title: "Ехай спокойно"
- service: light.turn_off
entity_id:
- light.koridor_light
- light.kiran_light
- service: switch.turn_off
entity_id:
- switch.tualet_svet
- switch.vannaya_light
- switch.skvazina_nasos
enter_to_home:
alias: Вход домой
sequence:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.away_from_home
state: "on"
sequence:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.koridor_svet
state: "off"
sequence:
- service: light.turn_on
entity_id: light.koridor_light
data:
brightness: 127
color_temp: 387
- service: input_boolean.turn_off
entity_id: input_boolean.away_from_home
- service: light.turn_on
entity_id: light.koridor_light
- service: switch.turn_on
entity_id:
- switch.vannaya_light
- switch.skvazina_nasos
[ Править ]