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

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

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

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

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

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

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


Варианты использования сценариев

Сценарии можно использовать двумя способами:

  • через WEBUI, зайдя слева в пункт меню Правила → Сценарии и настраивая все мышкой;
  • используя js модули отдельных сценариев в своих правилах wb-rules.

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

Чтобы создать сценарий:

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

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

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

Как использовать сценарии в wb-rules

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

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

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

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

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

/**
 * @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',// Не обязательный параметр, можно не указывать
    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();

Готовые шаблоны сценариев

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

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

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

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

Данный шаблон сценария позволяет реализовать более сложные сценарии. Можно настроить для автоматического включения света в комнатах временного прибывания. В качестве триггеров возможно использование выключателей, датчиков движения, датчиков открытия.

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

Термостат

Шаблон сценария автоматически поддерживает заданную температуру. Он объединяет датчик температуры и исполнительное устройство (например, реле) в виртуальный термостат. Если температура выходит за нужные пределы, система включает или выключает устройство, чтобы вернуть её в заданные пределы.

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

Расписание

Доступно в релизе testing

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

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

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