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

История версий

Скачать актуальное приложение Android: https://mytechnic.ru/cartelemetry/download.php?file=app

v3.3.11 (текущая)

  • Бета-канал обновлений: в настройках можно переключаться между стабильным и бета-каналом; бета-сборки нумеруются X.Y.Z-beta.N и корректно сравниваются по версии.
  • Источники в настройках переработаны: система (GPS/датчики устройства) всегда включена; остальные источники добавляются из списка и включаются по отдельности, со счётчиком ожидаемых сенсоров; настройки ADB/DiPlus появляются после добавления соответствующего источника.
  • Авто-запуск после обновления: сервис перезапускается после установки новой версии.
  • Статус на телефоне: при доступных системных данных вместо «Нет данных» показывается «Системные датчики активны».
  • Документация: обновлён список сенсоров (разделение батарей, новые Voyah-сенсоры).

v3.3.10

  • Калькулируемые сенсоры в правилах: окна/двери (открыто/закрыто) теперь доступны как условия в редакторе правил и в списке телеметрии.
  • Быстрый старт: при запуске значения сенсоров видны сразу (восстанавливаются последние значения) — не нужно ждать первый CAN-цикл.
  • «Липкие» сенсоры: значение, переставшее обновляться, остаётся видимым, но гаснет до серого («возможно не актуально»).
  • Универсальная интеграция: нативные сенсоры (связанные с командами + общие) — обычные сущности; уникальные для авто — атрибуты диагностической сущности.
  • Батареи разделены явно: device_battery (устройство), battery_12v_voltage (12В АКБ), тяговая батарея (soc, battery_capacity, traction_battery_voltage/current, температуры, ячейки).
  • Новые сенсоры Voyah: оставшееся время зарядки, средняя скорость, средняя мощность, рекуперация, поток энергии.

v3.3.9

  • Исправлена ошибка интеграции: при первом появлении нового сенсора интеграция падала с AttributeError: 'EntityRegistry' object has no attribute 'async_enable' и TypeError: HomeAssistantView.json() ... 'status' — сенсоры не включались. Заменено на корректные вызовы (async_update_entity(..., disabled_by=None) и status_code=).

v3.3.8

  • Единый источник данных сенсоров: все хранилища (значения/сырые/кэш) сведены в один ValueStore с уведомлением об изменениях — правила, дашборд и телеметрия читают одни и те же актуальные значения.
  • Отключённые источники пробуются периодически: канал, который стал доступен позже (включили ADB, появился DiPlus), автоматически подхватывается — лёгкая проверка раз в несколько циклов.
  • Правила реагируют мгновенно: при изменении сенсора пересчитываются только правила, которые на него ссылаются (не весь набор раз в секунду).
  • Команды обрабатываются очередью: отдельный поток сериализует команды из HA/интерфейса, а проверка завершения ждёт обновления сенсора от канала (по статусу), а не повторяет команду.
  • Оптимизация: правила больше не перечитывают свой JSON-файл каждую секунду.

v3.3.7

  • Все включённые источники сенсоров работают одновременно: убран короткий цикл выбора источника — раньше после перестановки приоритета каналов первым отвечал dumpsys (VVIN/прошивка), и DiPlus/ADB не читались, из-за чего сенсоры «пропадали» из телеметрии и появлялась ошибочная рекомендация подключить ADB. Теперь каналы читаются все и мержатся (приоритет канала определяет, чьё значение побеждает по сенсору).

v3.3.6

  • Плитка «Громкость» снова показывает значение: пресет ссылался на DiPlus-сенсор media_volume, а приложение теперь пишет системный system_media_volume — на телефонах и OBD2-адаптерах плитка была пустой.
  • Сенсоры DiPlus больше не «пропадают» из телеметрии: кэш unsupported-сигналов больше не сбрасывается при каждом запуске (версия сохраняется после очистки), а классификация сенсоров учитывает живой DiPlus, а не только устаревший снимок исследования.
  • Убрана ложная подсказка про устаревший домен teplitzky.ru (путала личный HA на поддомене со старым сайтом проекта).

v3.3.5

  • Автообновление больше не ставит старую версию: при повторном использовании уже скачанного файла учитывалась только приставка «car2hass», из-за чего остаток Car2Hass-3.3.2.apk из Downloads перекрывал свежий 3.3.4 — теперь при заданной версии ищется только файл с этой версией в имени.
  • Подсказка «обновите интеграцию» стала честной: раньше висела всегда, теперь показывается только когда интеграция действительно устарела (проверка версии через /api/cartelemetry/info) и исчезает после успешного теста подключения.

v3.3.4

  • GPS-трек больше не «прыгает»: устаревший last-known-фикс больше не затирает свежую позицию, а на стороне интеграции точки с не-растущим временем фикса отбрасываются — при повторной отправке буфера после сбоя сети трек не уезжает к старым координатам.
  • Вкладка «Телеметрия»: раскрытие/сворачивание групп теперь запоминается (раньше состояние сбрасывалось каждые 2 секунды), а список не мигает — лишние перерисовки убраны.
  • Тест подключения стал понятнее: предупреждение при устаревшем домене (teplitzky.ru), детекция редиректа (адрес мог смениться) и внятные сообщения об ошибках SSL/соединения вместо сырого текста.

