Skip to content

Добавить передачу живой телеметрии в ABRP#8

Closed
trollnuulnuul7 wants to merge 1 commit into
AndyShaman:mainfrom
trollnuulnuul7:feature/abrp-live-telemetry
Closed

Добавить передачу живой телеметрии в ABRP#8
trollnuulnuul7 wants to merge 1 commit into
AndyShaman:mainfrom
trollnuulnuul7:feature/abrp-live-telemetry

Conversation

@trollnuulnuul7
Copy link
Copy Markdown

Что сделано

Добавлена интеграция с Iternio Telemetry API для отправки живых данных BYDMate в ABRP.

  • отправка данных DiPlus и GPS в https://api.iternio.com/1/tlm/send;
  • формат запроса соответствует документации Iternio: token + JSON-объект tlm;
  • добавлены настройки ABRP в интерфейсе: включение, API-ключ Iternio, токен живых данных, код модели и интервал отправки;
  • отправка выполняется из TrackingService с ограничением частоты, без блокировки основного цикла опроса.

Зачем

ABRP сможет получать актуальные SOC, скорость, мощность, координаты и другие доступные показатели автомобиля во время поездки. Это должно улучшить расчёт маршрута, остатка заряда и остановок на зарядку на дальних поездках.

Проверка

  • Сверил формат отправки с документацией Iternio Telemetry API.
  • IDE lint по изменённым файлам без ошибок.
  • Gradle-сборку локально не запускал: в окружении отсутствует Java Runtime/JDK.

Интеграция отправляет данные DiPlus и GPS в Iternio Telemetry API, чтобы ABRP мог точнее рассчитывать маршрут и остановки для зарядки во время поездки.
@AndyShaman
Copy link
Copy Markdown
Owner

Привет, Kostya, спасибо за работу!

Идея интересная и в духе проекта. Только принять PR пока не могу, просто потому что не получается протестировать. Не разобрался, где и как подключить машину к данным в ABRP, чтобы убедиться, что всё доходит.

Если подскажешь, что для этого нужно сделать с твоей стороны или с моей, буду благодарен. PR пока оставляю открытым.

Спасибо!

@AndyShaman
Copy link
Copy Markdown
Owner

Дополнение: ABRP пишет «данные в реальном времени недоступны». Что нужно сделать на стороне ABRP, чтобы канал открылся?

@trollnuulnuul7
Copy link
Copy Markdown
Author

Дополнение: ABRP пишет «данные в реальном времени недоступны». Что нужно сделать на стороне ABRP, чтобы канал открылся?

Привет! Нужно получить токен и передавать его. Чтобы получить токен ABRP нужно зайти в настройки автомобиля, нажать кнопку Подключить реальные данные, выбрать Generic и там будет виден токен. Когда соединение будет успешным во вкладке реальные данные появятся данные.

@trollnuulnuul7
Copy link
Copy Markdown
Author

trollnuulnuul7 commented May 1, 2026

@AndyShaman или если есть возможность, пришлите мне сборку с моим pull request, я протестирую функционал.
Правда, сделать смогу это до завтра только. Буду в отпуске потом.

@trollnuulnuul7
Copy link
Copy Markdown
Author

@AndyShaman мое преложение актуально) готов протестировать сборку.

@AndyShaman
Copy link
Copy Markdown
Owner

Привет! В ближайшее время хочу сам потестить сборку с твоим PR. Отпишусь чуть позже по результатам.

AndyShaman added a commit that referenced this pull request May 10, 2026
ABRP / Iternio Telemetry — живые данные машины в A Better Route Planner.
Cherry-pick PR #8 (@trollnuulnuul7 / Kostya) + доработки:
- GPS не передаётся (ABRP сам читает координаты из ОС на DiLink)
- Обогащение autoservice-полями: is_dcfc, kwh_charged, soh (Leopard 3)
- SOC обязателен; throttle сдвигается только на onSuccess
- UI: переключатель ABRP активен только при наличии токена
- README: новая секция с инструкцией получения Generic Live Data Token
@AndyShaman
Copy link
Copy Markdown
Owner

Привет, @trollnuulnuul7 — спасибо большое за интеграцию ABRP! 🙏

Влил твой код в main и доработал под реалии Leopard 3 + DiLink:

  • Убрана отправка GPS — ABRP на DiLink сам читает координаты через Android, дублирующий канал не нужен и потенциально утекает позицию на сторонний сервер.
  • Добавлено автообогащение через autoservice Binder (только Leopard 3): is_dcfc / kwh_charged / реальный SoH прямо из BMS.
  • Встроен community api_key (тот же что у OVMS / teslamate-abrp) — иначе Iternio отвечает HTTP 401, а пользователю знать про key не нужно.
  • Settings UI упрощён до одного поля «Токен живых данных» — остальное (api_key / car_model / interval) убрано.
  • capacity теперь берётся из пользовательской настройки «Ёмкость батареи» (72.9 кВт·ч), а не из DiPars batteryCapacityKwh — на Leopard 3 это поле возвращает ~4.5, ABRP видел неправильную цифру.
  • is_charging зажат до физического gun-state, иначе при стоянке регенерация / шум BMS триггерили ложную «зарядку» в ABRP.
  • Float → Double каст для JSONObject.put — на Android (не desktop JVM) overload put(String, float) отсутствует, без каста было NoSuchMethodError на устройстве.

Релиз ушёл: https://github.com/AndyShaman/BYDMate/releases/tag/v2.6.0

Закрываю PR — основа твоя, спасибо! 👍

@AndyShaman AndyShaman closed this May 10, 2026
@trollnuulnuul7
Copy link
Copy Markdown
Author

@AndyShaman спасибо, все работает!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants