Писатель из меня так-себе. Потому, прошу сильно не пинать, а если что-то не понятно - спрашивайте! Помогу чем смогу ;)
Как известно, в home assistant реализовано большое количество компонентов для обнаружения присутствия (52 модуля) среди которых есть модули мониторящие устройства подключенные по WiFi к роутеру (TP-Link, Huawei, Asus, Ubiquity, OpenWRT), следящие за устройствами имеющими включенный Bluetooth модуль, а также компоненты получающие данные о местоположении пользователя из систем мониторинга (OwnTracks, Traccar, Google Maps Location Sharing). Благодаря им можно не просто наблюдать за теми кто находится дома, но и мониторить местоположение устройств и их владельцев вне дома. Я не буду пересказывать документацию этих компонентов - это скучно и можно найти на официальном сайте.
flespi
На самом деле flespi это не простой mqtt брокер - это система позволяющая подключать и перенаправлять данные от различных GPS трекеров (на данный момент поддерживается 273 типа устройств) и систем мониторинга. При этом данные парсятся в удобный унифицированный JSON формат. Кроме того, это не публичный mqtt брокер к которому все имеют неограниченный доступ. Тут присутствует авторизация по токену, гарантирующая, что в топиках будут только ваши данные и их никто не сможет получить.
Теперь немного о том, как это работает:
Вы создаёте flespi канал в панели управления.Направляете своё (*поддерживаемое) устройство или приложение (например WiaTag Android или iOS) на flespi (указав в настройках ip и порт).
Все поступающие в flespi сообщения от устройств парсятся в соответствии с выбранным протоколом попадают в MQTT брокер в виде JSON объекта.
Регистрация по email или с использованием соцсетей. Для личного дома должно быть вполне достаточно бесплатного пакета. Залогинился гуглом/фейсбуком/гитхабом/мелкомягкими и в путь.
В flespi есть несколько вариантов получения данных о местоположении:
Для первого варианта вам достаточно:
подключить устройство к каналу flespi соответствующего протоколу устройства
подписаться на топик flespi/message/gw/channels// с подставленным id канала и ident устройства
Во втором случае вам надо:
так-же подключить устройство к каналу
после чего, необходимо будет создать виртуальное устройство flespi (с указанным типом как созданный канал) и прописать туда ident
а уже затем, можно будет подписаться на топик flespi/message/gw/devices/ с соответствующим id устройства.
Отличие в том, что устройство flespi спроектировано для хранения истории сообщений (до 10 лет), а канал flespi является трубой, конвертирующей сообщения от устройств из определённого протокола в json формат и долгое хранение данных в каналах не предусмотрено.
Для примера использования и простоты настройки я решил показать настройку на основе Telegram бота, который отправляет сообщения в канал flespi. Однако, вы можете использовать любой программный или железный трекер, который поддерживается в flespi.
Для начала создадим канал работающий через Телеграм бота.
Home Assistant
К сожалению, в Home Assistant нет компонента, который бы подошёл для получения данных от flespi. Потому пришлось накидать на коленке свой вариант device_tracker компонента (за основу взят MQTT_device_tracker)
Этот компонент необходимо положить в папку config/custom_components/device_tracker
device_tracker: — platform: mqtt_flespi_message devices: # flespi channel dexif: 'flespi/message/gw/channels/7730/Dexif' another: 'flespi/message/gw/channels/7730/another' # flespi device dexif2: 'flespi/message/gw/devices/173073'
Кроме того, можно добавить известные устройства в файл known_devices.yaml
dexif: hide_if_away: false icon: mac: name: dexif picture: track: true gravatar: blah@blah.blah
Вот и все наши подключенные трекеры на карте в home assistant
panel_iframe: trackit: title: TrackIt icon: mdi:map-search url: https://trackit.flespi.io/#/login/
А вот так это выглядит:
Мысли о прекрасном об автоматизации
Как пример - почему бы не разогревать чайник, когда ты подъезжаешь к дому. Если электрочайник довольно глупый можно его подключить например через Xiaomi розетку и нажать кнопку, а в автоматизации активировать розетку в тот момент, когда вы приблизились к дому (только не забудьте заранее налить воды ;) )
Ну, а ещё можно завязать на это дело мультиварку и когда выходишь с работы, чтобы она автоматически включалась. Тогда, приехав домой, у вас будет свежеприготовленный ужин. (Правда и тут главное не забыть закинуть чего в мультиварку).
А в TrаckIt вы всегда увидите где припарковали машину или куда ездила жена (а может и муж ;) ) Или на какой парковке она стоит ;)
А если вы живёте в частном доме и у вас есть гараж с автоматическими воротами - можно их открывать когда вы подъезжаете.