Расстояние от домашней зоны в Home Assistant

Расстояние от домашней зоны в Home Assistant
Frames For Your Heart / Unsplash

Home Assistant может высчитать, как далеко вы находитесь от дома, и даже понимает, в каком направлении вы двигаетесь — к дому или от него. Всё это реализуется с помощью интеграции proximity.

Зачем умному дому информация о расстоянии?

  • Home Assistant может заранее включить кондиционер или отопление, когда вы только-только подъезжаете к дому;
  • Также HA может предупредить о скором возвращении кого-то из родных;
  • А ещё благодаря интеграции можно понять, кто из домочадцев сейчас ближе всего к дому.

Всё вышеперечисленное актуально не только для домашней зоны. Можно, например, рассчитывать расстояние до офиса или супермаркета.

Главное, чтобы у вас в Home Assistant был настроен хотя бы один трекер для отслеживания местоположения, иначе никакого чуда не произойдёт.

Отслеживание местоположения телефона — обзор разных способов в Home Assistant
Отслеживание местоположения и присутствия в Home Assistant: трекинг телефона по Wi-Fi, определение дома/не дома, Home Assistant device_tracker, геолокация.Вк…

А если отслеживание местоположения у вас пока еще не настроено, то можете начать с этого видео.

Настройка proximity

Интеграция встроенная и включается в настройках Home Assistant следующим образом:

0:00
/0:18

По умолчанию proximity считает расстояние в метрах. Поменять на километры можно в настройках сенсора:

0:00
/0:13

Как использовать proximity?

Лично у меня этот сенсор используется просто в информационных целях. Моё местоположение выводится на панели вместе с информацией о том, как далеко я от дома и в каком направлении еду:

0:00
/0:25

Вот мой конфиг для Mushroom Chips, если нужно:

type: template
hold_action:
  action: more-info
entity: sensor.home_nearest_direction_of_travel
icon: |-
  {%
    set icons = {
      "default": "mdi:human-handsdown",
      "arrived": "mdi:home",
      "away_from": "mdi:home-export-outline",
      "towards": "mdi:home-import-outline",
    }
  %}
  {{ icons.get(states(entity), icons["default"]) }}
content: |-
  {% if is_state(entity, 'arrived') %}
    Дома
  {% elif is_state(entity, 'away_from') %}
    От дома, {{ states('sensor.home_roland_distance', rounded=True) }} км
  {% elif is_state(entity, 'towards') %}
    Домой, ещё {{ states('sensor.home_roland_distance', rounded=True) }} км
  {% else %}
    {{ states('sensor.home_roland_distance', rounded=True) }} км
  {% endif %}
icon_color: |-
  {% if is_state(entity, 'arrived') %}
    var(--rgb-state-person-home)
  {% elif is_state(entity, 'stationary') %}
    var(--rgb-state-person-zone)
  {% else %}
    var(--rgb-state-person-not-home)
  {% endif %}

Это YAML отдельного chip (чипа? чипса? 🙂).

Но вообще proximity можно использовать и в автоматизациях тоже:

mode: single
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.home_alisa_distance # Алиса от дома…
    below: 5 # …на расстоянии 5 километров…
condition:
  - condition: state
    entity_id: sensor.home_alisa_direction_of_travel
    state: towards # …и едет в сторону дома
action:
  - action: persistent_notification.create
    data:
      message: Алиса едет домой.

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

У меня вообще всё элементарно, и proximity используется просто для информирования.

Но мне было бы любопытно узнать о каких-то более навороченных сценариях. Поэтому, если у вас вдруг есть прикольные идеи по использованию proximity, то я с удовольствием почитаю о них в комментариях. Может быть, даже позаимствую парочку идей себе 🙂

А так, надеюсь, что мне удалось достаточно подробно рассказать про расчёт расстояния от дома. Но если остались какие-то вопросы, то вы знаете, куда писать 👇

Была ли статья полезна?

Хотите сказать спасибо? Кофе автору — ваша благодарность.

На кофе
Подписка на новые статьи

Уведомления, как только в блоге появится что-нибудь интересненькое.

Подписываясь, вы даете согласие на обработку персональных данных.