DiPlus-to-hass: настройка правил и автоматизаций DiPlus-to-hass: setting up rules and automations

В версии v2.0.0 в DiPlus-to-hass появился движок правил — теперь вы можете создавать автоматизации прямо на головном устройстве, без необходимости писать сценарии в Home Assistant. Это одна из самых востребованных функций со времён выхода первой версии. Version v2.0.0 introduces the rules engine — now you can create automations directly on the head unit without writing Home Assistant scripts. This has been one of the most requested features since the initial release.

Обратная совместимость: если у вас были правила из предыдущих версий (одно условие, одна команда), они автоматически конвертируются в новый формат при загрузке. Backward compatible: if you had rules from previous versions (single condition, single command), they are automatically converted to the new format on load.

Что нового в v2.0.0? What's new in v2.0.0?

Первая статья (читать) описывала установку и базовые возможности приложения до версии v1.9.2: телеметрия, отправка в HA, управление командами, настраиваемый дашборд. С версии v2.0.0 добавились следующие возможности: The first article (read it here) covered installation and basic features up to v1.9.2: telemetry, HA integration, command control, and the customizable dashboard. Version v2.0.0 adds the following:

Как работают правила? How do rules work?

Правило состоит из трёх частей: условия (когда срабатывать), действия (что делать) и настроек выполнения (как часто, анти-зацикливание). Движок правил работает в фоновом сервисе приложения и проверяет условия каждую секунду. A rule has three parts: conditions (when to fire), actions (what to do) and execution settings (how often, anti-loop). The rules engine runs in the app's background service and checks conditions every second.

Условия Conditions

Каждое условие сравнивает значение датчика с эталоном через оператор сравнения: Each condition compares a sensor value with an expected value using a comparison operator:

Несколько условий комбинируются через логические операторы: Multiple conditions are combined with logical operators:

Пример: «Если скорость > 0 И ремень водителя пристёгнут, ИЛИ ambient температура > 25 °C — включить вентиляцию сидений». Example: "If speed > 0 AND driver seatbelt is buckled, OR ambient temperature > 25 °C — turn on seat ventilation".

Действия Actions

Когда все условия истинны, правило выполняет все действия по порядку. Каждое действие — это команда автомобилю (например, включить климат, поменять температуру, закрыть окна). Действия выполняются последовательно, одно за другим. When all conditions are met the rule executes all actions in order. Each action is a car command (e.g. turn on climate, change temperature, close windows). Actions run sequentially, one after another.

Настройки выполнения Execution settings

Скриншот 1: редактор правил с условиями и действиямиScreenshot 1: rules editor with conditions and actions

Создание правила — пошагово Creating a rule — step by step

  1. Откройте главное меню приложения (⋮) и выберите Rules. Open the app's main menu (⋮) and select Rules.
  2. Нажмите + (плюс) в правом нижнем углу, чтобы создать новое правило. Tap the + button in the bottom-right corner to create a new rule.
  3. Введите название правила (необязательно, но поможет ориентироваться в списке). Enter a rule name (optional, but helps identify rules in the list).
  4. В разделе Conditions нажмите +, чтобы добавить условие. Выберите датчик, оператор сравнения и ожидаемое значение. Для второго и последующих условий выберите логический оператор (AND/OR) и при необходимости включите флажок NOT. In the Conditions section tap + to add a condition. Select a sensor, comparison operator and expected value. For the second and subsequent conditions choose a logical operator (AND/OR) and optionally enable the NOT checkbox.
  5. В разделе Actions нажмите +, чтобы добавить действие. Выберите команду и укажите значение параметра. In the Actions section tap + to add an action. Select a command and enter the parameter value.
  6. Настройте параметры выполнения: Fire on rising edge, Min interval, Anti-loop window. Configure execution settings: Fire on rising edge, Min interval, Anti-loop window.
  7. Нажмите Save. Правило появится в списке. Его можно включить/выключить переключателем. Tap Save. The rule appears in the list. You can enable/disable it with the toggle switch.
