Мониторинг присутствия в Home Assistant по пингу телефона
Автоматическое определение присутствия членов семьи дома — один из фундаментальных столпов, на которых строится по-настоящему умный дом. Знание того, находится ли кто-то в квартире, позволяет умному помощнику вовремя гасить свет в пустых комнатах, ставить систему на охрану, регулировать температуру радиаторов или включать робот-пылесос, не мешая домочадцам.
Существует множество способов трекинга геопозиции, включая GPS-мониторинг, подробнее о котором вы можете прочитать в нашей статье про запуск сценариев Дома в Алисе по GPS-зонам Home Assistant. Однако GPS-трекинг сильно расходует заряд аккумулятора смартфона и требует постоянного доступа к мобильному интернету. В качестве надежной, локальной и энергоэффективной альтернативы выступает отслеживание присутствия по пингу (Ping Device Tracker). Этот метод основан на периодическом опросе доступности смартфона в домашней Wi-Fi сети. Когда вы возвращаетесь домой, ваш телефон автоматически подключается к роутеру, сервер Home Assistant фиксирует его сетевой адрес и сообщает Яндексу о вашем приходе для запуска приветственных сценариев с Алисой.
Шаг 1. Резервирование IP-адресов на роутере
Для того чтобы метод отслеживания по пингу работал стабильно, IP-адрес каждого смартфона в локальной сети должен оставаться неизменным. По умолчанию домашние роутеры выдают адреса динамически через протокол DHCP, что означает, что при очередном подключении телефон может получить новый адрес, и система мониторинга потеряет его из виду.
- Войдите в панель управления вашего домашнего роутера (обычно она доступна по адресу
192.168.1.1или192.168.0.1). - Найдите раздел, который называется DHCP Server, Static Lease или Резервирование IP-адресов.
- Найдите в списке подключенных устройств ваш смартфон (ориентируйтесь по имени устройства или по его уникальному физическому MAC-адресу).
- Закрепите за смартфоном постоянный локальный IP-адрес, например
192.168.1.50. - Повторите эту процедуру для мобильных телефонов всех членов семьи, назначив каждому свой статический адрес.
- Перезагрузите роутер и убедитесь, что смартфоны получили назначенные им сетевые адреса.
IMPORTANT
В настройках Wi-Fi на самом смартфоне (особенно на iOS и современных версиях Android) отключите функцию «Частный адрес» или «Случайный MAC-адрес» для вашей домашней сети. Если этого не сделать, телефон будет периодически менять свой физический адрес, что нарушит привязку IP-адреса на роутере.
Шаг 2. Настройка интеграции Ping в Home Assistant
Начиная с современных версий Home Assistant, интеграция Ping настраивается непосредственно через графический интерфейс без необходимости ручного редактирования конфигурационных файлов.
- В веб-интерфейсе Home Assistant перейдите в раздел Настройки ➡️ Устройства и службы.
- Нажмите кнопку Добавить интеграцию в правом нижнем углу.
- Введите в поиске слово Ping (или ICMP) и выберите найденную интеграцию.
- Настройте устройство: укажите имя (например, «Телефон Алексея») и введите зарезервированный ранее IP-адрес (например,
192.168.1.50). - Установите интервал опроса. По умолчанию система опрашивает устройство каждые
30секунд. Это оптимальное значение, которое не создает нагрузку на сеть. - Нажмите Отправить. В системе появится новая сущность класса
device_tracker.phone_alekseyсо статусамиhome(дома) илиnot_home(не дома).
Шаг 3. Создание сглаживающего бинарного сенсора
Главная техническая сложность отслеживания телефонов по Wi-Fi заключается в агрессивных алгоритмах энергосбережения мобильных операционных систем. Когда смартфон заблокирован и лежит без дела, он отключает модуль Wi-Fi для экономии заряда батареи и перестает отвечать на пинги. В результате Home Assistant может ошибочно посчитать, что вы ушли из дома, выключит свет и включит сигнализацию.
Чтобы решить эту проблему, мы создадим виртуальный бинарный сенсор-фильтр, который будет переходить в состояние «Не дома» только в том случае, если телефон не пингуется непрерывно в течение последних 10 или 15 минут.
Перейдите в файл configuration.yaml или создайте шаблонный сенсор через интерфейс (вспомогательные элементы типа Template). Мы покажем надежный вариант через конфигурационный файл:
template:
- binary_sensor:
- name: "Алексей Присутствие Фильтр"
device_class: presence
state: >
{{ is_state('device_tracker.phone_aleksey', 'home') }}
delay_off:
minutes: 10
Этот сенсор мгновенно перейдет в состояние on (дома), как только телефон подключится к Wi-Fi, но задержит свое выключение на 10 минут (delay_off), сглаживая любые временные отключения Wi-Fi в режиме сна.
TIP
Экспериментируйте со временем задержки. Для большинства квартир задержка выключения в 10-15 минут является оптимальной. Если вы заметили, что ложные срабатывания все еще происходят, увеличьте интервал до 20 минут.
NOTE
Рекомендуемый материал по теме: Отправка сообщений в Telegram через Алису и Home Assistant
Шаг 4. Синхронизация с Яндекс Станцией и Алисой
Теперь нам нужно пробросить сглаженный статус присутствия в экосистему Яндекса. Самый простой способ сделать это — использовать виртуальный переключатель input_boolean.
В приложении «Дом с Алисой» этот переключатель отобразится как обычный выключатель. Настройте сценарии автоматизации:
- Сценарий «Хозяин дома»: При включении виртуального переключателя (Алексей дома) запустить приветственное сообщение на Яндекс Станции в прихожей.
- Сценарий «Никого нет дома»: Когда оба семейных переключателя перейдут в состояние «Выкл», выключить все осветительные приборы, телевизоры и перевести Станцию в режим охраны.
Инструкция по настройке
Резервирование статического IP
Привяжите MAC-адрес телефона к постоянному IP-адресу в панели управления вашего роутера во избежание смены адреса при переподключении.
Добавление Ping интеграции
Добавьте интеграцию Ping в Home Assistant, указав зарезервированный IP-адрес телефона для периодической отправки ICMP-пакетов.
Создание сглаживающего фильтра
Настройте групповой сенсор или правила фильтрации, чтобы сгладить ложные уходы в офлайн при переходе телефона в спящий режим.
Интеграция с Умным домом Яндекса
Передайте статус присутствия в Алису через виртуальный тумблер и настройте голосовые сценарии приветствия.
Обсуждение статьи