Блог

Измерение расстояний между объектами или напоминание о не поставленном на охрану автомобиле

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

Да и для других целей.

Для этого нам понадобится:

  1. Home Assistant;
  2. Telegram;
  3. GPS в Автомобиле, в моём случае сделано через интеграцию со Starline
  4. Телефон с разрешённой геолокацией

Итак, в шаблонах создаём простой сенсор отслеживания расстояния:

dist_from_auto: value_template: "{{(distance('device_tracker.my_car_location', 'device_tracker.my_cellphone')*1000)|int}}" friendly_name: Моя дистанция от автомобиля

Где,

distance - хелпер помогающий из измерять расстояние. Если вы не знали, то не всё так просто, как может показаться, при измерении географических расстояний учитывается кривизна земли и ещё какой-то матан. Чем дальше расстояние, тем больше погрешность измерений, но в нашем случае этим можно пренебречь.

device_tracker* - собственно трекер наших устройств.


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

Ниже пример автоматизации, как обычно сделанной в GUI.

- id: '1601461167559' alias: Уведомление о дистанции от авто description: '' trigger: - platform: numeric_state entity_id: sensor.dist_from_auto above: '2' condition: - condition: and conditions: - condition: device device_id: 8e39ae9fa6fe415ca8d52bcef7c0ef23 domain: lock entity_id: lock.my_car_security type: is_unlocked - condition: and conditions: - condition: device type: is_off device_id: 8e39ae9fa6fe415ca8d52bcef7c0ef23 entity_id: switch.my_car_engine domain: switch action: - service: notify.telega data: message: Внимание! Вы отошли от машины более 2-х метров и не заблокировали автомобиль! mode: single

Логика работы: Если сенсор фиксирует расстояние от авто больше двух метров и при этом охрана отключена и двигатель выключен, то посылает уведомление в телеграм.

Качество работы?

В целом, я бы оценил качество работы на 3+ и то из-за того, что геолокация у меня включена через icloud и не очень часто и точно обновляется, но в любом случае, это лучше чем ничего.

Бонус для тех кто дочитал

Так можно прогнозировать время прихода домой того или иного члена семьи, ведь у нас есть расстояние и мы знаем, что средняя скорость движения человека пешком составляет примерно 5 км/ч. Скорость передвижения на автомобиле можно вычислить по логам GPS или по БК, тоже самое и с автобусом. Из начальной школы мы знаем, что чтобы вычислить время, нужно расстояние поделить на скорость. А чтобы узнать количество минут, то нужно результат помножить на 60. И дополнительно округлим это всё до одного знака.

Для измерения нам достаточно только координат отслеживаемого объекта.

{{(distance('device_tracker.wife_location')/5*60)|round(1)}}

Здесь должна была быть шутка про балконы и шкафы, но я передумал.

Спасибо, что дочитали до конца! Пожалуйста оцените статью, это поможет мне писать лучше :)


По-русски пишется «вы удалились на расстояние более 2х метров» или «вы отошли от автомобиля далее 2х метров». А у вас какой-то перевод гуглом с английского 🤣

Как бог на душу положил, так я и написал. Для себя же делаю, главное чтобы я понял ) 


Вернуться назад
Вернуться назад