Статья

Приручи Home Assistant. Сигнализация

Данная тема будет рубрикой. Буду обновлять и добавлять разные темы. Мне кажется, много возможностей Home Assistant не раскрываются и многие не используют этих фишек. Это мой опыт, я делюсь им и предполагаю, что в какой-то момент вы, как и я, скажете: "Вот, вот этого мне не хватало!"

Отображение в Home Assistant

Сигнализация

Как это работает:
Шлюз Aqara в качестве сирены, голосовых уведомлений (фразы записаны через Yandex диалог и вшиты в качестве рингтонов приложением Mi Home).

Механика:

  • Я использую роутер Keenetic, для него в HA можно использовать интеграцию NDMS2, которая каждые 30 секунд сканирует сеть и отображает подключенные устройства. К таким устройствам я отнес телефоны обитателей квартиры. Также с этой интеграцией можно мониторить подключение всех устройств в сети и вывести их статус.
  • Если мы все уходим, телефон отключается от локальной сети и через 30 минут сигнализация ставится под охрану, о чем сообщает Telegram всем пользователям.
  • Когда кто-то приходит домой первым, срабатывают датчик открытия двери или движения, происходят следующие события:
  1. Если NDMS2 успел найти телефон (пока я иду от лифта) - сигнализация снимается автоматически, воспроизводится сообщение о снятии.
  2. Если NDMS2 не успел найти телефоны и датчики сработали, дается 2 минуты, за которые телефон обнаружит сеть и сигнализация снимается. Если нет, необходимо снять сигнализацию вручную.
  3. Идет сработка, шлюз неистово шумит, отправляются уведомления в Телеграм.

Реализация:
У меня нет цифровой клавиатуры, поэтом пароль закоменчен.
Вся документация по интеграции находиться тут: Manual alarm control panel.

Задействовано:

В интеграции нет ни одной специализированной охранной системы.
В качестве логики сигнализации используется штатная Manual alarm control panel HA.Датчики открытия двери и движения Xiaomi.Телефоны на базе Android, iOS - как ключи доступа.Интеграция NDMS2 для поиска устройств в локальной сети.Телеграм для уведомлений на телефон.

alarm_control_panel: - platform: manual name: HA Alarm # code: '0713' arming_time: 10 delay_time: 180 trigger_time: 120 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 #Ставим сигнализацию. Воспроизводим на Шлюзе сообщение о постановке. Со стороны входной двери стоит кнопка Aqara, Одно нажатие - звонок, двойное - постановка сигнализации. - alias: Сигнализация, постановка клавишей trigger: platform: event event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d0002330465 click_type: 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 #ОТКРЫТИЕ ДВЕРИ. ОПРЕДЕЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ, СНЯТИЕ. #NDMS2 нашел телефоны пока сигнализация в режиме ожидания снятия - state: 'pending'. Снимаем сигнализацию, воспроизводим сообщение. - 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 #NDMS2 нашел телефоны пока мы идем от лифта и при открытии двери, просто снимет сигнализацию. - 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 #NDMS2 нашел телефоны пока мы идем от лифта и при срабатывании датчика движения, просто снимет сигнализацию. - 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' #реакция на выбор в телеграм. Кнопка - 'Отменить постановку на сигнализацию:/alarm3' - 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: "Получена команда. Отменить постановку на сигнализацию."

Оповещение в Телеграм. Сработка.
Оповещение в Телеграм. Автоматическая постановка.

В продолжении добавлю, по сути это шаблон. Вы можете с легкостью его поменять под свои нужды и свои компоненты.


А как же способ отключить сигнализацию если у телефона сел аккумулятор?

Тоже использую подобную схему охраны и 

Шлюз Aqara в качестве сирены. Не сильно устраивает такая сирена. Не чётко срабатывает, если начал проигрывать - то пока не доиграет - следующую мелодию (снятие с охраны) - не начнёт проигрывать. Хорошо бы снаружи дома уведомлять об аларме. 

Может кто применял для подобных уведомлений - например Bluetooth- колонку - или что-то подобное?

Все что угодно можно воспроизвести через внешнее устройство с джека 2.5

Я для данных целей использую интеграцию Mopidy

Благодарю!!! Именно это и хотел сделать, но только разбираюсь с НА, а Ваши примеры ОЧЕНЬ помогли!!!


Все настроил, все работает!



Добрый день!

Спасибо за гайд. Подскажите, пож, у меня сейчас есть Gateway 2 и 3 версий. Большинство датчиков висит на версии 3. Хочу чтобы когда шло срабатывание сигнализации и начиналась тревога на версии 3 хаба - это запускало тревогу на версии 2 хаба.

У меня начинающий уровень. С написанием кода туго пока.


Вернуться назад
Вернуться назад