Интеграция по MQTT

Любой брокер. Любая платформа, говорящая по MQTT.

Car 2 Home является полноценным клиентом MQTT. Каждый датчик, который вы выбрали для экспорта, от стандартного OBD и расширенных PID до вычисляемых метрик, GPS, TPMS и состояния диагностики, публикуется в ваш брокер вместе с показателями Vehicle Hub: прогнозом заправки, подходящими сроками обслуживания и напоминаний, итогами и расходом за месяц. Показания и хаб привязываются к конкретной машине в любом формате публикации.

Если у вас уже работает Mosquitto, EMQX, HiveMQ или другой брокер, до рабочей связки остаётся заполнить пару полей. Наши серверы для этого не нужны: телеметрия идёт прямо из приложения в ваш брокер.


MQTT против нативной интеграции с Home Assistant

Оба пути несут одни и те же датчики. Разница в том, что MQTT несёт непрерывное состояние, а нативная интеграция с Home Assistant несёт ещё и события (поездка началась, найден код неисправности, резкое ускорение). Если вам нужен только MQTT, вы получите все живые данные, но отдельные моменты, на которых держатся самые интересные автоматизации, существуют лишь в нативной интеграции.

ВозможностьMQTTНативная HA
Непрерывное состояние
Значения датчиков публикуются по мере изменения.
✓✓
События
trip_started, trip_ended, dtc_found, harsh_event, ecu_online/offline.
—✓
Команды в обе стороны
Home Assistant может попросить машину просканировать коды неисправностей или заново объявить датчики.
—✓

Как публикуются данные

  • Сообщения автоопределения отправляются с retain=true, поэтому подписчик, подключившийся позже, сразу видит каталог сущностей.
  • Только изменения: значения переотправляются лишь когда меняются, при желании с прореживанием, чтобы не заваливать брокер.
  • Перечислимые PID расшифровываются: тип топлива "1" превращается в "Бензин", заданный коэффициент эквивалентности отдаётся дробью и так далее. И сырое, и человекочитаемое значение доступны как атрибуты.
  • Значки Material Design входят в сообщения автоопределения, так что панели сразу выглядят правильно.
  • Настраиваемый QoS для каждого класса топиков. Состояние датчиков по умолчанию QoS 0, служебные сообщения используют QoS 1.
  • TLS и аутентификация поддерживаются, а учётные данные хранятся в связке ключей iOS или в Android Keystore.

Работает с

Со всем, что говорит по MQTT, в паре с подходящим форматом публикации (см. выше). Регулярно проверяем на:

  • Home Assistant через интеграцию MQTT с форматом Home Assistant Discovery (определяется автоматически).
  • OpenHAB и ioBroker с форматом Homie 4.0 (биндинг MQTT Homie, адаптер MQTT Client).
  • Hubitat, Node-RED, Domoticz с форматом простых топиков.
  • Grafana с Telegraf или InfluxDB и собственные панели с форматом единого JSON.
  • ThingsBoard CE и Cloud с профилем ThingsBoard; мосты ESPHome и любой самодельный потребитель MQTT с простыми топиками или единым JSON.

Форматы публикации

Выберите формат под свою платформу назначения. Формат Home Assistant Discovery по умолчанию закрывает HA сразу; для OpenHAB, Hubitat, обычных панелей или ThingsBoard переключитесь на один из остальных.

Home Assistant Discovery

По умолчанию. Сообщения автоопределения в homeassistant/<component>/<deviceId>/<sensor>/config. Машина сама появляется в HA в разделе Настройки → Устройства и службы → MQTT. Непрерывное состояние публикуется пачкой JSON в <prefix>/<deviceId>/state.

Homie 4.0

Открытый стандарт с обнаружением через топологию homie/<deviceId>/$nodes и метаданными $datatype / $unit / $format для каждого свойства, с полноценным last will и полным жизненным циклом состояния, так что брокер всегда знает, на связи ли автомобиль. Родная цель для OpenHAB (привязка MQTT Homie) и ioBroker.

Простые топики

По одному топику MQTT на датчик, без обнаружения. Полезная нагрузка переключается между сырым значением (например, 1850) и JSON вида {value, ts}. Работает с Hubitat, Node-RED, Domoticz и любым обычным потребителем MQTT.

Единый JSON

Все датчики одной полезной нагрузкой JSON в настраиваемый топик, с сохранением для опоздавших подписчиков. Хорошо подходит для Grafana, InfluxDB и Telegraf и своих панелей, которым удобнее подписаться на один топик и разобрать полный снимок автомобиля целиком.

ThingsBoard

Готовый профиль для ThingsBoard CE и ThingsBoard Cloud. Публикует телеметрию в v1/devices/me/telemetry, а статические датчики (VIN, тип топлива, CalID) в v1/devices/me/attributes. Токен доступа вводится в поле Имя пользователя, поле Пароль оставьте пустым.

Формат можно сменить в любой момент в Настройки → MQTT → Формат. При уходе с Home Assistant или Homie приложение предлагает прибрать оставшиеся на брокере сохранённые топики обнаружения, чтобы на стороне потребителя не осталось призрачных устройств.


Как выбрать брокер

Если своего ещё нет, вот отправная точка:

  • Mosquitto: самый простой вариант. Ставится дополнением к Home Assistant в один клик или отдельно в Docker. Для дома этого более чем достаточно.
  • EMQX: собирается в кластер, хорошо масштабируется, имеет опрятную веб-панель. Оправдан, когда устройств много или нужен подробный мониторинг.
  • HiveMQ: надёжный коммерческий или облачный вариант, если не хотите держать всё у себя.

Быстрая настройка

  1. 1. Брокер должен быть доступен с телефона

    Либо в домашней сети, либо через туннель (Tailscale, Cloudflare Tunnel, Nabu Casa). Чтобы телеметрия шла в реальном времени, MQTT должен быть доступен и в дороге.

  2. 2. Откройте Настройки → MQTT в приложении

    Укажите хост, порт, имя пользователя, пароль и при необходимости параметры TLS. Приложение проверяет соединение и показывает состояние сразу.

  3. 3. Подпишитесь и смотрите, как приходят сущности

    Сообщения автоопределения публикуются немедленно. В Home Assistant устройство появляется в разделе Настройки → Устройства и службы → MQTT. В Node-RED или любом обозревателе MQTT пройдитесь по дереву топиков под заданным вами префиксом.

Посмотреть пошаговое руководство по настройке →

Matter, SmartThings, Google Home и Alexa

Плагин Matterbridge, который отдаёт датчики Car 2 Home как устройства Matter, чтобы они появлялись в Apple Home, Google Home, SmartThings и Alexa без Home Assistant посередине, уже написан и проходит испытания. Мы пока его не выпускаем: типы устройств в Matter недостаточно хорошо описывают те показания и события, которые порождает автомобиль, и результат не дотягивает до уровня, который нас устраивает. Сообщим, как только это изменится.