Писатель из меня так-себе. Потому, прошу сильно не пинать, а если что-то не понятно - спрашивайте! Помогу чем смогу ;)
Как известно, в 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 вы всегда увидите где припарковали машину или куда ездила жена (а может и муж ;) ) Или на какой парковке она стоит ;)
А если вы живёте в частном доме и у вас есть гараж с автоматическими воротами - можно их открывать когда вы подъезжаете.
Да это целая статья !!!!!! огонь ))) красавец )))) подписался жду продолжения ))
Спасибо ;) Подумаю над продолжением ;)
Статья интересная, для себя открыл кое что новое.. Но по мне реализация избыточна, считай что из пушки по воробьям)
В случае с ios, я решил это более простым методом. Создал в ha переключатель, прокинул его в homekit, в нем же настроил по приходу и уходу его переключение. Так же для нативных приложений у ios несколько другая политика к использованию gps. То есть (субъективно) экономим батарейку, и получаем более точные данные. К слову - 2 телефона, одновременно покидая дом одновременно меняют свое состояние.
Думал может воспользоваться этим, что бы трекать машину, но не увидел поддержки globalsat. Что странно.
Главное, что нужно понимать на этом этапе - вы должны выбрать подходящий device_type и ident. В нашем случае это будет Telegram и Dexif.
немного не понял что за Dexif , нет такого в списке ???
Ident для device_type=telegram это ник в телеграме ;) Dexif это мой ник ;)
Попробовал вашим способом - работает, спасибо!
Правда переделал всё, что касается интеграции с HA через Node-Red.
А можете выслать
https://github.com/dexif/hassio-flespi-component/blob/master/component/mqtt_flespi_message.py">mqtt_flespi_message.py ? Стал не доступен.
Он вот тут https://github.com/dexif/hassio-flespi-component">https://github.com/dexif/hassi...
Пользуюсь интеграцией уже полгода, всё работает как часы, спасибо большое.
Думали над продолжением интеграции? Добавлением в HACS, упрощение настройки, расширение передаваемых данных.
Например, передачу всех параметров в HA. У меня в машине стоит трекер и там есть такие параметры как: пробег, зажигание, уровень топлива...
Спасибо, приятно слышать.
Да, надо бы заняться. :)
Может в ближайшее время постараюсь допилить. Только немного разгребусь с рутинными задачами :)
LuckyTNT подправил репозиторий и теперь его можно использовать как кастомный репозиторий HACS
https://github.com/dexif/hassio-flespi-component">https://github.com/dexif/hassi...
Добрый день! HA стоит в докере. куда положить файлы с гитхаба? выдает ошибку:
Platform error device_tracker.mqtt_flespi_message - Integration 'mqtt_flespi_message' not found.
на уровне конфига создал custom_components/device_tracker/
так?
Извиняюсь что долго не отвечал немного было не до того :( Я поправил код немного чтобы заработало в последнем HA. Попробуйте сейчас.
Здравствуйте. Подскажите каким образом создать MQTT интеграцию в home assistant. Добавил интеграцию через HACS (пользовательский репозиторий).
Захожу в "Настройки-Интеграции-Добавить интеграцию" нет "mqtt flespi message", а добавить интеграцию MQTT ещё раз с другими параметрами не дает.
Не совсем понял вопрос. Вы должны добавить кастомный репозиторий указав https://github.com/dexif/hassio-flespi-component">https://github.com/dexif/hassi...
После этого вам необходимо в интеграциях найти mqtt flespi message и установить.
После установки вам необходимо перезагрузить home assistant и в configuration.yaml в раздел device_tracker: добавить что-то вроде (только со своими id и названиями):
- platform: mqtt_flespi_message
devices:
test: 'flespi/message/gw/devices/12345'
И опять перезагрузить home assistant чтобы применить настройки этой интеграции.
Если у вас свой mqtt брокер - вам необходимо настроить в нём bridge чтобы получать сообщения из flespi брокера.
Пример настройки можно найти вот тут: https://forum.flespi.com/d/188-configure-your-mosquitto-mqtt-bridge-to-send-data-to-flespi">https://forum.flespi.com/d/188... И/или вот тут: https://forum.flespi.com/d/403-lack-of-bridge-documentation/4">https://forum.flespi.com/d/403...
а если mqtt брокер установлен как add-ons в HA, примеры настроек подойдут ?
вот этот например https://forum.flespi.com/d/403-lack-of-bridge-documentation/3">https://forum.flespi.com/d/403... ?
Уже давно разворачиваю всё отдельно потому точно сказать не могу как там работают аддоны. Может гляну позже. Но вообще проблем не должно быть.
Вот тут описано как конфигурировать москитто когда он аддон:
https://community.home-assistant.io/t/mosquitto-add-on-and-bridge-need-some-help/216097">https://community.home-assista...
спасибо, буду изучать
Здравствуйте,
сконфигурировал аддон по вашему примеру, скачал сертификат с https://flespi.io положил в нужную папку /etc/mosquitto
но при запуске
Mosquitto broker
всё равно выдает ошибку:
перечитал много форумов, но нигде не нашел решение проблемы, может вы подскажите ?
Было бы проще предложить если бы вы рассказали что вы уже сделали и как настраивали.
В конфигурации аддона mosquitto есть параметр customize_folder есть подозрение что если указать путь не к файлу конфигурации а к папке в которой лежит и конфиг и сертификат - то всё должно заработать. Если конечно всё сконфигурировано правильно. Пути все правильные и т.д.
Но я же говорю проще было бы если бы вы рассказали каким образом вы конфигурировали. Только не публикуйте ваши токены и остальные кинфиденциальные данные из конфигурации :)
установил на телефон Wiatag, настроил связь с flespi.io, данные приходят, на карте отображается и местоположение и маршрут.
установил через HACS интеграцию "Mqtt flespi message"
добавил в
configuration.yaml параметры как в этой статье, со своими flespi-channels и flespi-device
Mosquitto broker стоит как add-on в HA. настройки стандартные, изменил только параметр active:
customize:
active: true
folder: mosquitto
создал каталог
/usr/share/hassio/share/mosquitto и там разместил файл
mosquitto.conf , в который добавил параметры настройки по вашей ссылке https://forum.flespi.com/d/403-lack-of-bridge-documentation/3">https://forum.flespi.com/d/403... . Заменил параметр
bridge_protocol_version mqttv311 , т.к. со значением mqttv50 сразу при запуске появлялась ошибка. и добавил свой
remote_username XXXFLESPITOKENXXX
создал каталог /etc/mosquitto куда положил файл сертификатов flespi-io-chain.pem, скачанный как вы и писали с flrspi.io
на шлюзе сделал проброс портов 1883, 1884,8883, 8884 и 443
До передачи данных из flespi.io в HA видимо дело не доходит, т.к. при загрузке
Mosquitto broker в логах появляются ошибки ,как в предыдущем сообщении
Ок. Теперь попробуйте ничего не меняя в конфигурации положить файл сертификата в папку /usr/share/hassio/share/mosquitto
скопировал
flespi-io-chain.pem в указанную папку, ошибка та же самая:
Надо посмотреть куда мапится папка конфигурации и указать в конфиге правильный путь. Пока нет возможности поколупать. Чуть позже попробую посмотреть
connection FlespiBroker
bridge_protocol_version mqttv50
bridge_cafile /share/mosquitto/flespi/flespi-io-chain.pem
bridge_certfile /share/mosquitto/flespi/flespi.cert
bridge_tls_version tlsv1.3
bridge_insecure false
protocol mqtt
address mqtt.flespi.io:8883
remote_username ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ
bridge_attempt_unsubscribe true
cleansession true
topic message/# out 0
try_private true
allow_anonymous true
notifications true
notification_topic admin/bridge
keepalive_interval 60
start_type automatic
restart_timeout 10 180
remote_clientid pi_home76
Не забываем про active: true в настройках своего mosquitto на НА и перегрузить его, когда закините файлики.
И....Да, и меня mosquitto broker - установлен как дополнение в НА..
Был бы признателен Евгению, если бы он расписал и здесь, и в Hacs значения , выделив обязательные параметры конфига.
С другой стороны, все эти параметры относятся к mosquitto.conf и найти их описание можно задав в поиске "Краткое руководство по файлу Mosquitto.conf с примерами"., что я и сделал сейчас.