Home Assistant может высчитать, как далеко вы находитесь от дома, и даже понимает, в каком направлении вы двигаетесь — к дому или от него. Всё это реализуется с помощью интеграции proximity.
Зачем умному дому информация о расстоянии?
- Home Assistant может заранее включить кондиционер или отопление, когда вы только-только подъезжаете к дому;
- Также HA может предупредить о скором возвращении кого-то из родных;
- А ещё благодаря интеграции можно понять, кто из домочадцев сейчас ближе всего к дому.
Всё вышеперечисленное актуально не только для домашней зоны. Можно, например, рассчитывать расстояние до офиса или супермаркета.
Главное, чтобы у вас в Home Assistant был настроен хотя бы один трекер для отслеживания местоположения, иначе никакого чуда не произойдёт.
Настройка proximity
Интеграция встроенная и включается в настройках Home Assistant следующим образом:
По умолчанию proximity считает расстояние в метрах. Поменять на километры можно в настройках сенсора:
Как использовать proximity?
Лично у меня этот сенсор используется просто в информационных целях. Моё местоположение выводится на панели вместе с информацией о том, как далеко я от дома и в каком направлении еду:
Вот мой конфиг для 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 %}
Но вообще 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, то я с удовольствием почитаю о них в комментариях. Может быть, даже позаимствую парочку идей себе 🙂
А так, надеюсь, что мне удалось достаточно подробно рассказать про расчёт расстояния от дома. Но если остались какие-то вопросы, то вы знаете, куда писать 👇