Данная тема будет рубрикой. Буду обновлять и добавлять разные темы. Мне кажется, много возможностей Home Assistant не раскрываются и многие не используют этих фишек. Это мой опыт, я делюсь им и предполагаю, что в какой-то момент вы, как и я, скажете: "Вот, вот этого мне не хватало!"
Сигнализация
Как это работает:
Шлюз Aqara в качестве сирены, голосовых уведомлений (фразы записаны через Yandex диалог и вшиты в качестве рингтонов приложением Mi Home).
Механика:
- Я использую роутер Keenetic, для него в HA можно использовать интеграцию NDMS2, которая каждые 30 секунд сканирует сеть и отображает подключенные устройства. К таким устройствам я отнес телефоны обитателей квартиры. Также с этой интеграцией можно мониторить подключение всех устройств в сети и вывести их статус.
- Если мы все уходим, телефон отключается от локальной сети и через 30 минут сигнализация ставится под охрану, о чем сообщает Telegram всем пользователям.
- Когда кто-то приходит домой первым, срабатывают датчик открытия двери или движения, происходят следующие события:
- Если NDMS2 успел найти телефон (пока я иду от лифта) - сигнализация снимается автоматически, воспроизводится сообщение о снятии.
- Если NDMS2 не успел найти телефоны и датчики сработали, дается 2 минуты, за которые телефон обнаружит сеть и сигнализация снимается. Если нет, необходимо снять сигнализацию вручную.
- Идет сработка, шлюз неистово шумит, отправляются уведомления в Телеграм.
Реализация:
У меня нет цифровой клавиатуры, поэтом пароль закоменчен.
Вся документация по интеграции находиться тут: 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: "Получена команда. Отменить постановку на сигнализацию."
В продолжении добавлю, по сути это шаблон. Вы можете с легкостью его поменять под свои нужды и свои компоненты.