Merge pull request #8 from shostko/feature/ha_refactoring

Home Assistant integration refactoring
This commit is contained in:
Nikolay Vasilchuk
2021-03-31 19:12:15 +03:00
committed by GitHub

View File

@@ -4,58 +4,122 @@ automation:
- alias: Domofon incoming call notification
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.domofon_incoming_call
to: 'on'
# Обнаружен звонок
- platform: state
entity_id: binary_sensor.domofon_incoming_call
to: 'on'
action:
service: notify.telegram
data_template:
message: "Звонок в домофон {% if is_state('switch.domofon_automatically_open', 'on') or is_state('switch.domofon_automatically_open_once', 'on') %}(откроется автоматически){% endif %}"
data:
inline_keyboard:
- "{{ '-' if is_state('switch.domofon_automatically_open', 'on') or is_state('switch.domofon_automatically_open_once', 'on') else 'Открыть:/domofon_open, Отклонить:/domofon_reject' }}"
- choose:
# Включён режим авто-открыть или авто-открыть-один-раз
- conditions:
- condition: or
conditions:
- condition: state
entity_id: switch.domofon_automatically_open
state: 'on'
- condition: state
entity_id: switch.domofon_automatically_open_once
state: 'on'
sequence:
# Отправить уведомление
- service: notify.telegram
data:
message: "Звонок в домофон (откроется автоматически)"
# Включён режим авто-отклонить
- conditions:
- condition: state
entity_id: switch.domofon_automatically_reject
state: 'on'
sequence:
# Отправить уведомление
- service: notify.telegram
data:
message: "Звонок в домофон (отклонится автоматически)"
default:
# Отправить уведомление с кнопками Открыть/Отклонить
- service: notify.telegram
data:
message: "Звонок в домофон"
data:
inline_keyboard:
- "{{ 'Открыть:/domofon_open, Отклонить:/domofon_reject' }}"
- alias: Telegram /domofon_open callback
initial_state: true
trigger:
platform: event
event_type: telegram_callback
event_data:
data: '/domofon_open'
# Из телеграмма пришла команда Открыть
- platform: event
event_type: telegram_callback
event_data:
data: '/domofon_open'
action:
- service: telegram_bot.answer_callback_query
data_template:
callback_query_id: "{{ trigger.event.data.id }}"
message: "{{ 'Открываю...' if is_state('binary_sensor.domofon_incoming_call', 'on') else 'Нет входящего звонка' }}"
- service: switch.turn_on
entity_id: switch.domofon_accept_call
- choose:
# Идет звонок
- conditions:
- condition: state
entity_id: binary_sensor.domofon_incoming_call
state: 'on'
sequence:
# Отправить подтверждение о намерении открыть
- service: telegram_bot.answer_callback_query
data_template:
callback_query_id: "{{ trigger.event.data.id }}"
message: "Открываю..."
# Открыть
- service: switch.turn_on
entity_id: switch.domofon_accept_call
default:
# Отправить ответ, что нету звонка
- service: telegram_bot.answer_callback_query
data_template:
callback_query_id: "{{ trigger.event.data.id }}"
message: "Нет входящего звонка"
- alias: Telegram /domofon_reject callback
initial_state: true
trigger:
platform: event
event_type: telegram_callback
event_data:
data: '/domofon_reject'
# Из телеграмма пришла команда Отклонить
- platform: event
event_type: telegram_callback
event_data:
data: '/domofon_reject'
action:
- service: telegram_bot.answer_callback_query
data_template:
callback_query_id: "{{ trigger.event.data.id }}"
message: "{{ 'Отклоняю...' if is_state('binary_sensor.domofon_incoming_call', 'on') else 'Нет входящего звонка' }}"
- service: switch.turn_on
entity_id: switch.domofon_reject_call
- choose:
# Идет звонок
- conditions:
- condition: state
entity_id: binary_sensor.domofon_incoming_call
state: 'on'
sequence:
# Отправить подтверждение о намерении отклонить
- service: telegram_bot.answer_callback_query
data_template:
callback_query_id: "{{ trigger.event.data.id }}"
message: "Отклоняю..."
# Открыть
- service: switch.turn_on
entity_id: switch.domofon_reject_call
default:
# Отправить ответ, что нету звонка
- service: telegram_bot.answer_callback_query
data_template:
callback_query_id: "{{ trigger.event.data.id }}"
message: "Нет входящего звонка"
- alias: Domofon opened by button notification
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.domofon_button
to: 'on'
# Нажата кнопка на плате
- platform: state
entity_id: binary_sensor.domofon_button
to: 'on'
condition:
# Идет звонок
- condition: state
entity_id: binary_sensor.domofon_incoming_call
state: 'on'
action:
service: notify.telegram
data:
message: "Домофон открыт кнопкой"
# Отправить уведомление
- service: notify.telegram
data:
message: "Домофон открыт кнопкой"