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