Шлюз Aqara 2 используется в качестве сирены и медиаплеера, который воспроизводит голосовые уведомления. Голосовые уведомлений – фразы записаны через Yandex диалог (включает выбор персонажа и настройку настроения) и вшиты в качестве рингтонов приложением Mi Home.
Механика:
Панель Alarmo ручной постановки/снятия сигнализации:
Главное меню управления Alarmo:
В качестве основной логики управления системой безопасности используется кастомное дополнение Alarmo.
На диаграмме описаны рабочие состояния сигнализации и представлен упрощенный обзор ее функциональных возможностей.
Установка и добавление интеграции.
Настройка Alarmo.
У каждого свои потребности, подробно останавливаться не буду. Меню для настройки интуитивно понятное, документация Alarmo отвечает на все вопросы.
Ключевое, это необходимость настройки:
Чтобы добавить маршрутизатор Keenetic в свою установку, перейдите в Настройки -> Устройства и службы в пользовательском интерфейсе, нажмите кнопку с знаком + и в списке интеграций выберите маршрутизатор Keenetic NDMS2.
Я предпочитаю минимализм, поэтому мы сделаем упрощенное отображение с возможность открыть поверх дополнительных элементов (popup).
Для карточки используются кастомные элементы:
Настройка элементов происходит через интерфейс, на всякий код:
type: grid
cards:
- type: custom:bubble-card
card_type: button
entity: alarm_control_panel.alarmo
sub_button:
- tap_action:
action: navigate
navigation_path: "#pop-up-alarmo"
icon: mdi:dots-horizontal
icon: ""
name: Сигнализация
show_state: true
show_attribute: true
force_icon: false
state_color: true
card_layout: large
attribute: changed_by
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'armed_home' ? '#3CAA3C' :
state === 'armed_away' ? '#3CAA3C' :
state === 'arming' ? '#FF6800' :
state === 'triggered' ? 'red' :
'ЦВЕТ'} !important;
}
ha-card {
--bubble-select-list-background-color: #252a38 !important;
--bubble-list-item-accent-color: #212538 !important;
--bubble-button-border-radius: 10px !important;
}
double_tap_action:
action: none
hold_action:
action: none
columns: 4
rows: "1"
button_type: switch
button_action:
tap_action:
action: more-info
show_last_changed: true
show_last_updated: false
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: "#pop-up-alarmo"
name: ""
icon: ""
sub_button: []
show_name: true
styles: ""
show_attribute: true
show_last_changed: false
force_icon: false
attribute: current_temperature
show_state: false
button_type: name
- states:
- arm_home
- arm_away
type: alarm-panel
entity: alarm_control_panel.alarmo
name: Безопасность
- type: custom:logbook-card
entity: sensor.last_motion_sensor
show:
state: true
duration: true
start_date: true
end_date: true
icon: true
separator: true
entity_name: true
title: Срабатывание датчиков движения
custom_logs: false
Полный код настройки:
automation:
#СНЯТИЕ/ПОСТАНОВКА
- alias: Сигнализация. Сообщение при снятии
trigger:
- platform: state
entity_id: alarm_control_panel.ha_alarm
to: 'disarmed'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10004
ringtone_vol: 80
- alias: Сигнализация. Сообщение при постановке
trigger:
- platform: state
entity_id: alarm_control_panel.ha_alarm
to: 'armed_away'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10005
ringtone_vol: 80
- alias: Сигнализация. Постановка клавишей
trigger:
- platform: state
entity_id: sensor.aqara_buttom_action
to: double
condition:
- condition: state
entity_id: alarm_control_panel.ha_alarm
state: 'disarmed'
action:
- service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.ha_alarm
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10005
ringtone_vol: 80
#ОТКРЫТИЕ ДВЕРИ. ПРЕДУПРЕЖДЕНИЯ.
- alias: Сигнализация. Предупреждение при открытии двери
trigger:
- platform: state
entity_id: binary_sensor.mi_door_sensor_contact
to: 'on'
condition:
- condition: state
entity_id: 'alarm_control_panel.ha_alarm'
state: 'armed_away'
- condition: and
conditions:
- condition: state
entity_id: 'device_tracker.redminote9pro_niro'
state: 'not_home'
- condition: state
entity_id: 'device_tracker.iphoneelizaveta'
state: 'not_home'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10006
ringtone_vol: 80
#ОТКРЫТИЕ ДВЕРИ. ОПРЕДЕЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ, СНЯТИЕ.
- alias: Сигнализация. Опр.польз., снятие
trigger:
platform: state
entity_id:
- device_tracker.redminote9pro_niro
- device_tracker.iphoneelizaveta
to: 'home'
condition:
- condition: state
entity_id: 'alarm_control_panel.ha_alarm'
state: 'pending'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10007
ringtone_vol: 80
- service: alarm_control_panel.alarm_disarm
entity_id: alarm_control_panel.ha_alarm
- alias: Сигнализация. Опр.польз. дверь, снятие
trigger:
- platform: state
entity_id: binary_sensor.mi_door_sensor_contact
to: 'on'
condition:
- condition: state
entity_id: 'alarm_control_panel.ha_alarm'
state: 'armed_away'
- condition: or
conditions:
- condition: state
entity_id: 'device_tracker.redminote9pro_niro'
state: 'home'
- condition: state
entity_id: 'device_tracker.iphoneelizaveta'
state: 'home'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10007
ringtone_vol: 80
- service: alarm_control_panel.alarm_disarm
entity_id: alarm_control_panel.ha_alarm
- alias: Сигнализация. Опр.польз. движение, снятие
trigger:
- platform: state
entity_id: binary_sensor.aqara_motion_occupancy
to: 'on'
condition:
- condition: state
entity_id: 'alarm_control_panel.ha_alarm'
state: 'armed_away'
- condition: or
conditions:
- condition: state
entity_id: 'device_tracker.redminote9pro_niro'
state: 'home'
- condition: state
entity_id: 'device_tracker.iphoneelizaveta'
state: 'home'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10007
ringtone_vol: 80
- service: alarm_control_panel.alarm_disarm
entity_id: alarm_control_panel.ha_alarm
#ПЕРЕВОД НА СРАБАТЫВАНИЕ
- alias: Сигнализация. Перевод на срабатывание при открытии двери
trigger:
- platform: state
entity_id: binary_sensor.mi_door_sensor_contact
to: 'on'
condition:
- condition: state
entity_id: 'alarm_control_panel.ha_alarm'
state: 'armed_away'
- condition: and
conditions:
- condition: state
entity_id: 'device_tracker.redminote9pro_niro'
state: 'not_home'
- condition: state
entity_id: 'device_tracker.iphoneelizaveta'
state: 'not_home'
action:
- service: alarm_control_panel.alarm_trigger
entity_id: alarm_control_panel.ha_alarm
- alias: Сигнализация. Перевод на срабатывание при движении
trigger:
- platform: state
entity_id: binary_sensor.aqara_motion_occupancy
to: 'on'
condition:
- condition: state
entity_id: 'alarm_control_panel.ha_alarm'
state: 'armed_away'
- condition: and
conditions:
- condition: state
entity_id: 'device_tracker.redminote9pro_niro'
state: 'not_home'
- condition: state
entity_id: 'device_tracker.iphoneelizaveta'
state: 'not_home'
action:
- service: alarm_control_panel.alarm_trigger
entity_id: alarm_control_panel.ha_alarm
#СРАБАТЫВАНИЕ ПАРАМЕТРЫ
- alias: Сигнализация. Срабатывание. Уведомления в телеграм
trigger:
platform: state
entity_id: alarm_control_panel.ha_alarm
to: 'triggered'
condition:
condition: time
after: '09:00:00'
before: '00:00:00'
action:
- service: xiaomi_aqara.play_ringtone
data:
gw_mac: 04:cf:8c:b8:8c:95
ringtone_id: 10008
ringtone_vol: 80
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Срабатывание датчиков, несанкционированное проникновение."
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Срабатывание датчиков, несанкционированное проникновение."
- delay: '00:05:00'
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Срабатывание датчиков, несанкционированное проникновение."
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Срабатывание датчиков, несанкционированное проникновение."
- delay: '00:05:00'
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Срабатывание датчиков, несанкционированное проникновение."
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Срабатывание датчиков, несанкционированное проникновение."
#ЗАБЫЛИ ПОСТАВИТЬ?
- alias: Сигнализация. Телеграм. Забыли поставить?
trigger:
- platform: state
entity_id: 'device_tracker.redminote9pro_niro'
to: 'not_home'
for: "00:30:00"
- platform: state
entity_id: 'device_tracker.iphoneelizaveta'
to: 'not_home'
for: "00:30:00"
condition:
- condition: state
entity_id: alarm_control_panel.ha_alarm
state: 'disarmed'
- condition: and
conditions:
- condition: state
entity_id: 'device_tracker.redminote9pro_niro'
state: 'not_home'
- condition: state
entity_id: 'device_tracker.iphoneelizaveta'
state: 'not_home'
action:
- service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.ha_alarm
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Похоже дом опустел, ставлю на сигнализацию."
data:
inline_keyboard:
- 'Отменить поставноку на сигнализацию:/alarm3'
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Похоже дом опустел, ставлю на сигнализацию."
data:
inline_keyboard:
- 'Отменить поставноку на сигнализацию:/alarm3'
# - alias: Сигнализация. Забыли поставить? Для телефона Лизы
# trigger:
# platform: state
# entity_id: 'device_tracker.iphoneelizaveta'
# to: 'not_home'
# for: "00:30:00"
# condition:
# - condition: state
# entity_id: alarm_control_panel.ha_alarm
# state: 'disarmed'
# - condition: state
# entity_id: 'device_tracker.redminote9pro_niro'
# state: 'not_home'
#
# action:
# - service: notify.telegram_nikita
# data:
# title: '*ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
# message: "Похоже вы забыли поставить на сигнализацию. Что предпринять?"
# data:
# inline_keyboard:
# - 'Ничего. Все в порядке:/alarm1'
# - 'Поставить на сигнализацию:/alarm2'
# - service: notify.telegram_liza
# data:
# title: '*ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
# message: "Похоже вы забыли поставить на сигнализацию. Что предпринять?"
# data:
# inline_keyboard:
# - 'Ничего. Все в порядке:/alarm1'
# - 'Поставить на сигнализацию:/alarm2'
#реакция на выбор в телеграм
- alias: Сигнализация. Телеграм, все в порядке
trigger:
platform: event
event_type: telegram_callback
event_data:
command: '/alarm1'
action:
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Получена команда: Все в порядке."
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Получена команда: Все в порядке."
- alias: Сигнализация. Телеграм, установить сигнализацию.
trigger:
platform: event
event_type: telegram_callback
event_data:
command: '/alarm2'
action:
- service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.ha_alarm
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Получена команда. Установить сигнализацию."
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Получена команда. Установить сигнализацию."
- alias: Сигнализация. Телеграм, отмена.
trigger:
platform: event
event_type: telegram_callback
event_data:
command: '/alarm3'
action:
- service: alarm_control_panel.alarm_disarm
entity_id: alarm_control_panel.ha_alarm
- service: notify.telegram_nikita
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Получена команда. Отменить поставноку на сигнализацию."
- service: notify.telegram_liza
data_template:
title: '*🚨ОПОВЕЩЕНИЕ СИГНАЛИЗАЦИИ:*'
message: "Получена команда. Отменить поставноку на сигнализацию."
Это пример, вооружайтесь и используйте под свои нужды.