Skip to content

AndyShaman/BYDMate

Repository files navigation

BYDMate icon

BYDMate

Trip Logger & Energy Analytics for BYD DiLink 5.0

Android Kotlin Jetpack Compose License GitHub release Sponsor

English | 中文 | Русский

Реальный расход, GPS-маршруты, автоматизация, AI-аналитика — локально, без облака.

Возможности | Скриншоты | Автоматизация | Вывод на приборку | AI Инсайты | ABRP | Установка | Сборка | Релизы | Поддержать


Зачем это нужно

Штатный бортовой компьютер BYD занижает расход на 10-30%. BYDMate берёт данные напрямую из BMS (energydata) и показывает реальное потребление. Плюс данные, которых нет в штатной системе: расход на стоянке, баланс ячеек, стоимость поездок, AI-аналитика.

Приложение работает полностью локально на головном устройстве DiLink 5.0 — никакие данные не покидают автомобиль (кроме двух опциональных функций, которые включаются вручную: AI-инсайты через OpenRouter и телеметрия в A Better Route Planner).


Что нового в v3.0.0

Большое обновление. BYDMate перешёл на собственный стек данных и научился выводить навигацию на приборную панель.

Свой стек данных, без D+. Раньше для доступа к данным машины BYDMate использовал стороннее приложение D+ (迪加). Теперь всё читается и команды отправляются напрямую через системный сервис автомобиля, без посредника. После установки и проверки приложение D+ можно удалить с DiLink. Из первоисточника читаются SOC, мощность, температуры, ёмкость, напряжение, состояние пистолета зарядки, SoH и пробег. Управление светом, климатом, окнами, зеркалами и багажником тоже идёт напрямую.

Яндекс.Навигатор на приборку. Выбранной кнопкой руля (по умолчанию правая звезда) навигация переносится на приборную панель и обратно на центральный экран. Кнопку можно переназначить обучением. По умолчанию проецируется Яндекс.Навигатор, но можно выбрать любое приложение. Подробнее в разделе «Вывод на приборку».

Зарядка во сне. Зарядка, прошедшая пока машина полностью спала и приложение было выключено, теперь восстанавливается корректно по двум точкам SOC. Раньше такая сессия могла потеряться.

Виджет и автоматизация. В виджет добавлены километры на 1% заряда и температуры салона, батареи и 12V. В автоматизацию добавлен триггер по точному времени и промежутку с выбором дней недели, а в редактор правил добавлена кнопка «Выполнить сейчас».


Возможности

Функция Описание
BMS Реальный расход Данные BMS (energydata), не бортовой компьютер. Тренд по скользящему окну 25 км
GPS Трекинг поездок GPS-маршруты, дистанция, скорость
Charge Зарядки Автоматическая запись AC/DC, статистика за период и за всё время, ручное добавление и редактирование
AI AI Инсайты Анализ вождения через LLM (OpenRouter)
Idle Расход на стоянке Мониторинг idle drain из energydata
Bat Здоровье батареи Температура, SoH (на Leopard 3), баланс ячеек, 12V
Map Карта маршрута osmdroid (OpenStreetMap) в деталях поездки
Rules Автоматизация Правила WHEN→THEN: триггеры по параметрам → команды управления машиной
Cluster Вывод на приборку Вывод выбранного приложения на приборную панель кнопкой руля (по умолчанию правая звезда)
Widget Плавающий виджет 7 полей поверх других приложений: SOC, запас хода, расход + тренд, время, t° салона, t° батареи, 12V
Auto Автозапуск WorkManager, запускается при включении
CSV Экспорт данных Экспорт поездок и зарядок в CSV

Скриншоты

Dashboard

Dashboard

Вокруг SOC-кольца расположены четыре значения в стиле плавающего виджета: сверху длительность поездки, одометр и температура в салоне; снизу пробег текущей поездки, расчётный запас хода и расход текущей поездки со стрелкой тренда. Цвета и логика тренда такие же, как в плавающем виджете, поэтому информация читается одинаково и на главном экране, и поверх других приложений.

Ниже кольца: AI-инсайт, малая карточка здоровья батареи (SoH на Leopard 3, температура, 12V), расход на стоянке, последние поездки, фильтр периода.

