mirror of
https://github.com/Anonym-tsk/smart-domofon.git
synced 2025-12-06 11:36:57 +03:00
Merge pull request #8 from shostko/feature/ha_refactoring
Home Assistant integration refactoring
This commit is contained in:
@@ -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: "Домофон открыт кнопкой"
|
||||
|
||||
Reference in New Issue
Block a user