v3.3.3

  • Плитки дашборда: замки дверей показывают реальное состояние (remote_lock_state); громкость — реальный уровень медиа (system_media_volume, шкала 0–30); подогрев руля/зеркал/ лобового привязаны к фактическим фидбекам (steering_wheel_heat, rear_defrost).
  • Калькулируемые сенсоры: добавлены агрегаты «открыто окон/дверей» и «все окна/двери закрыты» (вычисляются локально из CAN-сигналов).
  • Сенсоры устройства: батарея, давление, громкость теперь помечены отдельным типом device (раньше относились к типу gps) — честная классификация источника.
  • Команды из HA восстановлены (критично): вью /api/cartelemetry/commands потеряла обработчики get/post при переезде API на /api/cartelemetry (регресс с v3.0) — команды из Home Assistant в приложение не доходили. Теперь снова работают.
  • Проверка версии интеграции: новый эндпоинт GET /api/cartelemetry/info отдаёт версию интеграции и версию протокола; приложение сравнивает с требуемой и при несовпадении показывает точное «обновите интеграцию до vX», а не догадку по HTTP-коду.
  • Надёжность endpoint: POST /api/cartelemetry защищён от «глухого» 500 — ошибка логируется с трейсбеком и возвращается понятным JSON вместо пустой страницы.
  • ADB без спама: экспоненциальный backoff при недоступном ADB-демоне — OBD/Voyah-устройства больше не пытаются подключиться каждые несколько секунд и не сыплют ошибки в лог.

v3.3.2

  • Автообновление стало надёжным: при скачивании APK приложение проверяет целостность файла по контрольной сумме SHA-256, публикуемой сервером (endpoint версии), и не ставит битый/обрезанный файл. Исправлено скачивание «битого APK» на головных устройствах: устаревшие файлы .bin/обрезки от прошлых попыток больше не подхватываются на установку (валидация zip-заголовка на всех путях).

v3.3.1

  • Настройки Home Assistant: подсказка обновить интеграцию CARTelemetry до последней версии (устаревшая интеграция не отдаёт команды и новые сенсоры — опрос команд в логах давал HTTP 404).
  • Правки по логам: опрос команд при отсутствии эндпоинта (устаревшая интеграция) больше не спамит лог — пауза 5 минут, предупреждение раз в 10 минут; защита от NPE в пуле executors (diplusGetDiPars); сенсор погоды теперь переводит солнечно/облачно/пасмурно/снег/туман/гроза; OBD-воркер логирует фазу и тайминги цикла (open/warmUp/read) — удобнее диагностировать обрывы Bluetooth.

v3.3.0

  • Voyah: расширена read-only телеметрия с 29 до 50 сенсоров — добавлены скорость, передача, ремни безопасности, люк и шторка, все четыре окна, габариты, поворотники, аварийка, круиз/ACC/удержание полосы, автоудержание (EPB), режим движения и др. (параметры VehicleState из прошивки).
  • Автообновление: APK больше не «теряет расширение» (не становится *.bin) на головных устройствах Voyah — файл качается в приватное хранилище приложения со своим именем; сервер отдаёт APK напрямую с корректными заголовками Content-Type/Content-Disposition.

v3.2.9

  • Тест соединения (шаг 2): отправляется реальное имя авто из настроек + один валидный снапшот (вместо «test» и пустого batch); в лог пишется URL запроса и тело ответа.

v3.2.8

  • Интеграция: исправлена ошибка "disabled_by must be a RegistryEntryDisabler value" — деактивация сенсоров/команд теперь использует enum, а не строку.

v3.2.7

  • OBD-воркер: фоновая сессия использует обычный open() — не требует разрешения BLUETOOTH_SCAN на Android 12+ (раньше цикл падал каждые 2с с SecurityException).

v3.2.6

  • Отправка лога: чтение logcat ограничено (не «молчит» при отправке); чанки 500 КБ; логирование этапов отправки; таймаут на диалог очереди.

v3.2.5

  • Отправка лога без обрезки: большой журнал грузится чанками по 2 МБ, сервер склеивает части в один лог (ранее >4 МБ отклонялось как payload_too_large).
  • Диагностика отправки: код HTTP и размер в логе.

v3.2.4

  • Исправлен краш при старте: setupEnabledFilterListeners обращался к null-адаптеру после перехода на ExpandableListView; чтение отчёта переведено на java.io (совместимо с Android 7).

v3.2.3

  • Вкладка «Телеметрия»: ExpandableListView — сенсоры раскрываются под своим заголовком группы; состояние раскрытия групп запоминается (по умолчанию открыта «Активные»).
  • Отправка лога: размер журнала ограничен 3 МБ (иначе сервер отклонял >4 МБ как payload_too_large → «не доставлен»).