AI Инсайты (развёрнуто)

AI Insight expanded

Анализ эффективности вождения от LLM — расход, тренды, батарея, рекомендации

Здоровье батареи (развёрнуто)

Battery health

Температура, SoH (на Leopard 3), 12V аккумулятор, баланс ячеек, напряжение

Поездки

Trips accordion

Аккордеон Месяц > День > Поездка с фильтрами и цветовой индикацией расхода

Автоматизация

Automation

Правила КОГДА→ТОГДА, редактор условий и действий, настройки срабатывания

Настройки

Settings

Батарея, тарифы, валюта, AI-настройки (OpenRouter API), экспорт данных


Автоматизация

Вкладка Автоматизация позволяет создавать правила для автоматического управления автомобилем напрямую через системный интерфейс машины.

Принцип работы

КОГДА условие выполняется → ТОГДА выполнить команду.

Примеры:

  • SOC < 20% → включить внутреннюю циркуляцию
  • Скорость > 0 → закрыть шторку
  • Температура за бортом < 0 → включить подогрев зеркал

Возможности

Описание
Триггеры SOC, скорость, температура, двери, окна, давление шин, режим езды, точки-геозоны, время суток, точное время и промежуток с днями недели и др.
Команды Окна (включая отдельные — водителя и пассажира), климат, свет, замки, люк, зеркала — напрямую через системный интерфейс машины
8 видов действий Команда машины, тихое/звуковое уведомление, запуск приложения, звонок, навигация, URL, Яндекс.Музыка
Edge trigger Срабатывает только при переходе false→true (не повторяется каждые 3 сек)
Cooldown Настраиваемая пауза между срабатываниями
Overlay-подтверждение Всплывающее окно «Отмена / Выполнить» перед действием. Таймаут 15 с → автоотмена
Безопасность Окна не открываются на скорости > 80 км/ч, CAN/SHELL команды заблокированы
Журнал Лог всех срабатываний с результатами
Шаблоны 6 готовых правил для быстрого старта
Выполнить сейчас Ручной запуск правила из редактора, мимо триггеров и cooldown

Логика

  • AND — все условия должны выполняться
  • OR — достаточно одного условия
  • Только на P — правило срабатывает только когда авто на паркинге

Вывод на приборку

BYDMate умеет выводить выбранное приложение (по умолчанию навигацию) на приборную панель за рулём, чтобы карта и манёвры были перед глазами, а центральный экран оставался свободным.

Управление кнопкой руля

  • Короткое нажатие выбранной кнопки переносит навигацию на приборку.
  • Повторное короткое нажатие возвращает её на центральный экран.
  • Удержание правой звезды работает штатно (меню машины), BYDMate его не перехватывает.

По умолчанию проекцию включает правая звезда. Кнопку можно переназначить, см. «Выбор кнопки» ниже.

Включение

Перед первым использованием один раз настройте вывод штатной навигации на приборку, иначе системе некуда переносить проекцию.

1. На главном экране головного устройства нажмите иконку проекции на приборку (внизу слева, под иконкой-звездой). На приборке появится карта штатной навигации.

Иконка проекции на приборку на главном экране

2. На появившейся карте нажмите кнопку IPC в нижней панели, пока приборка не перейдёт в полноэкранный режим.

Кнопка IPC переводит приборку в полноэкранный режим

3. В BYDMate откройте Настройки → Дисплей и включите тумблер «Вывод на приборку кнопкой руля». Приложение само активирует нужный сервис (требуется выполненная активация ADB при установке, см. «Установка»), вручную ничего настраивать не надо.

После этого короткое нажатие выбранной кнопки руля (по умолчанию правая звезда) переносит выбранное приложение на приборку и обратно.

Выбор кнопки

По умолчанию проекцию включает правая звезда руля. Если этой кнопки нет или удобнее другая, под тумблером нажмите «Изменить» и нажмите нужную кнопку на руле, приложение её запомнит. Назначить можно любую кнопку руля, которую видит система. Системные кнопки (громкость, питание и т.п.), обзор 360 и карусель приборки назначить нельзя.

Какое приложение проецировать