Подсказка: при вводе значения условия редактор показывает автодополнение — список реальных значений, которые этот датчик принимал. Это очень удобно, когда нужно узнать, какие значения возвращает датчик (например, "buckled"/"unbuckled" для ремня безопасности). Tip: when entering a condition value the editor shows autocomplete suggestions — real values this sensor has reported. This is very handy when you need to know what values a sensor returns (e.g. "buckled"/"unbuckled" for the seat belt).

Действия «иначе» (else) Else actions

Включите переключатель Enable else action в редакторе правила, чтобы задать действия, выполняемые, когда условие переходит в ложь. Это позволяет одним правилом не только включать, но и выключать устройства. Например: «Обдув сиденья при +25 °C» — действие включает обдув, а else-действие выключает его, когда температура опускается ниже порога. Кулдаун, анти-зацикливание и «один раз за поездку» действуют на обе ветки. Enable the Enable else action switch in the rule editor to define actions executed when the condition becomes false. This lets a single rule both turn devices on and off. For example: "Seat vent above +25 °C" — the action turns the vent on, and the else action turns it off when the temperature drops. Cooldown, anti-loop and fire-once-per-trip apply to both branches.

Один раз за поездку Fire once per trip

Флажок Fire once per session ограничивает правило одним срабатыванием за текущую сессию движка (поездку). Счётчик сбрасывается при остановке сервиса и при изменении списка правил. Удобно для действий, которые нужны только один раз после запуска — например, напоминание или разовая настройка климата. The Fire once per session checkbox limits the rule to a single trigger per engine session (trip). The counter resets when the service stops and when the rule list changes. Handy for actions needed only once after start — a reminder or a one-off climate adjustment.

Состояние правил между поездками Rule state across trips

Движок запоминает последнее состояние условий каждого правила и сохраняет его между перезапусками. Поэтому правила в режиме «по фронту» (rising edge) срабатывают только на реальное изменение сигнала: если машина уже стоит на паркинге (gear = P) с прошлой поездки, правило «открыть двери на паркинге» не сработает повторно при утреннем включении авто — оно сработает лишь когда вы действительно переключитесь на P из другой передачи. The engine remembers the last condition state of every rule and persists it across restarts. Rising-edge rules therefore fire only on real signal changes: if the car was already in Park (gear = P) since the previous trip, the "unlock doors on Park" rule will not fire again at the morning start — it fires only when you actually shift to P from another gear.

Геозоны в правилах Geofence zones in rules

В настройках приложения (Settings → Geofences) можно создать географические зоны: на карте OpenStreetMap тапом или перетаскиванием маркера выберите центр, задайте радиус ползунком или введите координаты вручную. Каждая зона появляется в редакторе правил как виртуальный датчик geo_<id> со значениями inside / outside. Так можно строить правила вроде «при приезде домой открыть окна» или «уезжая с зарядки — напомнить о кабеле». Проверка зон выполняется при каждом обновлении GPS. In the app settings (Settings → Geofences) you can create geofence zones: on the OpenStreetMap editor tap or drag the marker to set the center, adjust the radius with the slider, or enter coordinates manually. Each zone appears in the rule editor as a virtual sensor geo_<id> with values inside / outside. This enables rules like "open the windows when arriving home" or "leaving the charger — remind about the cable". Zones are evaluated on every GPS update.

Примеры правил Rule examples

Пример 1: Авто-климат при высокой температуре Example 1: Auto climate at high temperature

Цель: если температура за бортом выше 25 °C и автомобиль движется — включить кондиционер на полную. Goal: if the outside temperature is above 25 °C and the car is moving — turn on the AC at full power.

Пример 2: Напоминание о непристёгнутом ремне Example 2: Seatbelt reminder

Цель: если автомобиль движется, а ремень водителя не пристёгнут — напомнить (например, включить аварийку на 5 секунд). Goal: if the car is moving and the driver's seatbelt is not buckled — send a reminder (e.g. flash hazard lights for 5 seconds).

Пример 3: Комфортная парковка Example 3: Comfort parking

Цель: если автомобиль остановился, а на улице жарко — приоткрыть окна и включить вентиляцию сидений водителя. Goal: if the car has stopped and it's hot outside — crack the windows and turn on driver seat ventilation.

Список правил (главный экран правил) Rules list (main rules screen)