v3.2.2

  • «Отправить лог» теперь формирует полный журнал работы (LogBuffer + logcat + отчёт исследования при наличии) — больше никогда не отправляется пустой лог.

v3.2.1

  • Отправка лога: берётся сохранённый отчёт исследования (probe_report.json), даже если исследование только что не запускалось; честное сообщение «лог не доставлен», если он остался в очереди.
  • Вкладка «Телеметрия»: CAN-цикл больше не перезаписывает список (только ValueStore-тикер) — исчезает «мигание» между полным списком и fw/vvin.

v3.2.0

  • Вкладка «Телеметрия» — пайплайн сенсоров: сворачиваемые группы «Активные / Ожидаемые / Недостижимые / Отключенные (с данными) / Отключенные»; системные сенсоры неотключаемые и всегда зелёные; серые — только отключенные и недостижимые; «Ожидаемые» после удачной пробы.
  • Отправка: отключенные сенсоры не передаются в HA (оба пути снапшота).
  • Интеграция: приложение передаёт disabled_signals; отключенные сенсоры и зависимые команды деактивируются в устройстве HA (карта COMMAND_DEPENDS_ON), выбор пользователя уважается.

v3.1.1

  • Вкладка «Телеметрия»: видимые группы «Активные / Отключенные (с данными) / Ожидаемые / Отключенные / Недостижимые»; список никогда не пуст (фолбэк + стики-значения).
  • Снапшоты: GPS-точки несут реальное время фикса (location_t) — устаревшая базовая локация больше не «прыгает» в трекере к началу движения.
  • 500 на /api/cartelemetry: ветка «integration not loaded» логируется в HA.

v3.1.0

Новая архитектура (модель воркеров):

  • ValueStore — общий поток значений всех сигналов; каналы пишут, вкладка и снапшот читают независимо от CAN-цикла.
  • SystemWorker — system-сенсоры (локация + база last-known, батарея, громкость, давление) гарантированно есть на любом Android-устройстве (обычный смартфон без авто).
  • Вкладка «Телеметрия» — живые сенсоры зелёными сверху, ожидаемые серыми ниже (по алфавиту), выключенные — в конец групп; системные сенсоры всегда; спойлер «Показать недостижимые».
  • ObdWorker — постоянная BT-сессия + периодический опрос PID + переподключение.
  • ChannelWorker — pull-каналы (DiPlus/ADB/dumpsys/voyah) пишут в ValueStore.
  • Интеграция (Вариант 1): сенсоры создаются disabled-by-default (под спойлером «Отключено»), включаются при первых данных и не теряются; core-сенсоры всегда активны.
  • Тест локации — кнопка в настройках (permission/последний фикс/ValueStore).

v3.0.39

  • Локация: базовая линия гарантирована — last-known (GPS/NETWORK/PASSIVE) пишется в снапшот при старте и в каждом тике при устаревшем фиксе; фильтр точности смягчён (до 1000м, точность передаётся в HA); в отчёт добавлена диагностика локации (loc_permission / loc_last_known_age_sec / loc_provider).

v3.0.38

  • OBD: прерывистый сбой RFCOMM-подключения («read failed … read ret: -1») — добавлен повтор connect с короткой паузой в обычном пути (probe/read/авто-коннект).
  • OBD: если автоопределение протокола не завершается (SEARCHING…) — пробуем явные CAN-протоколы ATSP7 (11-бит) и ATSP6 (29-бит); при успехе фиксируется obd_protocol.

v3.0.37

  • OBD-пикер: помимо сопряжённых устройств — поиск новых Bluetooth-устройств «в эфире» (скан 12с), сопряжение и подключение (как Car Scanner).

v3.0.36

  • Локация: всегда-базовая линия — при отсутствии живых GPS-фиксов используется last-known локация (GPS/NETWORK/PASSIVE) и пишется в снапшот; обновляется при старте и при устаревшем фиксе (>30с).
  • OBD: включение протокола сразу подключает адаптер (как Car Scanner — автоопределение + connect + init), авто-коннект при запуске приложения; прогрев протокола увеличен до 10с; понятное сообщение «поиск протокола не завершился (SEARCHING…)» при отсутствии ответа.

v3.0.35

  • Тест соединения с УД: показывается причина HTTP-ошибки эндпоинта; обработчик /api/cartelemetry логирует исключения и возвращает JSON-ошибку вместо голого 500.
  • Системные сенсоры: канал system больше не гейтится свежестью GPS (device-сенсоры доступны всегда); добавлены производители device_pressure (барометр) и media_volume (Android AudioManager — громкость обновляется без DiPlus).
  • Voyah: сбойный probe пере-повторяется (не вечная защёлка) — телеметрия оживает.
  • Профиль: выбранный пользователем источник не меняется при старте; если автоопределение расходится — сообщение «выбранный источник не подходит — рекомендуем X».
  • OBD: init верифицирует ответы (ATZ→ELM327, ATE0/ATH0/ATL0/ATSP0→OK), как ReDrive.