По умолчанию на приборку выводится Яндекс.Навигатор. Под тумблером включения есть выбор приложения: можно указать любое установленное (другой навигатор, медиаплеер и т.д.). Новый выбор применяется при следующем нажатии кнопки.

Размер окна

В разделе Настройки → Дисплей → «Размер окна на приборке» два ползунка (ширина и высота, от 50% до 100%) задают размер проекции. Уменьшенное окно центрируется, штатная приборка просвечивает вокруг него.

Как это устроено

Проекция идёт через системный сервис автомобиля: BYDMate поднимает виртуальный дисплей на панели приборов и переносит туда выбранное приложение. Чтобы перехватывать кнопки руля, приложение включает собственный сервис специальных возможностей (accessibility). Он работает только при включённом тумблере и нужен исключительно для выбранной кнопки. Прошивку и саму машину это не меняет, всё обратимо.


Плавающий виджет

Компактный overlay 260×108 dp поверх других приложений — видно на карте, в медиа, в BYD-приложениях.

Расшифровка виджета: что где показано

Что показано

Семь полей в 3 строки. Цвета: иконки серые, значения белые. Рамка и SOC% подсвечиваются цветом статуса (SOC или 12V — что хуже).

Верхняя строка (мелким, 13sp):

  • Длительность текущей поездкиN мин или X ч Y мин (напр. 47 мин, 1 ч 12 мин). Старт — момент включения зажигания, конец — выключение. Простои с включённой машиной (стоишь с кондиционером, пассажир вышел купить воды, светофор) входят в поездку — пока электрика жива, счётчик не сбрасывается
  • 🚗 Температура в салоне — °C

Центральная строка (крупно, главные значения):

  • SOC % (18sp bold, цветной) — заряд тяговой батареи. Зелёный > 50%, жёлтый 20–50%, красный < 20%
  • ~N км (28sp белым) — расчётный запас хода: SOC × ёмкость батареи ÷ baseline-расход × 100. Тильда подчёркивает что это оценка, не показания БК. Подробнее про то, как считается baseline-расход, ниже в разделе «Запас хода»
  • X.X ↓ (18sp, цветной по тренду) — расход текущей поездки, кВт·ч/100км, со стрелкой тренда (см. ниже)

Нижняя строка (мелким, 13sp):

  • 🔋 Температура батареи — °C
  • 12V — напряжение бортовой сети, В. Норма 12.5–14.7 В, < 12.0 В = жёлтый, < 11.7 В = красный

Расход и стрелка тренда (правый блок)

Цифра справа — расход текущей поездки в кВт·ч/100км. Считается как энергия, потраченная с момента включения зажигания, делённая на пройденные с того же момента километры. По мере движения цифра сходится к тому значению, которое в итоге запишется в историю поездок: что видно в виджете в момент остановки, то и попадёт в карточку поездки.

Первые 2 километра виджет плавно переходит со среднего расхода прошлой поездки на расход текущей: до 300 м показывает прошлое значение, с 300 м до 2 км линейно подмешивает текущее, после 2 км показывает только текущее. Так не пугают резкие 50–60 кВт·ч/100км из холодного старта и разгона: пока поездка короткая, за основу берётся уже устоявшийся средний расход прошлой поездки, и только когда дистанция становится представительной, цифра уходит на собственный расход.

На стоянке (зажигание выключено) показывается средний расход прошлой завершённой поездки — то же значение, что было видно в её последний момент.

Запас хода ~N км считается по смеси: 50% веса берётся от последней завершённой поездки, 30% от предпоследней и 20% от той, что была до неё (короткие поездки до 3 км в расчёт не идут — это не репрезентативный пробег). Когда едешь длинную дорогу, к этой смеси добавляется ещё расход за последние 10 км текущей поездки: его доля растёт от нуля на первых трёх километрах до половины к 25 километрам. Так прогноз быстро подхватывает смену стиля (городской хвост перед трассой, обратно с трассы в город), но не дёргается на коротких заездах и стоянках с климатом.

Стрелка тренда появляется после 2 км пробега и сравнивает скользящее 25-километровое среднее с твоим обычным стилем (среднее по последним 10 поездкам):

  • ↓ зелёная — едешь экономнее обычного
  • → белая (стрелка прямая) — в пределах обычного
  • ↑ жёлтая — расход выше обычного