На главном экране правил отображаются все созданные правила. Для каждого правила показывается краткая сводка: первое условие (датчик, оператор, значение) и количество действий. Правила можно включать и выключать переключателем, а долгое нажатие открывает меню: экспорт в файл, экспорт в буфер обмена, удаление. The main rules screen shows all created rules. Each rule displays a compact summary: the first condition (sensor, operator, value) and the action count. Rules can be toggled on/off with the switch, and long-press opens a menu: export to file, export to clipboard, delete.

Скриншот 2: список правилScreenshot 2: rules list

Экспорт и импорт правил Exporting and importing rules

Правила можно экспортировать и импортировать так же, как и настройки приложения. На экране списка правил нажмите кнопку и выберите Import from file или Export all to file. Также можно экспортировать отдельное правило долгим нажатием на него и выбором соответствующего пункта. Rules can be exported and imported the same way as app settings. On the rules list screen tap the button and choose Import from file or Export all to file. You can also export a single rule by long-pressing it and selecting the appropriate option.

Формат экспорта v2: начиная с v2.0.0 правила экспортируются с версией формата 2. Импорт автоматически принимает как старый формат (v1), так и новый (v2). Export format v2: starting with v2.0.0 rules are exported with format version 2. The import handler automatically accepts both the old format (v1) and the new format (v2).
Полный экспорт конфигурации: экспорт настроек (Settings → Export config) теперь включает не только параметры подключения, но и все правила и геозоны — перенос всей конфигурации на другое головное устройство одним файлом. Full config export: settings export (Settings → Export config) now includes not only connection parameters but also all rules and geofence zones — migrate the whole configuration to another head unit with a single file.
Примеры при первом запуске: при первом старте приложения создаются пять выключенных правил-примеров (обдув сидений водителя и пассажира, проветривание при резком торможении, открытие дверей на паркинге, подогрев сиденья). Включите нужные переключателем и отредактируйте под себя. Examples on first run: on the first launch the app creates five disabled example rules (driver and passenger seat ventilation, window venting on hard braking, unlock doors on Park, seat heating). Enable the ones you need and adjust them.
Скриншот 3: экспорт и импорт правилScreenshot 3: rules export and import

Вопросы и ответы FAQ

Правила работают без Home Assistant? Do rules work without Home Assistant?

Да. Движок правил работает полностью локально на головном устройстве. Для работы правил не требуется активное подключение к HA или интернету. Достаточно, чтобы DiPlus был запущен. Yes. The rules engine runs entirely locally on the head unit. Rules do not require an active HA connection or internet access. DiPlus just needs to be running.

Сколько правил можно создать? How many rules can I create?

Ограничений нет. Вы можете создать любое количество правил. Движок проверяет все активные правила каждую секунду. No limit. You can create as many rules as you like. The engine checks all active rules every second.

Как отключить правило, не удаляя его? How do I disable a rule without deleting it?

На главном экране правил просто выключите переключатель рядом с правилом. Правило останется в списке, но движок его пропустит при проверке. On the main rules screen simply toggle off the switch next to the rule. The rule stays in the list but the engine skips it.

Можно ли создать правило с одним действием? Can I create a rule with a single action?

Да. Правило должно содержать хотя бы одно условие и хотя бы одно действие — неважно, сколько именно. Yes. A rule must have at least one condition and at least one action — the count does not matter.

Что дальше? What's next?

В будущих версиях планируется расширить движок правил: Future versions plan to extend the rules engine:

Скачать Download

Первая статья с общей инструкцией по установке: читать. The first article with the full installation guide: read it here.

Поддержка и обсуждения — в Telegram: @BYDiPlus2HASS. Support and discussions — Telegram: @BYDiPlus2HASS.

Отказ от ответственности. Все действия с программным обеспечением, настройками автомобиля и правилами автоматизации вы выполняете исключительно на свой страх и риск. Авторы не несут ответственности за возможные повреждения оборудования, изменение настроек автомобиля или нештатное поведение автоматизаций. Disclaimer. All actions with the software, vehicle settings and automation rules are performed at your own risk. The authors are not responsible for possible equipment damage, vehicle setting changes or unexpected automation behaviour.