v3.0.34

  • OBD-II: перед чтением PID — прогрев протокола (запрос 0100 с повторами), чтобы ELM успел залочить шину в режиме AUTO; в диагностику добавлен сырой ответ адаптера (obd_raw_sample) — видно, что именно возвращает ELM (битмап или NO DATA).

v3.0.33

  • Карточка cartelemetry-vehicle-card: слот «Гудок/Сигнал» адаптивный — button (кнопка), switch/light (переключатель), binary_sensor (индикатор состояния on/off).
  • Редактор карточки: выбор сущностей через нативный поиск HA; позиции иконок — только ползунки (поля ввода удалены); добавлены двери (12 слотов).
  • Дефолтные позиции иконок для типа «car» переработаны и подогнаны под силуэт.
  • Пример карточки (стаб) приведён к реальным сущностям интеграции (lock/switch/button/binary_sensor).

v3.0.32

  • OBD-II: все PID в исследовании читаются одной сессией (один лёгкий init без ATZ-сброса) — адаптер не теряет залоченный протокол; при первом подключении и по кнопке перепривязки — принудительная переинициализация BT (отмена discovery + повтор после паузы).
  • Прогресс исследования: единая шкала «каналы + сенсоры» (9+157), больше не «закрывается» на 9/9.
  • Исправлен тост при подключении OBD — «Проверка обновлений» заменён на «Подключение к адаптеру».

v3.0.31

  • OBD-II: надёжное подключение ELM327 — прогрев адаптера (ATZ), один Bluetooth-сокет на сессию вместо переподключения на каждую команду, ретраи; подробная диагностика сбоя (connect/init/ATDP).
  • Вкладка «Команды» перенесена в Настройки → отдельный пункт «Тест управления авто».

v3.0.30

  • В примере карточки cartelemetry-vehicle-card (код, который HA показывает при добавлении) теперь сразу прописан пример расстановки иконок по местам (binding_overrides с x/y в процентах) и ссылка на свою картинку (image_url).

v3.0.29

  • Редактор карточки cartelemetry-vehicle-card: HA теперь показывает кастомный редактор с настройкой позиций иконок (x/y) и ссылкой на свою картинку (image_url).

v3.0.28

  • OBD: канал теперь определяется «живым» сразу после ATI; анализ протокола (ATDP) и опрос поддерживаемых PID идут в фоне — исследование больше не убивает probe по таймауту.
  • Все типы плиток дашборда (в т.ч. громкость/пресеты с зонами) приведены к единому виду: бирюзовая окантовка + фиксированная высота. Цвета в коде переведены на атрибуты темы.

v3.0.27

  • Исправлено: включение протокола OBD (чекбокс или кнопка подключения) реально включает его — раньше флаг isObdEnabled не выставлялся, поэтому канал OBD был недоступен даже при отмеченном чекбоксе и успешном подключении адаптера.

v3.0.26

  • Главный экран: под полоской очереди зарезервировано место — при появлении очереди экран больше не сдвигается.
  • Плитки дашборда: фиксированный размер (150dp), без лишних отступов, светлобирюзовая окантовка. Цвета вынесены в палитру (основа для тем оформления).

v3.0.25

  • В probe-report (исследование) добавлен блок «diagnostics»: состояние OBD (включён ли, режим, статус, протокол ATDP, число поддерживаемых PID, последняя ошибка, имя/MAC адаптера). По любому исследованию на сервере сразу видно, почему OBD-канал недоступен.

v3.0.24

  • У карточки cartelemetry-vehicle-card появился визуальный редактор: настройка позиций иконок (x/y в % от картинки) для сенсоров/дверей/кнопок + ссылка на свою картинку (image_url).

v3.0.23

  • В экспорт/отправку журнала добавлен блок «Диагностика»: профиль, активные каналы, VVIN/прошивка, состояние OBD (статус, протокол ATDP, число поддерживаемых PID, последняя ошибка).
  • Для телефонов без DiPlus/Voyah: авто-определение сопряжённого ELM327-адаптера (если адрес не выбран) и подсказка в исследовании «подключите OBD-адаптер».

v3.0.22

  • OBD-II: автоматическое подключение к адаптеру при исследовании/запуске; на кнопке OBD живой статус «подключено / нет связи».
  • Анализ протокола при подключении (ELM327 init, ATDP) и опрос bitmap поддерживаемых PID — читаются только универсальные стандартные показатели, которые поддерживает конкретный авто.

v3.0.21

  • Добавлена вторая карточка custom:cartelemetry-vehicle-card: силуэт авто/грузовика/мотоцикла, сенсоры и кнопки по binding-точкам, спидометр, панели сенсоров/управления/дверей. Изображения CC0 в assets/. Работает рядом с прежней карточкой (не ломает её).

v3.0.20

  • Исправлено: сенсоры/управление теперь принадлежат устройству автомобиля (device_info возвращал None — сущности были без устройства). После перезагрузки сущности группируются в устройство авто + связанный трекер.

