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

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

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), фильтр отключённых сигналов.
  • Первая публичная версия с полным каталогом сигналов и двуязычным интерфейсом.