Перейти к содержанию

Интеграция сторонних приложений

Интеграция CARTelemetry принимает телеметрию от любого приложения — не только от Car2Hass. Чтобы ваше приложение передавало данные автомобиля в Home Assistant, достаточно уметь отправлять несколько HTTP-запросов. Полный контракт — на странице Открытый API-контракт (и машиночитаемая версия: GET https://mytechnic.ru/cartelemetry/api/spec/).

Минимальная интеграция (3 шага)

1. URL и аутентификация. Эндпоинт доступен на HA-сервере:

POST http://<host>:8123/api/cartelemetry
Authorization: Bearer <Long-Lived Access Token>

Токен создаётся в HA: Профиль → Long-Lived Access Tokens. Тот же токен, что и у приложения Car2Hass, подойдёт и стороннему приложению.

2. Отправка телеметрии. Один запрос — окно снапшотов. Поля, обязательные для понимания данных: car_name (должен совпадать с именем, заданным в интеграции), ts (время новейшего снапшота), batch (массив снапшотов).

POST /api/cartelemetry
{
  "car_name": "my_car",
  "app_version": "1.0.0",
  "ts": 1730000000,
  "batch": [
    {
      "t": 1730000000,
      "s": {"speed": "0", "soc": "68", "power_state": "on"}
    }
  ]
}

Минимальный набор сигналов (ядро, 33 сигнала) описан в контракте; можно отправлять любое подмножество — сущности появятся по мере поступления значений.

3. Получение команд (опционально). Приложение может выполнять команды из HA:

GET /api/cartelemetry/commands?car_name=my_car
POST /api/cartelemetry/commands   {"car_name": "my_car", "acked": [{"id": "ac_on", "success": true}]}

Что это даёт

  • Данные из любого источника (кастомное приложение, сервис, скрипт) попадают в дашборд HA и на карточку автомобиля.
  • Команды (климат, замки и т.п.) возвращаются приложению тем же каналом.
  • Единый формат для всех источников — универсальная телеметрическая платформа.

Ограничения

  • car_name совпадает с именем, заданным при настройке интеграции (регистр важен).
  • Интеграция принимает данные только с локальной сети HA (без авторизации в HA — 401).
  • Рекомендуемая частота — снапшоты ~1 Гц, отправка раз в ~4 секунды.