AndyShaman/BYDMate
BYD DiLink app (3.0/5.0/5.1, UI7): split screen 1/3+2/3, navigation on instrument cluster, Yandex Navigator on HUD, blind-spot cameras on turn signal, Russian voice AI agent, real BMS consumption
About AndyShaman/BYDMate
AndyShaman/BYDMate is an open-source project on GitHub, mainly written in Kotlin. BYD DiLink app (3.0/5.0/5.1, UI7): split screen 1/3+2/3, navigation on instrument cluster, Yandex Navigator on HUD, blind-spot cameras on turn signal It currently holds 295 stars and 56 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Today's Trending board.
GitHub Repository Details
README
BYDMate
Trip Logger & Energy Analytics for BYD DiLink 5.0
Реальный расход, GPS-маршруты, автоматизация, AI-аналитика — локально, облако только по желанию.
Разделение экрана 1/3 и 2/3, навигация на приборной панели, подсказки Яндекс Навигатора на лобовом стекле, камеры слепых зон по поворотнику, голосовой помощник по-русски, телеметрия в ABRP.
Проверено на Leopard 3 (方程豹豹3), есть поддержка Sea Lion 07, Song, Atto 3, Seal, Han. DiLink 3.0, 5.0, 5.1 и прошивки с новым интерфейсом UI7 (OTA V1.6).
Возможности | Скриншоты | Автоматизация | Вывод на приборку | HUD | Разделение экрана | Голосовой агент | AI Инсайты | ABRP | Установка | Сборка | Релизы | Поддержать
---
Зачем это нужно
Штатный бортовой компьютер BYD занижает расход на 10-30%. BYDMate берёт данные напрямую из BMS (energydata) и показывает реальное потребление. Плюс данные, которых нет в штатной системе: расход на стоянке, баланс ячеек, стоимость поездок, AI-аналитика.
Все основные функции (поездки, зарядки, автоматизации, локальные инсайты, офлайн голосовой агент) работают локально на DiLink и не требуют интернета. Облачные функции выключены по умолчанию и включаются только вручную вводом ключа. Что именно и когда уходит в сеть, описано в разделе «Данные и сеть».
---
Что нового
Главное, что появилось в BYDMate после версии 3.0.
Расход и температура. На вкладке «Поездки» чип «Температура» открывает график: точка на каждую поездку, по горизонтали температура за бортом, по вертикали расход. Медианы по холоду, межсезонью и теплу и одна фраза-вывод, на сколько процентов зима дороже лета. Нужны 8 поездок с известной температурой, приложение запоминает её с этой версии.
Маршрут на разделённом экране и «Поехали» за вас. Скажите «поехали на работу»: ассистент сам свернёт разделение, построит маршрут в Яндекс Навигаторе, нажмёт «Поехали» и вернёт панели на место. На «построй маршрут домой» он только построит маршрут, кнопку нажмёте сами.
Разделение экрана на прошивках UI7. После обновления прошивки экран делит сама машина: панели 1/3 и 2/3, разделитель и жест обмена родные, BYDMate только запускает выбранную пару приложений. Выбор механизма в настройках на таких прошивках не показывается, он там один.
Триггер «Клавиша руля». Любую клавишу руля можно повесить на своё действие: Автоматизация, добавить триггер, «Клавиша руля», нажать нужную клавишу в режиме обучения. Выключили или удалили правило, клавиша снова работает по заводу.
Память о водителе. Агент запоминает имя и устойчивые предпочтения, если сказать ему об этом. Фраза «забудь …» убирает один факт, список фактов и кнопка «Забыть всё» в Настройки → Голос-агент → Агент.
Подсказки навигатора на лобовое стекло (HUD). Манёвр, дистанция до него, улица, время прибытия и знак ограничения скорости выводятся на заводской проекционный дисплей. Ведение продолжается, даже когда навигатор свёрнут или выведен на приборку. Нужна комплектация с HUD. Подробнее в разделе «HUD».
Разделение экрана 1/3 + 2/3. Два приложения на экране одновременно: навигатор пошире, музыка или мессенджер поуже. Запуск с виджета, из автоматизации и голосом. Если окна BYDMate на вашей прошивке недоступны, есть режим «Родное разделение» силами самой прошивки. Подробнее в разделе «Разделение экрана».
Камеры слепых зон. По включённому поворотнику картинка с боковой камеры сама появляется на приборке или в окошке на экране. Если сзади-сбоку обнаружена машина, окно подсвечивается оранжевой рамкой.
Голосовой AI-агент по-русски. Распознавание речи работает прямо в машине, без интернета. Простые команды исполняются мгновенно, остальное решает AI-агент: читает данные машины, управляет кузовом и климатом, строит маршруты, запускает сценарии и отвечает голосом. Подробнее в разделе «Голосовой AI-агент».
Ручной расчёт запаса хода. Если автоматический расчёт по истории поездок не подходит, в настройках батареи можно задать свою таблицу расхода в зависимости от температуры батареи.
---
Возможности
| | Функция | Описание | |---|---------|----------| | BMS | Реальный расход | Данные BMS (energydata), не бортовой компьютер. Тренд по скользящему окну 25 км | | GPS | Трекинг поездок | GPS-маршруты, дистанция, скорость | | Charge | Зарядки | Автоматическая запись AC/DC, статистика за период и за всё время, ручное добавление и редактирование | | AI | Инсайты | Анализ вождения: локальные правила на устройстве (по умолчанию) или LLM через OpenRouter | | TRIP | Счётчики TRIP 1/2 | Пробег, расход, время и стоимость с момента сброса (как в машине); сброс долгим нажатием, подробности по касанию | | Bat | Здоровье батареи и «Техника» | Карточка: SoH (на Leopard 3), температура, 12V, разброс ячеек, изоляция. Тап открывает экран «Техника» с живыми параметрами батареи, моторов, климата и шин, включая долю мощности перед/зад в процентах | | Map | Карта маршрута | osmdroid (OpenStreetMap) в деталях поездки | | Rules | Автоматизация | Правила WHEN→THEN: триггеры по параметрам → команды управления машиной | | Cluster | Вывод на приборку | Вывод выбранного приложения на приборную панель кнопкой руля (по умолчанию правая звезда) | | HUD | Проекция на лобовое | Манёвры, дистанция и знак ограничения скорости из Яндекс Навигатора на заводском проекционном дисплее | | Split | Разделение экрана | Два приложения сразу: окнами BYDMate в пропорции 1/3 и 2/3 либо штатным разделением прошивки | | Cam | Камеры слепых зон | Камера нужной стороны по включённому поворотнику: на приборке или в окошке на экране | | Voice | Голосовой агент | Русский офлайн-ассистент: распознавание речи на устройстве, AI-агент (32 инструмента), нейросетевая озвучка | | Widget | Плавающий виджет | 7 полей поверх других приложений: SOC, запас хода, расход + тренд, время, t° салона, t° батареи, 12V | | Auto | Автозапуск | WorkManager, запускается при включении | | CSV | Экспорт данных | Экспорт поездок и зарядок в CSV |
---
Скриншоты
Dashboard
Вокруг SOC-кольца расположены четыре значения в стиле плавающего виджета: сверху длительность поездки, одометр и температура в салоне; снизу пробег текущей поездки, расчётный запас хода и расход текущей поездки со стрелкой тренда. Цвета и логика тренда такие же, как в плавающем виджете, поэтому информация читается одинаково и на главном экране, и поверх других приложений.
Ниже кольца: AI-инсайт, малая карточка здоровья батареи (SoH на Leopard 3, температура, 12V), два счётчика TRIP 1 и TRIP 2, последние поездки, фильтр периода. Каждый счётчик показывает пробег, расход в кВт·ч (включая стоянку), время в пути и стоимость с момента сброса. Долгое нажатие сбрасывает счётчик, касание открывает детали.
AI Инсайты
Анализ эффективности вождения — расход, тренды, батарея, рекомендации (локально или через LLM)
Здоровье батареи
Температура, SoH (на Leopard 3), 12V аккумулятор, баланс ячеек, напряжение
Поездки
Аккордеон Месяц > День > Поездка с фильтрами и цветовой индикацией расхода
Чип «Температура» над списком открывает экран «Расход и температура»: точка на каждую поездку длиннее 5 км, линия медиан по 5-градусным полосам, медианы по холоду (ниже 0 °C), межсезонью (0…15 °C) и теплу (выше 15 °C) и вывод, на сколько процентов расход в холод выше. Поездки короче 5 км в график не попадают: там всё съедает прогрев. Нужно 8 поездок с температурой и разброс хотя бы в 15 °C, иначе экран честно скажет, чего не хватает.
Автоматизация
Правила КОГДА→ТОГДА, редактор условий и действий, настройки срабатывания
Настройки
Разделы: Голос-агент, Виджет, Дисплей, Разделение экрана, Авто и батарея, Места, Интеграции, Сервис и данные, Приложение
Разделение экрана
Две панели 1/3 и 2/3, виджет BYDMate поверх
---
Автоматизация
Вкладка Автоматизация позволяет создавать правила для автоматического управления автомобилем напрямую через системный интерфейс машины.
Принцип работы
КОГДА условие выполняется → ТОГДА выполнить команду.
Примеры:
- SOC < 20% → включить внутреннюю циркуляцию
- Скорость > 0 → закрыть шторку
- Температура за бортом < 0 → включить подогрев зеркал
Возможности
| | Описание | |---|----------| | Триггеры | SOC, скорость, температура, поворотник, передача, двери, окна, люк, багажники, давление шин, режим езды, точки-геозоны, время суток, точное время и промежуток с днями недели, клавиша руля, тап по виджету, голосовая фраза, запуск сервиса, появление интернета и др. Поворотники, передача, двери, окна, багажники и датчики слепых зон приходят в приложение в момент события, а не по опросу | | Команды | Окна (включая отдельные — водителя и пассажира), климат, свет, замки, люк, зеркала — напрямую через системный интерфейс машины | | 18 видов действий | Команда автомобилю, уведомление, запуск приложения, звонок, маршрут в Я.Навигаторе, открыть URL, Яндекс.Музыка, запуск ролика на YouTube, пауза, громкость медиа, охранный режим, точка доступа Wi-Fi, озвучить текст, запрос агенту, главный экран BYDMate, вывод на приборку, разделение экрана (запуск, закрытие, переключение), «Переключить» (кузов, климат, сиденья) | | Edge trigger | Срабатывает только при переходе false→true (не повторяется каждые 3 сек) | | Cooldown | Настраиваемая пауза между срабатываниями | | Overlay-подтверждение | Всплывающее окно «Отмена / Выполнить» перед действием. Таймаут 15 с → автоотмена | | Безопасность | Окна не открываются на скорости > 120 км/ч, люк > 80 км/ч, двери не отпираются > 30 км/ч, CAN/SHELL команды заблокированы | | Журнал | Лог всех срабатываний с результатами | | Шаблоны | 6 готовых правил для быстрого старта | | Выполнить сейчас | Ручной запуск правила из редактора, мимо триггеров и cooldown |
Действие «Переключить» одной кнопкой открывает и закрывает: багажник, передний багажник, люк, замки, вывод на приборку, аварийку, климат, подогрев и обдув сидений водителя и пассажира. Состояние берётся из машины. Сиденье, которое сейчас работает, выключится, а выключенное вернётся на ту ступень, которую вы задавали последней (по умолчанию третью).
Списки команд и параметров свёрнуты по разделам. Открыт только раздел с текущим выбором, остальные разворачиваются тапом по заголовку.
Логика
- AND — все условия должны выполняться
- OR — достаточно одного условия
- Только на P — правило срабатывает только когда авто на паркинге
Вывод на приборку
BYDMate умеет выводить выбранное приложение (по умолчанию навигацию) на приборную панель за рулём, чтобы карта и манёвры были перед глазами, а центральный экран оставался свободным.
Управление кнопкой руля
- Короткое нажатие выбранной кнопки переносит навигацию на приборку.
- Повторное короткое нажатие возвращает её на центральный экран.
- Удержание правой звезды работает штатно (меню машины), BYDMate его не перехватывает.
Включение
Откройте Настройки → Дисплей и включите тумблер «Проекция на приборку». Приложение само активирует нужный сервис (нужна выполненная активация ADB при установке, см. «Установка») и само переводит приборку в режим проекции: за это отвечает тумблер «Сразу показывать на приборке», он включён по умолчанию. На головном устройстве вручную ничего настраивать не нужно.
После этого короткое нажатие выбранной кнопки руля (по умолчанию правая звезда) переносит выбранное приложение на приборку и обратно.
Если «Сразу показывать на приборке» выключить, приборку придётся один раз перевести в режим проекции самому: иконка проекции на главном экране головного устройства, затем кнопка IPC на появившейся карте. Выключать стоит, если после вывода на приборку с неё пропадает ADAS или штатный виджет и не возвращается сам (на части прошивок DiLink 5.0 экран проекции живёт внутри штатной мини-карты): с выключенным тумблером приложение не трогает режим приборки, это касается и камер слепых зон, а картинка видна в мини-карте.
Режимы проекции: «Заводской» и «Расширенный»
В Настройки → Дисплей, рядом с тумблером проекции, выбирается режим вывода на приборку. Их два, и отличаются они тем, трогает ли приложение системные настройки машины.
«Заводской» (по умолчанию). Приложение не меняет ни одной системной настройки: проекция работает через виртуальный дисплей (картинка зеркалится на приборку), ползунки подстройки окна работают точнее. Ставится и удаляется бесследно. Ограничение: голосовой агент и HUD не видят экран навигатора во время проекции, подсказки о манёврах агент берёт только из уведомления Навигатора.
«Расширенный». Навигатор запускается отдельным окном прямо на дисплее приборки, поэтому голосовой агент и HUD видят маршрут во время проекции. Для этого приложение включает системную настройку оконного режима (enable_freeform_support). Режим включается только через диалог с объяснением, после включения нужна однократная перезагрузка головного устройства (долгое зажатие колёсика громкости). Новый режим применяется при следующем выводе на приборку.
На части прошивок (DiLink 4.0, Song Plus 2021 и похожие) экран приборки скрыт от приложений, и «Заводской» режим там работать не может: приложение само находит приборку через служебный канал и выводит навигатор «Расширенным» режимом, независимо от выбранного. Поддержка этих прошивок проверяется.
Как вернуть заводские настройки. Переключите режим обратно на «Заводской»: приложение сразу вернёт системную настройку к заводскому значению, а перезагрузка ДиЛинка полностью завершит возврат. После этого система в том же состоянии, что и до установки BYDMate.
Там же, под выбором режима, есть тумблер «Полный экран приборки». По умолчанию карта занимает верх приборки, а внизу остаётся штатная полоса со скоростью и основными показателями. Включите тумблер, если хотите карту на всю приборку без этой полосы. Работает только на прошивках с новым интерфейсом, на остальных ничего не меняет; применяется при следующем выводе на приборку.
Если вы пользовались проекцией в версиях до 3.7, при обновлении прежнее поведение сохранится автоматически: режим останется «Расширенный». У тех, кто проекцию не включал, приложение системные настройки не трогает вообще.
Выбор кнопки
По умолчанию проекцию включает правая звезда руля. Если этой кнопки нет или удобнее другая, под тумблером нажмите «Изменить» и нажмите нужную кнопку на руле, приложение её запомнит. Назначить можно любую кнопку руля, которую видит система. Системные кнопки (громкость, питание и т.п.), обзор 360 и карусель приборки назначить нельзя.
Какое приложение проецировать
По умолчанию на приборку выводится Яндекс.Навигатор. Под тумблером включения есть выбор приложения: можно указать любое установленное (другой навигатор, медиаплеер и т.д.). Новый выбор применяется при следующем нажатии кнопки.
Размер и положение окна
В разделе Настройки → Дисплей → «Размер окна на приборке» пять ползунков. Если на вашей машине проекция и так занимает всю приборку (например, Leopard 3), настраивать ничего не нужно: значения по умолчанию дают прежний полноэкранный режим.
- Ширина и Высота (20-100%) - размер окна в процентах от приборки. Уменьшенное окно освобождает место, штатная приборка просвечивает вокруг.
- Сдвиг по горизонтали (0-100%) - положение окна: 0 - левый край, 50 - центр, 100 - правый край. Действует, только когда ширина меньше 100%.
- Сдвиг по вертикали (0-100%) - то же по вертикали: 0 - верх, 50 - центр, 100 - низ.
- Масштаб (50-150%) - крупность интерфейса проецируемого приложения: чем меньше значение, тем мельче надписи и тем больше карты помещается в окне.
Машины с мини-окном на приборке (Sea Lion 07 и похожие)
На части моделей штатная приборка показывает проекцию не на весь экран, а в фиксированной зоне (на Sea Lion 07 - правая треть). Полноэкранное окно там обрезается. Решение: уменьшить окно и сдвинуть его в видимую зону ползунками выше.
Проверенные владельцем Sea Lion 07 значения: ширина 32%, высота 92%, сдвиг по горизонтали 100%, сдвиг по вертикали 6%, масштаб 90%.
Вывести окно на весь экран приборки на таких машинах не получится: зону показа задаёт прошивка панели, и она не управляется.
Как это устроено
Проекция работает в одном из двух режимов, описанных выше. В «Заводском» BYDMate создаёт виртуальный дисплей и зеркалит в него выбранное приложение, не меняя настроек системы. В «Расширенном» приложение запускается отдельным окном прямо на дисплее приборной панели, поэтому голосовой агент и HUD видят маршрут во время проекции. Чтобы перехватывать кнопки руля, приложение включает собственный сервис специальных возможностей (accessibility). Он работает только при включённом тумблере и нужен исключительно для выбранной кнопки. Прошивку и саму машину это не меняет, всё обратимо.
---
HUD
Если в машине есть заводской проекционный дисплей, BYDMate выводит на лобовое стекло подсказки Яндекс Навигатора: значок манёвра, дистанцию до него, название улицы и время прибытия. Отдельным тумблером включается знак ограничения скорости, он передаётся числом. Пока Навигатор предупреждает о камере, вместо стрелки манёвра показывается значок камеры и расстояние до неё. Ведение продолжается, даже когда Навигатор свёрнут или выведен на приборку; Яндекс Карты работают источником подсказок наравне с Навигатором.
Включается в Настройки → Дисплей, раздел «HUD (проекционный дисплей)»: тумблер «Навигация на HUD» и отдельно «Знак скорости под стрелкой». Подсказки идут по штатному каналу самого HUD, поэтому нужна комплектация с проекционным дисплеем. Если такого канала на машине нет, приложение честно пишет об этом в настройках и функцию не включает.
---
Камеры слепых зон
При включённом поворотнике BYDMate сам показывает картинку с боковой камеры: левый поворотник выводит левую камеру на приборку, правый показывает окошко на главном экране. Если датчик видит машину сзади-сбоку, окно подсвечивается оранжевой рамкой.
Включается в Настройки → Дисплей, раздел «Слепые зоны» (по умолчанию выключено). Там же настраиваются порог скорости, ниже которого камера не показывается, ширина окошка и его положение: кнопка «Настроить положение» показывает пустое окошко, которое перетаскивается пальцем туда, где будет камера. Если левая камера на приборке мешает, включите там же «Обе камеры на главный экран»: обе картинки будут показываться на планшете, приборка не трогается. Левое окошко по умолчанию стоит зеркально правому, а кнопка «Положение левой камеры» под тумблером задаёт ему своё место. Тумблер «Окно камеры вертикально» ставит окошко вертикально и поворачивает картинку на 90 градусов, как в зеркале: если после включения картинка повёрнута не в ту сторону, напишите в issue. Нужна комплектация с круговым обзором.
---
Голосовой AI-агент
Полноценный русский голосовой помощник внутри BYDMate. Речь распознаётся прямо на головном устройстве, без интернета: нейросеть GigaAM v3 слушает и понимает по-русски. Простые команды исполняются мгновенно локальным разбором, всё остальное решает AI-агент: языковая модель с 32 инструментами, которая сама читает данные машины, управляет функциями кузова, строит маршруты, запускает сценарии и отвечает голосом.
Почему русский, и только русский
Штатный голосовой помощник BYD уже нативно работает с английским и китайским. Делать ещё один английский помощник бессмысленно. BYDMate закрывает то, чего в машине нет вообще: русский язык. Поэтому распознавание речи, разбор команд и голоса озвучки заточены именно под русский, английская версия агента не планируется.
Как включить
1. Настройки → Голос-агент: включите тумблер «Голосовой AI-агент». Что должно произойти: ниже появятся поля имени, характера и рода агента. 2. Задайте ключ языковой модели: Настройки → Интеграции → AI подключения. Рекомендуем OpenRouter (регистрация на openrouter.ai, платно, доли цента за вопрос) и быструю модель, например Gemini Flash. Есть бесплатный вариант z.ai с моделью glm-4.7-flash, но он отвечает заметно медленнее. Третий вариант: свой OpenAI-совместимый сервер. Что должно произойти: у подключения появится отметка, что ключ задан. Можно указать и два подключения: при сбое основного агент сам переключится на второе. 3. Вернитесь в Голос-агент, раздел «Агент», и нажмите «Тест модели». Что должно произойти: под кнопкой появится название модели, время ответа и короткая фраза от агента. Если кнопка серая, ключ не сохранён: проверьте его в Интеграциях. Кнопка «Чат с агентом (отладка)» рядом позволяет проверить ответы текстом ещё до микрофона. 4. В разделе «Распознавание речи» нажмите «Скачать (226 МБ)», лучше по Wi-Fi. Что должно произойти: пойдут проценты загрузки, в конце строка сменится на «Модель готова». 5. В разделе «Кнопка и микрофон» включите тумблер «Голосовые команды» и разрешите микрофон. Что должно произойти: ниже покажется текущая кнопка руля. На Leopard 3 она уже назначена, на других машинах нажмите «Назначить кнопку» и один раз нажмите кнопку на руле. 6. Нажмите кнопку руля и скажите «Сколько заряда?». Что должно произойти: появится пилюля «Слушаю», после фразы короткий сигнал, через секунду-две ответ. 7. По желанию озвучка: раздел «Ответы агента», включите тумблер и скачайте голос (обычный 18-21 МБ, либо улучшенный Марк или Софья 145 МБ на двоих). Что должно произойти: агент начнёт отвечать вслух, без озвучки ответ остаётся текстом на экране.