Стрелка не дёргается от каждой остановки на светофоре — есть небольшая инерция: чтобы стрелка сменила цвет, расход должен заметно отличаться от обычного и держаться так минимум минуту.

Что такое «поездка» для этой цифры. Один цикл зажигания: включил → выключил. Стоянка с включённым кондиционером внутри поездки учитывается естественно — лишние кВт·ч попадают в общий знаменатель. Короткие блипы (светофор, переподключение) не раскалывают поездку на две. Если DiLink прибьёт приложение посреди трассы — после рестарта счёт продолжается с реального момента включения зажигания, а не с нуля.

Управление

  • Обычный тап — открыть BYDMate
  • Долгий тап (1.5 сек) — скрыть до следующего открытия BYDMate
  • Перетащить в корзину — выключить совсем
  • Включение, прозрачность, сброс позиции — в Настройки → Плавающий виджет

Зарядки

Вкладка Зарядки автоматически ведёт журнал реальных пополнений заряда: список зарядок по месяцам, статистика за период и за всё время, фильтры AC и DC. Не каждое подключение пистолета становится записью: запись создаётся только если SoC реально вырос. Если кто-то ткнул пистолет и вынул через минуту, в журнал ничего не попадёт.

Что засчитывается как зарядка

Запись пишется, если за время сессии у машины выросла либо ёмкость батареи, либо SoC. BYDMate пробует три источника данных по очереди и берёт первое пригодное значение:

  1. Прирост ёмкости в кВт·ч, если бортовая система сообщила обновлённое значение.
  2. Прирост SoC за активную сессию, переведённый в кВт·ч по текущей ёмкости батареи.
  3. Грубая оценка по дельте SoC от полной номинальной ёмкости, если первые два варианта пустые.

Если BYDMate работает в момент зарядки, запись появляется сразу. Если подключение случилось до запуска приложения или машина уехала в глубокий сон, BYDMate догоняет запись на следующем старте, как только увидит, что SoC прыгнул вверх по сравнению с тем, что было до зарядки. Поэтому даже offline-зарядки в гараже попадают в журнал.

Как определяется AC или DC

Тип зарядки определяется по двум сигналам, по приоритету:

  1. Тип разъёма от бортовой системы: gun-state 2 = AC, 3 или 4 = DC. На некоторых моделях BYD значение приходит не всегда, тогда работает следующий пункт.
  2. Средняя мощность сессии: больше 15 кВт = DC, иначе AC. AC-зарядка физически не выдаёт больше 11 кВт, DC-станции стартуют от 22 кВт (CCS slow), поэтому порог 15 кВт уверенно разделяет два режима.

На вкладке Зарядки три фильтра: «Все», «AC», «DC».

Ручное добавление и редактирование

Если запись не появилась автоматически или цифры выглядят странно:

  • Кнопка + зарядка в шапке вкладки: добавить сессию вручную с указанием даты, длительности, кВт·ч, тарифа.
  • Долгое нажатие на запись: открывается меню «Изменить» / «Удалить». В режиме редактирования можно поправить любое поле уже сохранённой зарядки.

Функция в активном тестировании. На Leopard 3 пишется стабильно. На других моделях BYD автоматика может сработать неточно: например, бортовая система не сообщит мощность или тип разъёма, тогда AC и DC может определиться неправильно. В таких случаях правьте записи вручную и при возможности присылайте логи в Issues.


Здоровье батареи (SoH)

SoH (State of Health) — это процент «здоровья» тяговой батареи, который рассчитывает сама бортовая система автомобиля по своим внутренним алгоритмам.

На BYD Leopard 3 (Fangchengbao Bao 3) BYDMate берёт это значение напрямую из бортовой системы и показывает в карточке «Здоровье батареи». Это реальный SoH от машины, а не оценка по разнице SoC: BYDMate просто читает то, что пишет себе сама машина.

На других моделях BYD доступ к этому значению пока не подтверждён, поэтому SoH там не отображается. Остальные показатели карточки (температура батареи, 12V, баланс ячеек, минимальное и максимальное напряжение) работают на всех поддерживаемых моделях.

Если в вашей машине SoH доступен и вы хотите помочь добавить поддержку, заведите Issue с указанием модели и года выпуска.