v3.0.19

  • Исправлено: генератор const.py терял ручную константу ONLINE_OFFLINE_SECONDS (интеграция не стартовала — «cannot import name»). Теперь константа пишется генератором.

v3.0.18

  • Voyah: набор сенсоров расширен с 3 до 29 — курируемые параметры из прошивки (фары/туманки, тормоз/акселератор, зарядка, дворники, двери/замки, климат, режим движения).
  • Добавлены новые сенсоры для автоматизаций: подогрев/вентиляция сидений (перед/зад), подогрев руля, обогрев заднего стекла, мощность зарядки, складывание зеркал.
  • Все они пробуются в исследовании и читаются каналом Voyah (на реальном авто — те, что реально отдаёт сервис).

v3.0.17

  • Voyah: расширен набор сенсоров из прошивки (powertrain_mode, low_beam, DRL) — теперь 6.
  • Исследование: в сводке «Сенсоров по каналам» видно, сколько прочитал каждый канал (в т.ч. voyah/obd, даже если 0) — понятно, что все каналы пробовались.
  • Подсказка в мануале: если ни DiPlus, ни Voyah не дали данных — проверьте, что DiPlus запущен.

v3.0.16

  • Обновление через приложение: установщик теперь находит реальный скачанный APK (на ГУ Voyah система сохраняет файл как *.bin или без расширения) — обновление работает на Voyah.
  • OBD-II: добавлен полный стандартный набор mode-01 — нагрузка двигателя, температура впуска, MAF, уровень топлива, температура снаружи/масла, расход топлива (11 PID). Исследование теперь пробует их, а OBD-канал читает на любом совместимом авто.

v3.0.15

  • Трекер связан с устройством автомобиля через via_device — в HA «устройство авто» и трекер видны как одна машина (трекер с картинкой внутри устройства).
  • Поддержка нескольких авто: одна запись конфига = одно авто (устройство + трекер), карточка — одна на авто.

v3.0.14

  • Исправлено: ежедневный heartbeat интеграции использовал несуществующий hass.helpers — интеграция не стартовала («Error setting up entry»). Теперь async_track_time_interval импортируется из homeassistant.helpers.event.

v3.0.13

  • Карточка автомобиля и картинка трекера перенесены в www/community/cartelemetry-card/ (стандарт для UI-интеграций) — ресурс /local/community/cartelemetry-card/car-card.js, картинка /local/…/car_top.png; статика теперь работает стабильно.
  • Иконки типов авто (vehicle_type: car/hatchback/suv/pickup/van/truck/moto), base64.
  • Оснастка для вида сверху: SVG-серия car_top_<state>.svg (двери/окна/люк/багажник/капот) — картинки можно подкладывать самим в www/community/cartelemetry-card/.

v3.0.12

  • Документация для разработчиков сторонних приложений: как передавать данные в HA через открытый API-контракт CARTelemetry (страница «Сторонние приложения» + ссылка в описании интеграции в Home Assistant).

v3.0.11

  • Статистика пользователей: на сайте учитываются уникальные установки приложения и HA-интеграции (анонимный UUID, запросы обновления/пресетов и ежедневный heartbeat), с разделением «приложение / интеграция» и активностью за 7/14/30/180 дней.
  • Настройки «Умный дом»: «В очереди», «Последняя отправка» и новая «Последняя попытка» (время и ответ сервера) — сразу под переключателем «Отправлять в HA», обновляются при открытии вкладки.

v3.0.10

  • Отправка журнала разработчику: поле комментария автозаполняется идентификатором авто (версия приложения, VVIN, прошивка, имя авто, профиль) — при анализе видно, от кого лог, даже если пользователь ничего не ввёл.
  • Инструкция: держите DiPlus запущенным на поддерживаемых автомобилях (полный набор сенсоров).

v3.0.9

  • Автоопределение автомобиля переработано: марка определяется по живому ключевому каналу (Voyah CANBus → Voyah, DiPlus → BYD), внутри марки — «тяжёлый» проход по ожидаемым не-общим сенсорам с учётом отказов (ok²/(ok+fail)). Общие сенсоры (системные, межбрендовые) исключены из скоринга.

v3.0.8

  • Автоопределение авто: метрика выбора профиля изменена (ok²/expected) — на Voyah-авто, где канал Voyah читает все свои сенсоры, теперь выбирается Voyah, а не BYD.

v3.0.7

  • Индикатор очереди телеметрии: тонкая полоска на главном экране показывает объём данных, ожидающих отправки в HA (полная — ~2 часа отправок, адаптивно), по мере отправки уменьшается, при пустой очереди скрыта.
  • В настройках «Умный дом» — «В очереди» (текущий объём) и «Последняя отправка» (время и объём последней успешной отправки телеметрии).

v3.0.6

  • OBD-II теперь подключается по Bluetooth: при включении протокола под чекбоксом появляется кнопка выбора ELM327-адаптера (список сопряжённых устройств, проверка ATI, сохранение). WiFi/TCP остаётся запасным транспортом.
  • В окне «О программе» добавлена кнопка «Что нового» — заметки последней версии с сайта.
  • Окно заметок версии всегда читаемое (светлый текст на тёмном фоне).

v3.0.5

  • Техническое обновление: автоматизированный релиз-конвейер (сборка → мануал → деплой на сайт), без функциональных изменений.

v3.0.4

  • Системные сенсоры (GPS, батарея устройства) в телеметрии выглядят нормально: чекбокс включён и не переключается — они всегда собираются на устройстве.

v3.0.3

  • Исправлена карточка автомобиля и картинка device_tracker: статика интеграции перенесена из /api/ в путь /cartelemetry (без авторизации) — теперь car-card.js, car_top.png и изображение трекера доступны.

v3.0.2

  • Обновление через приложение полностью рабочее: авто-проверка при открытии главного окна, исправлена установка (FileProvider), корректное сравнение версий, пропуск повторной загрузки.
  • Исправлено: карточка добавления плитки в дашборде стала читаемой; кнопка «+» в правилах больше не перекрывает переключатель.
  • Разрешение на чтение хранилища больше не донимает системными сообщениями на BYD-прошивках.

v3.0.1

  • Карточка автомобиля для дашборда: вид сверху с сенсорами на кузове и плитками управления (custom:cartelemetry-car-card).
  • Устройства: общее устройство на автомобиль + отдельное устройство трекера (иконка mdi:car, картинка автомобиля).
  • Проверка обновлений через приложение (кнопка в настройках → скачивание и установка APK с сайта).
  • Исправлено: оставшиеся ссылки на старый домен (пресеты, справочник команд, отчёты исследования).
  • Исправлено: GPS стартует сразу после выдачи разрешения на локацию, без перезапуска приложения.
  • Исправлено: импорт конфигураций видит файлы в «Загрузках», добавленные другими приложениями (новое разрешение на чтение).
  • Иконки приложения и интеграции: автомобиль на фоне дома; интеграция — с шестерёнкой.

v3.0.0

  • BREAKING: переименование — интеграция diplus2hassCARTelemetry (домен, каталог, сервисы), приложение → Car2Hass (новый package, ставится рядом со старым). Требуется переустановка интеграции; см. «Переход на 3.0».
  • Новый endpoint /api/cartelemetry — старый /api/byd_diplus работает как legacy для старых APK.
  • Сайт переехал на mytechnic.ru/cartelemetry (старый адрес редиректит).
  • Источники данных: единый список каналов из реестра (+Voyah), идентификаторы унифицированы (dumpsys, adb), system-канал с честной пробой доступности.
  • Настройки источников: переключатель «Автофолбэк» вместо выбора одного источника; команды следуют каналу сенсора; каналы не отключаются при временном сбое.
  • Исследование: профиль авто с процентом совпадения и датой прогона; системные GPS/батари сенсоры передаются и отображаются.
  • Проверка обновлений через сайт (кнопка в настройках, скачивание и установка APK).
  • Фиксы: групповые отказы getDiPars изолируют сбойный сигнал без рекурсивного деления; sentinel window_rr больше не шумит.

v2.4.0

  • Новая архитектура телеметрии и исследования — JSON-реестры сенсоров/команд/профилей (141 сенсор / 29 команд / 3 профиля авто), ProbeEngine с автоопределением типа авто по скору ответов сигналов (полный прогон при первом запуске и каждый 3-й запуск, лёгкая проверка каналов между ними) и SourceManager, который централизованно решает, откуда читать, по реестру, активным каналам и отчёту исследования; system-сенсоры (GPS/устройство) читаются всегда.
  • GPS 1 Гц — координаты/скорость/азимут снимаются каждую секунду и передаются батчами окном ~4 с; GPS-минимум присутствует в интеграции всегда.
  • Секция настроек «Исследование системы» — выбор типа авто из car_profiles.json, чекбоксы каналов с доступностью из отчёта, статус исследования и экспорт probe_report.json.
  • Анонимные отчёты исследования (опционально, выключено по умолчанию) — PHP-приёмник на сайте (/api/probe-report) с валидацией схемы и rate-limit; MCP-API (/api/mcp: list_car_profiles, signal_availability, channel_availability, raw_reports) для анализа доступности сигналов/каналов по моделям.
  • Новые каналы — OBD-II ELM327 по TCP/WiFi (опционально, выключен по умолчанию), честные availability-пробы DiPlus Push и BYD Cloud, Voyah (только чтение) через рефлексию к вендорскому CANBus-сервису.

v2.3.1

  • Фикс пропадания сенсоров из телеметрии — DiPlus при обвале сервера больше не помечает исправные сигналы как «неподдерживаемые» (ошибка соединения не считается свойством сигнала). Ранее после обвала DiPlus до 130 сенсоров (включая window_rr / sunroof / sunshade) навсегда прятались из телеметрии; группа «известно неподдерживаемых» сигналов периодически пере-изолируется, чтобы вернувшиеся сигналы снова стали активными.
  • Настройки — иконки разделов в одну строку с названием (слева); «Протоколы» → «Сервисы / источники данных», «Технические» → «Опции»; «Геозоны» — отдельный пункт левой колонки; язык, «Обновить пресеты» и импорт/экспорт конфигурации перенесены в «Опции», секция «Прочее» убрана.
  • Исследование каналов — модальное окно с прогресс-баром на время зондирования.
  • Анализ логов — разбор сценария пропадания сенсоров на BYD Song Pro 2022 задокументирован в info/telemetry_signal_disappearance_analysis.md.

v2.3.0

  • Профиль автомобиля — производитель (BYD / «Универсальный авто с Android»), марка/модель и год выпуска в настройках; VIN и версия ПО снова попадают в телеметрию (ранее исключались из слияния сенсоров).
  • «Исследование каналов» для универсального авто — зондирование DiPlus, ADB, системных свойств и экспериментальных каналов с отчётом (экран + лог + файл research_*.txt); отчёт прикладывается к отправляемому логу.
  • Настройки переработаны — левая колонка разделов (Авто / Протоколы / Умный дом / Технические / Прочее), «О программе» открывается модальным окном.
  • Первый запуск новой версии — автоматически открываются настройки автозапуска и окно «О программе».
  • Нативная запись команд (бета) — команды применяются через прямой канал записи autoservice (service call autoservice 6, тот же setInt, что использует HelperDaemon BYD) в дополнение к DiPlus HTTP. Карта команд в assets/native_commands.json сопоставляет команду с адресами; native и DiPlus взаимно подменяют друг друга, так что команда выполняется, пока жив хотя бы один интерфейс. Режим auto запоминает, какой интерфейс отвечал последним.
  • Верификация записи и отчёт об интерфейсе — результат команды включает использованный интерфейс (native/diplus) и число фоллбэков; запись, принятая интерфейсом, не показывается как ошибка, даже если связанный сенсор недоступен или не подтвердил значение.
  • Чистка native-телеметрииpassenger_seatbelt (мигающий fid) и trunk (не читающийся fid) убраны из native-карты чтения; оба продолжают работать через DiPlus.
  • Интервал телеметрии 7 с — цикл native-чтения (4,5–5,5 с) больше не гоняется со следующим тиком; пропуски циклов (до ~120/сессию) устранены.

v2.2.0

  • Нативная телеметрия (бета) — чтение сигналов напрямую с ГУ через on-device ADB (service call autoservice), в обход сервера DiPlus. Источник выбирается в настройках (diplus/native/auto); debug-режим сравнивает native-значения с DiPlus в логе.
  • Выверка таблицы команды→сенсорыexpectedValue приведены к фактическим enum-переводам, устранены ложные state mismatch для команд дверей/окон/замков/багажника/климата/света.

v2.1.6

  • Фикс загрузки интеграции — бинарные сенсоры больше не падают с ImportError: cannot import name 'ONLINE_OFFLINE_SECONDS'; порог онлайн/офлайн задан в const.py (60 с).
  • Диапазоны команд приведены к реальным возможностям DiPlus — температура кондиционера 17–30 (дроби отвергаются, иначе DiPlus открывает NaviActivity), вентилятор 1–7, SOC 15–70, внешняя громкость 0–99.
  • Сигналы num → enumsentry_state, parked_recording_switch, parked_sentry_alarm, lead_car_start_state переведены в перечисления с нормальными метками.
  • История сущностей с реальными метками времени — пакеты телеметрии реплеятся в recorder HA по времени сбора каждого снапшота (HA 2024.6+): история показывает фактическую траекторию, а не один тик.
  • Запоминание параметров пресетов — проценты окон, температура/обдув климата сохраняются; диалог редактирования пресета предлагает «Сохранить» / «Сохранить и применить» и не выполняет команды молча.
  • Диалоги действий пресетов — сетка кнопок — вместо списка; у пресета «Окна» кнопки Закрыть / Открыть (4 стекла на 100 %) / Проветрить / Свои значения.
  • Пресеты дашборда v4 — порт зарядки больше не «отключён» на подключённом пистолете (truthy покрывает реальные значения AC/DC-пистолета и Ready); режим охраны стал пресетом с 3 кнопками-действиями; детские замки объединены в одну плитку с 4 действиями; удалён дубль-пресет «Закрыть окна»; «Вентилятор климата» и «Темп. климата» переименованы; сравнение опций select нормализовано (без учёта _ / + : - и пробелов).
  • Сенсор зарядки в HA — бинарный сенсор зарядки включается на Ready/started/charging/full (раньше машина на активной зарядке присылала Ready и сенсор оставался выключенным).
  • Дедупликация экспорта лога — повторные timestamp-строки из секций «In-memory» и «Persistent File» больше не дублируются.
  • Единый источник версии — тест согласованности следит, чтобы версия приложения и интеграции совпадала везде; AndroidManifest очищен от устаревшей версии.

v2.1.5

  • Трёхрежимная запись лога в файл: Выкл (файл не ведётся, только экспорт по запросу) / Базовый (события и ошибки, без RAW) / Подробный (всё, включая тела RAW-ответов DiPlus).
  • Лог в памяти — всегда подробный (буфер с ограничением по размеру): экспорт в любой момент даёт полную картину независимо от режима записи в файл.
  • Легаси-настройка «Подробный лог» мигрирует в новый режим автоматически; экспорт/импорт конфигурации поддерживает file_log_mode (и старый ключ).

v2.1.4

  • Пустое значение условия геозоны = inside — правила с пустым значением у geo_* сенсора работают без ручной правки (для «снаружи» укажите outside явно).
  • «Подробный лог» управляет объёмом — RAW-ответы DiPlus пишутся только при включённой настройке; базовый лог ведётся всегда в память и файл с ротацией 5 МБ.

v2.1.3

  • Фикс спама лога миграции правил — «minInterval ignored» пишется раз на правило за процесс (было ~6,5 тыс. строк за сессию).
  • Предупреждение о пустом условии — правила с пустым значением условия помечаются в логе (они никогда не сработают).
  • Дешевле телеметрия — неподдерживаемые сигналы опрашиваются раз в минуту (~в 2 раза меньше запросов).
  • Тише логи при падении DiPlus — первая connect-ошибка как ошибка, повторные в течение минуты — в отладку.

v2.1.2

  • Фикс ошибок HA из-за '∞': числовые сенсоры больше не падают с ValueError на нечисловых значениях (бесконечный расход на стоянке) — состояние unknown, сырое значение в атрибуте raw_value.
  • total_energy: класс состояния total_increasingtotal — убраны предупреждения рекордера «not strictly increasing».

v2.1.1

  • Правила по фронту — на каждый переход: 30-минутный кулдаун больше не применяется к edge-правилам (остаётся для уровневых). «Открыть двери на паркинге» теперь работает на каждом паркинге, включая короткие поездки.
  • Удержание условия (debounce): новый параметр правила — условие должно держаться истинным N секунд перед срабатыванием; защита от флапа сигналов.
  • Диагностика правил: в логе срабатываний — prev/current состояние и значения сенсоров; логируются смены состояний геозон.
  • Валидация редактора: условие с пустым значением не сохранить; для geo-сенсоров подсказки inside/outside; поле «мин. интервал» отмечено серым для edge-правил.
  • Быстрее телеметрия: неподдерживаемые сигналы опрашиваются отдельной группой — рабочие группы не сплитятся (~в 3 раза меньше запросов, чище лог).
  • Дефолт анти-зацикливания снижен до 60 с (миграция со 1800 для edge-правил).

v2.1.0

  • Геозоны в Home Assistant — каждая зона появляется как binary_sensor.<авто>_geofence_<название> (on = внутри); в списке зон приложения — время последнего посещения.
  • PNG-иконки пресетов вместо эмодзи (подмена своими файлами icons/<имя>.png, эмодзи как запасной вариант).
  • Новый вид плиток с зонами — трёхстрочный layout (иконка / ➖ значение ➕ / название).
  • Автодополнение действий правил — локализованные enum-варианты, диапазоны min..max, ранее использованные значения.
  • Время последнего срабатывания правила — отдельно для прямой и else-ветки.
  • Кнопка принудительного обновления пресетов с отображением версии пакета.
  • Пауза таймера режима редактирования при открытых диалогах; единый стиль FAB (56dp).
  • Стабильность: устранена потеря циклов телеметрии (ConcurrentModificationException), движок правил защищён от ложных срабатываний при старте, чище логи (geo_, getDiPars), переведено «приближается автомобиль».
  • Стабильные единицы сенсоров в интеграции (mm для осадков, % для громкости) — чинит long-term statistics.

v2.0.0

  • Движок правил — локальные автоматизации: множественные условия (AND/OR/NOT), несколько действий, else-ветка, «один раз за поездку», персистентное состояние, экспорт/импорт (формат v2).
  • Геозоны с редактором на карте (OpenStreetMap) — виртуальные датчики geo_<id> для правил.
  • Пресеты дашборда v3 — исправлены 9 переключателей с перепутанными вкл/выкл; плитки показывают реальные значения; пресеты локализованы (OTA).
  • Замки дверей одним тапом, примеры правил при первом запуске, полный экспорт конфигурации (правила + геозоны + настройки).
  • Редактор правил на двух языках — 132 локализованных названия сенсоров и подписи операторов.

v1.9.1

  • Фоновый режим при выключенном авто (ACC off) со встроенным ADB-помощником.
  • Лог пишется в файл сразу после старта и сбрасывается при остановке сервиса.

v1.9.0

  • Стабильный фоновый сервис (явная остановка не перезапускает, тихое уведомление при загрузке).
  • Надёжность очереди команд в HA (дедупликация, устаревание, таймауты).
  • Исправление online-сенсора и пресета окон; крэшлоги в Downloads.

v1.8.x

  • Настраиваемый дашборд, внешний реестр сигнал↔команда (OTA), фильтр отключённых сигналов.
  • Первая публичная версия с полным каталогом сигналов и двуязычным интерфейсом.