Как запустить device tracking для умного дома?

Цель и актуальность

Чтобы Ваш умный дом мог максимально подстраиваться под Ваши потребности, то он должен получать максимальное количество необходимой ему информации о Вас и Ваших привычках. Например, дом должен знать о Вашем уходе или приходе. В данной статье будем настраивать информирование дома о данных событиях. Нашел несколько решений:

  1. Через отслеживание подключений к сетям wi-fi смартфона и тут есть 2 возможности:

    1. Через интеграцию с роутером (у меня роутер TP-Link).

    2. Через приложение Home Assistant на смартфоне.

  2. Через получение Ваших координат из приложения Home Assistant на смартфоне.

Подключение к wi-fi сетям

Подключение к wi-fi сетям возможно отслеживать со стороны роутера или устройства подключения (смартфона). В самом начале я настроил интеграцию с моим роутером TP-Link. Данная интеграция устанавливается через HACS. Репозиторий решения. Все что Вам необходимо, то это указать IP-адрес, логин и пароль Вашего роутера.

После этого появляются необходимые объекты и Вы можете мониторить информацию с Вашего роутера: Также появляется объект device_tracker.<your_device>, который Вы можете соединить с Вашим профилем: Настройки->Люди->Ваш пользователь.

Решение с роутером хорошее, но мне не давала покоя зависимость от TP-Link и сопутствующие риски.

Следующее решение, на котором остановился на текущий момент - это отслеживание подключения к wi-fi сетям через приложение Home Assistant на смартфоне. Важно это приложение устанавливать через Google Play, иначе Вы не получаете максимальное количество сенсоров Вашего устройства с доступностью на Вашем сервере. После установки приложения необходимо пройти по пути: Настройки->Мобильное приложение->Управление сенсорами->Wifi BSSID и включить сенсор. Если у Вас роутер работает на несколько диапозонов (у меня такой слеучай), то можно подключиться к каждой сети по отдельности и получить BSSID. В configuration.yaml добавляем (конфиг необходимо изменить под свои объекты):

template:
  - binary_sensor:
    - name: vvy at home
      state: "{{ is_state('sensor.2201116sg_vvy_wi_fi_bssid', 'xx:xx:xx:xx:xx:xx') or is_state('sensor.2201116sg_vvy_wi_fi_bssid', 'xx:xx:xx:xx:xx:xx') }}"
      device_class: presence
      delay_off: "0:00:30"
      availability: "{{ states('sensor.2201116sg_vvy_wi_fi_bssid') not in ['unavailable', 'unknown'] and not is_state('ssensor.2201116sg_vvy_wi_fi_bssid', '02:00:00:00:00:00') }}"

Перезагружаем Home Assistant. Данным действием мы создаем бинарный сенсор, который будет иметь состояние on, когда мы подключились к домашним сетям и off во всех остальных случаях.

Через HACS устанавливаем интеграцию Composite Device Tracker, которая создаёт device tracker и его уже мы можем привязать к человеку. В configuration.yaml добавляем (конфиг необходимо изменить под свои объекты):

composite:
  trackers:
    - name: volokzhanin_wifi
      time_as: local
      entity_id:
        - binary_sensor.vvy_at_home

Перезагружаем Home Assistant. Идем по пути Настройки->Люди->Ваш пользователь и добавляем только что созданный tracker к нашему пользователю.

Если Все верно настроено, то можно Вывести картинку со статусом на общий dashboard, например, так:

Для это нам необходимо в текстовом редакторе открыть Вашу панель и ввести такой текст (конфиг необходимо изменить под свои объекты):

    badges:
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        entity: person.<your_user>
        image: >-
          https://<you_ip>/api/image/serve/51d7f85633503e6ddd03628f5584cf2c/512x512
        show_entity_picture: true
        name: Вадим

Рекомендую всю семью объединить в группу в файле config_homeassistant/groups.yaml:

family:
  name: Family
  entities:
    - person.<user1>
    - person.<user2>

Данное действие позволит в будущих автоматизациях не проверять каждого человека (его статус), а проверять статус группы. Таким же способом можно объединить все электрические приборы, чтобы отключать не по 1 прибору, а сразу группу.

Получение координат устройства

Данная возможность появляется также при установке мобильного приложения Home Assistant. Идём по пути: Настройки->Мобильное приложение->Управление сенсорами->Геокодированное местоположение (включаем этот сенсор). Перезагружаем Home Assistant. Выводим на карту полученные сенсоры, например:

Полученный device_tracker возможно привязать к конкретному человеку, но этот способ оказался не очень точным по 2 причинам:

  1. Home Assistant считает домом диаметр 100 метров вокруг обозначенных координат. Необходимо довольно далеко уйти, чтобы вы были «не дома».

  2. В 2025 году в Москве постоянные сбои навигации в связи с политической обстановкой. В итоге данную интеграцию я использую с целью визуализации местоположения человека.

Также можно установить интеграцию Proximity. Перезагружаем Home Assistant. Данную интеграцию используем для автоматизаций, когда нам необходимо расстояние до объекта (дома, например). Пример отображения:

Итог

Наш дом знает о нашем приходе или уходе, также мы можем знать местоположение человека, выводить его на карту и рассчитывать расстояния до дома (объектов).

Ссылки:

  1. Как запустить сервис по управлению умным домом?