SoH и автоматическая запись зарядок (Leopard 3)

SoH и автоматическая запись зарядок на Leopard 3 работают автоматически, отдельно ничего включать не нужно. BYDMate читает значения напрямую от бортовой системы автомобиля, как только активна беспроводная ADB-отладка.

  1. Убедитесь, что ADB-отладка активна (см. раздел «Установка»).
  2. SoH появится в карточке «Здоровье батареи», а зарядки начнут записываться автоматически с реальными значениями кВт·ч.

На Leopard 3 эти функции протестированы. На других моделях BYD доступ к этим данным не подтверждён, тогда SoH и точная мощность зарядок могут не появиться, но остальные функции BYDMate работают как обычно.


Если у вас не Leopard 3

BYDMate разрабатывается и тестируется на BYD Leopard 3 (Fangchengbao Bao 3). На других моделях BYD большинство функций тоже работает, но есть отличия. Перед первым запуском проверьте:

  • История поездок: на Leopard 3 (Fangchengbao Bao 3) BYDMate читает поездки из встроенной BMS-базы energydata. На моделях без этой базы (Song, Yuan и аналоги) поездки теперь записываются нативно, фоновым опросом параметров машины (источник NATIVE_POLLING), так что список больше не пустой. Расход в таких поездках считается по дельте SoC, поэтому он чуть грубее, чем на Leopard 3, где данные берутся из BMS.
  • Ёмкость батареи: по умолчанию 72.9 кВт·ч под Leopard 3. Зайдите в Настройки → Батарея и поставьте свою ёмкость. Например, Atto 3 = 60.5 кВт·ч, Seal AWD = 82.5 кВт·ч, Han EV = 85.4 кВт·ч. Без этого расчёт запаса хода и стоимости поездок будет неточным.
  • SoH: показывается только на Leopard 3. На других моделях карточка «Здоровье батареи» работает без поля SoH.
  • Зарядки: алгоритм AC и DC проектировался под Leopard 3. На других моделях запись может появиться с задержкой или с неточной мощностью, особенно для DC. Используйте ручное добавление и редактирование, если автоматика промахнулась.
  • Автоматизация и плавающий виджет: работают одинаково на любой модели, потому что используют системный интерфейс машины.

Если что-то не работает или показывает странное, заведите Issue с указанием модели машины и версии прошивки DiLink. Нам нужны такие отчёты, чтобы расширять поддержку.


Целевое устройство

Параметр Значение
Платформа DiLink 5.0 (Android 12, API 32)
Процессор Snapdragon 780G
Экран 15.6" landscape, 1920x1200
GMS Нет (AOSP без Google Play Services)
Протестировано BYD Leopard 3 (Fangchengbao Bao 3)

Как работает

BYD energydata (BMS SQLite)  →  HistoryImporter    →  Room DB  →  Compose UI
autoservice (системный Binder) →  TrackingService   ↗     ↓
Android LocationManager     →  TripTracker (GPS)    ↗   AI (OpenRouter)
autoservice (запись команд)  ←  AutomationEngine   ←  Rules (Room DB)
Данные Источник
Расход, пробег, длительность BYD energydata (BMS)
SOC, скорость, температуры Системный сервис машины (autoservice Binder)
Напряжение ячеек, 12V, SoH Системный сервис машины (autoservice Binder)
GPS координаты Android LocationManager
AI-аналитика OpenRouter API (опционально)
Управление авто Системный сервис машины (запись команд)

Без OBD-адаптера и без стороннего D+. BYDMate читает данные и управляет машиной напрямую через системный сервис autoservice (тот же, что использует штатная система BYD) под shell-доступом по беспроводной ADB.


Установка

1. Активация ADB

Без ADB BYDMate работает в базовом режиме. Включённая ADB-отладка нужна для следующих фич:

  • Здоровье батареи (SoH) — точное значение из BMS вместо прочерка.
  • Автоматический журнал зарядок — приложение само фиксирует начало и конец сессии. Без ADB зарядки можно добавлять только вручную.
  • Автоматизация — триггеры и действия (управление стёклами, климатом, светом и т.д.). Без ADB вкладка «Автоматизация» не работает.

