Сценарии автоматизации

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Other languages:


Общая информация

Если пакет не установился на контроллере после обновления, попробуйте обновиться следующим образом:
apt update && apt full-upgrade

Сценарии (wb-scenarios) — это пакет встроенного ПО контроллера Wiren Board, представляющий собой модули на движке wb-rules и визуальный конфигуратор для подключения и настройки этих модулей в графическом интерфейсе. Исходный код открыт и доступен в нашем репозитории. Там же более подробно можно узнать о работе пакета и конфигурации готовых шаблонов.

Используемые в сценариях топики должны соответствовать Wiren Board MQTT Conventions.

Как создать сценарий в веб-интерфейсе

  1. Перейдите в ПравилаСценарии.
  2. Нажмите + Сценарий.
  3. Выберите и настройте шаблон сценария.
  4. Нажмите Записать.

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

При работе со сценариями можно включить отладочный режим. Включается также как и при написании скриптов на wb-rules.


Предустановленные сценарии

Автоматизация «Если-То»

Виртуальное устройство «Если-То»

Шаблон сценария создает автоматизацию по схеме "Событие — Действие", подходит для большинства простых задач. Примеры использования:

  • управление выходами одного модуля от входов другого;
  • мастер-выключатель — выключение всего света в помещениях одним нажатием;
  • проходной выключатель — управление одним светильником с нескольких разных выключателей.

Управление светом

Виртуальное устройство управления светом

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

Термостат

Виртуальное устройство термостата

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

Доступно два режима работы:

  • Гистерезис (простой) — классическое включение и выключение. Вы сами задаете рамки: например, включать обогрев при 20 °C и выключать при 22 °C.

Доступно с релиза wb-2606

  • ПИД-регулятор (умный) — максимально точное поддержание температуры без скачков. Система рассчитывает, как быстро нагревается или остывает комната, и подает тепло дозированно. Это помогает избежать перепадов температуры и бережет технику от постоянных щелчков реле.

Расписание

Виртуальное устройство расписания

Доступно с релиза wb-2602

Этот сценарий выполняет нужные действия по расписанию: в заданные дни недели и точное время.

Важно: перед настройкой убедитесь, что на контроллере правильно установлены часовой пояс и текущее время.

Астрономический таймер

Виртуальное устройство астрономического таймера

Доступно с релиза wb-2606

Этот сценарий запускает нужные действия в зависимости от положения солнца. Вы можете привязать автоматику к любому из доступных астрономических событий:

  • Основные: Восход и Закат;
  • Рассветы (утро): Гражданский (-6°), Навигационный (-12°), Астрономический (-18°);
  • Сумерки (вечер): Гражданские (-6°), Навигационные (-12°), Астрономические (-18°);
  • Художественный свет: Золотой час (вечер, +6°) и Конец золотого часа (утро, +6°);
  • Пиковые точки: Солнечный полдень и Надир (самый тёмный момент ночи).

Вы можете настроить срабатывание точно в момент события или добавить смещение (например, закрывать шторы за 30 минут до заката). Это идеальное решение для управления уличным освещением, жалюзи и другой сезонной автоматикой. Расчеты происходят локально прямо на контроллере — интернет для работы не нужен.

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

Периодический таймер

Виртуальное устройство периодического таймера

Доступно с релиза wb-2606

Этот сценарий периодически включает и выключает устройства. Вы задаете общее «окно» работы (например, с 8:00 до 20:00), а также как часто и на какое время запускать устройства (например, «включать каждые 2 часа на 15 минут»). После каждого запуска устройства автоматически выключаются.

Отлично подходит для автоматического полива, периодического проветривания и любых других задач, где требуется цикличная работа.

Важно: перед настройкой убедитесь, что на контроллере правильно установлены текущее время и часовой пояс.

Маппинг каналов

Виртуальное устройство маппинга каналов

Доступно с релиза wb-2606

Сценарий связывает два параметра (MQTT-канала) между собой. Когда значение меняется в одном канале, система моментально копирует его в другой.

Если типы каналов отличаются, значение преобразуется к типу целевого канала:

  • Числовой (range, value, temperature и др.). Строка "3.14" преобразуется в число 3.14. Нечисловая строка становится 0. Значение true и false конвертируются в 1 и 0 соответственно;
  • Логический (switch, alarm). Принимает значение false, если на входе 0, пустая строка или строка "false" или "0" (в любом регистре). Любые другие значения преобразуются в true;
  • Строковый (text, rgb). Любые данные (числа или булевы значения) преобразуются в их текстовый эквивалент. Число 3.14 преобразуется в строку "3.14", а true становится "true".

ПИД-регулятор (аналоговые выходы)

Виртуальное устройство ПИД-регулятора

Доступно с релиза wb-2606

Сценарий реализует ПИД-регулятор для точного поддержания заданного значения (уставки) с помощью аналоговых выходов.

Примеры использования:

  • управление клапаном тёплого пола или радиаторного отопления;
  • регулировка положения воздушной заслонки в системе вентиляции;
  • управление любым аналоговым исполнительным устройством (0–10 В, 0–100 %).

Сценарий вычисляет выход ПИД (0–100 %) на основе показаний датчика и уставки, затем пересчитывает его в единицы актуатора с учётом заданных минимума и максимума. Поддерживаются прямой и обратный(инвертированный) режимы работы. Можно подключить несколько актуаторов одновременно.

Подключение модулей сценариев в wb-rules

Каждый сценарий реализован в виде модуля wb-rules — это позволяет подключать модули в ваших правилах и использовать сценарии как js библиотеку.

У каждого сценария есть свой файл README.md на GitHub, где можно посмотреть подробные примеры использования с шаблонами кода:

Общий алгоритм использования любого сценария:

  1. Импортируйте модуль: var CustomTypeSc = require('thermostat.mod').ThermostatScenario;
  2. Создайте новый инстанс класса сценария var scenario = new CustomTypeSc()
  3. Создайте объект конфигурации будущего сценария var cfg = {...тут необходимые поля...}
  4. Инициализируйте сценарий scenario.init(scenarioName, cfg);

Пример кода для создания сценария термостата:

/**
 * @file: init-heating.js
 */

// Step 1: import module
var CustomTypeSc = require('thermostat.mod').ThermostatScenario;

function main() {
  var scenarioName = 'Bathroom: heat floor';
  log.debug('Start init logic for: "{}"', scenarioName);

  // Step 2: Create new instance with scenario class
  var scenario = new CustomTypeSc();

  // Step 3: Configure algorithm
  var cfg = {
    idPrefix: 'bathroom_floor', // Optional parameter, can be omitted
    targetTemp: 22,
    tempLimitsMin: 16,
    tempLimitsMax: 29,
    hysteresis: 2,
    tempSensor: 'wb-msw-v4_34/Temperature',
    actuator: 'wb-mr6cv3_127/K6',
  };

  // Step 4: init algorithm
  try {
    var isInitSuccess = scenario.init(scenarioName, cfg);

    if (!isInitSuccess) {
      log.error('Init operation aborted for scenario: "{}"', scenarioName);
      return;
    }

    log.debug('Initialization successful for: "{}"', scenarioName);
  } catch (error) {
    log.error(
      'Exception during scenario initialization: "{}" for scenario: "{}"',
      error.message || error,
      scenarioName
    );
  }
}

main();

Известные неисправности

Ошибки/особенности, обнаруженные при использовании.

Полезные ссылки