Без ADB остаются доступны: трекинг поездок и пробега, расход энергии, виджет, AI-инсайты.

Эти фичи включаются автоматически, отдельный переключатель не нужен. При первом запуске BYDMate DiLink один раз покажет диалог «Allow ADB debugging» — нажмите Allow и поставьте галочку «Always allow from this computer», чтобы он не спрашивал заново.

  • DiLink 3 / 4 — ADB можно активировать самостоятельно: установите BydDevelopmentTools, зайдите в Настройки → Version Management, 10 раз тапните по тексту Reset to factory default, активируйте Debug Mode when USB is Connected и Wireless adb debug switch. На обновлённых прошивках DiLink 3/4 ADB может быть так же закрыт, как на DiLink 5 — тогда придётся идти по пути ниже.

  • DiLink 5.0 — ADB-отладка заблокирована и открывается только удалённо из Китая. Сделать это можно через продавцов на TaoBao (поиск по DiLink 5.0, ~40 ¥ внутри Китая / ~80 ¥ извне, оплата через AliPay). Продавец удалённо открывает инженерное меню по присланному QR-коду, после чего ADB включается штатно.

    Пошаговая инструкция: PDF-гайд (русский) — приложен в репозитории.

2. DiPlus (D+) больше не нужен

Начиная с версии 3.0.0 BYDMate работает напрямую с системой машины и не требует стороннего приложения D+ (迪加). Все данные читаются и команды отправляются через системный сервис автомобиля.

Если вы пользовались прежними версиями и устанавливали D+, после проверки работы BYDMate его можно удалить с DiLink.

3. Установка BYDMate

  1. Скачайте BYDMate APK из Releases
  2. Перенесите на DiLink: через USB-флешку, по сети, или через ADB (adb install BYDMate.apk)
  3. Разрешите установку из неизвестных источников, если потребуется

4. Первый запуск

  1. Откройте BYDMate — появится мастер настройки
  2. Выдайте разрешения на локацию и хранилище (для GPS и чтения energydata)
  3. Укажите тарифы на электроэнергию (для расчёта стоимости поездок)

5. Фоновая работа

Важно: отключите "Disable background Apps" для BYDMate, иначе DiLink будет убивать приложение:

Disable background apps — toggle OFF for BYDMate

DiLink > Settings > General > Disable background Apps > BYDMate = OFF

6. Настройка (опционально)

В Настройках можно изменить:

  • Ёмкость батареи — по умолчанию 72.9 кВт·ч (Leopard 3)
  • Тарифы — домашний (AC) и быстрая зарядка (DC), валюта
  • Пороги расхода — границы для цветовой индикации (зелёный/жёлтый/красный)

AI Инсайты

BYDMate может анализировать вашу статистику вождения с помощью AI (LLM). Это опциональная функция — приложение полностью работает и без неё.

Настройка

  1. Зарегистрируйтесь на OpenRouter (бесплатно)
  2. В личном кабинете OpenRouter создайте API Key (раздел Keys)
  3. В BYDMate откройте Настройки → раздел AI Инсайты
  4. Вставьте API-ключ в поле "OpenRouter API Key"
  5. Нажмите "Выбрать модель" — откроется список доступных LLM (есть бесплатные)
  6. Нажмите "Сохранить и получить инсайт"

Что анализирует

AI получает обезличенную статистику за 7 и 30 дней и возвращает:

  • Факты — метрики, рассчитанные из реальных данных (расход с трендом, % коротких поездок, idle drain)
  • Инсайты — корреляции, аномалии и поведенческие рекомендации от LLM

Запрос отправляется раз в день. Результат кэшируется локально. Никакие персональные данные (GPS, маршруты) не передаются — только агрегированная статистика.


ABRP — Live телеметрия

BYDMate может отправлять живые показатели машины в A Better Route Planner (ABRP) через официальный Iternio Telemetry API. ABRP использует эти данные, чтобы план маршрута и оценка остатка хода обновлялись по реальному состоянию батареи, а не по средним табличным значениям.

Функция опциональная, выключена по умолчанию и включается вручную в Настройках.

Как получить токен

ABRP использует «Generic Live Data Token» — отдельный токен на каждую машину в гараже:

  1. Откройте abetterrouteplanner.com и войдите в аккаунт.
  2. Перейдите в гараж и откройте машину, на которой хотите видеть live-данные. Машина должна быть сохранена в гараж, иначе токен не появится.
  3. Шестерёнка «Настройки автомобиля» → раздел «Данные» → кнопка «Подключить актуальные данные».
  4. В списке провайдеров выберите «Generic» и нажмите «Привязать». Появится длинная строка-токен — это и есть User Token.

Если в списке нет «Generic»: смените код модели машины в гараже ABRP на любую популярную модель BYD (например, BYD Atto 3 или BYD Seal), сохраните, и Generic появится. После привязки токена код модели можно вернуть обратно.

Настройка в BYDMate

  1. Настройки → раздел «ABRP — телеметрия».
  2. Вставьте полученный токен в поле «Токен живых данных из ABRP».
  3. Опционально: код модели ABRP (если знаете точный код своей машины из библиотеки ABRP) и интервал отправки (5–120 сек, по умолчанию 12 сек — рекомендуемое значение Iternio).
  4. Нажмите «Сохранить ABRP», затем включите переключатель «Живые данные → A Better Route Planner». Без сохранённого токена переключатель остаётся неактивным.
  5. ABRP-приложение на DiLink (или браузер на телефоне) теперь будет видеть актуальный SOC, мощность, температуры, заряд.

Что отправляется

Только агрегированные показатели машины, без идентификаторов:

  • SOC — текущий процент заряда тяговой батареи
  • Speed — скорость, км/ч
  • Power — текущая мощность тяги (отрицательная при зарядке, как требует Iternio)
  • Battery / cabin / exterior temp — температуры батареи, салона и за бортом
  • Capacity — номинальная ёмкость батареи
  • Odometer — пробег, км
  • Tire pressures — давление в шинах (4 колеса)
  • is_charging / is_parked — флаги состояния
  • is_dcfc / kwh_charged — тип зарядной станции (DC vs AC) и количество кВт·ч в текущей сессии
  • soh — реальный SoH батареи (Leopard 3)

Что НЕ отправляется

  • GPS-координаты не передаются. ABRP запускается как отдельное приложение Android прямо на DiLink и читает геопозицию из ОС сам. Дублировать координаты через сторонний канал не нужно — это лишь утечка позиции на чужой сервер.
  • Не отправляются: VIN, идентификатор устройства, история поездок, маршруты, пользовательские настройки.

Как ABRP считает остаток хода

ABRP подбирает прогноз на основе модели машины из своей библиотеки + телеметрии: текущий SOC, температура батареи, скорость движения, ветер, профиль дороги, перепады высот. Свой собственный «расчётный остаток хода» BYDMate в ABRP не передаёт — у ABRP есть собственный, более точный расчёт под конкретный маршрут, в котором учитывается погода и рельеф.


Сборка из исходников

# Требуется: JDK 17, Android SDK 34
git clone https://github.com/AndyShaman/BYDMate.git
cd BYDMate
./gradlew assembleDebug

Стек технологий

  • Kotlin 2.1 + Jetpack Compose + Material 3
  • Room (SQLite) + Hilt (DI) + OkHttp
  • osmdroid (OpenStreetMap) + Coroutines/Flow
  • Min SDK 29 / Target SDK 29 / Compile SDK 34

Благодарности

  • BYD Trip Info (org.jayb.bydapp) by jayb — оригинальное приложение для DiLink, вдохновение для BYDMate
  • DiPlus (迪加) by Van Design — приложение-мост к данным автомобиля, использовалось в ранних версиях BYDMate (с 3.0.0 больше не требуется)

Поддержать проект

Проект некоммерческий, делаю как хобби. Если захочется поблагодарить, реквизиты в SUPPORT.md. Если нет, всё равно спасибо за доверие.


Лицензия

GPLv3 с дополнительными условиями атрибуции. См. LICENSE для деталей.

Copyright (C) 2026 AndyShaman


English version: README.en.md

About

Android app for BYD DiLink 5.0: real consumption from BMS, GPS trips, charges journal, automation rules, floating widget, AI insights. Bilingual RU/EN. Tested on Leopard 3 / Fangchengbao Bao 3.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages