Сценарии автоматизации
Общая информация
Доступно с релиза wb-2507
Если пакет не установился на контроллере после обновления, попробуйте обновиться следующим образом:apt update && apt full-upgrade
Сценарии (wb-scenarios) — это пакет встроенного ПО контроллера Wiren Board, который представляет собой модули на движке wb-rules и визуальный конфигуратор, позволяющий подключать и настраивать эти модули в графическом интерфейсе. Исходный код открыт и доступен в нашем репозитории. Там же более подробно можно узнать о работе пакета и конфигурации готовых шаблонов.
Используемые в сценариях топики должны соответствовать Wiren Board MQTT Conventions.
Варианты использования сценариев
Сценарии можно использовать двумя способами:
- через WEBUI, зайдя слева в пункт меню Правила → Сценарии и настраивая все мышкой;
- используя js модули отдельных сценариев в своих правилах wb-rules.
Как создать сценарий в WEBUI
Чтобы создать сценарий:
- Перейдите в Правила → Сценарии.
- Нажмите + Сценарий.
- Выберите и настройте шаблон сценария.
- Нажмите Записать.
- Создание сценария
На каждый сценарий создается виртуальное устройство, с помощью которого можно включить или выключить выполнение сценария.
- Виртуальные устройства сценариев
При работе со сценариями есть возможность включить отладочный режим. Включается также как и при написании скриптов на wb-rules.
Как использовать сценарии в wb-rules
Для того чтобы сценарии можно было создавать из кода - каждый сценарий реализован в виде модуля wb-rules. Это позволяет подключать модули в ваших правилах и использовать сценарии как js библиотеку.
Общий алгоритм использования любого сценария выглядит следующим образом:
- Импортировать модуль:
var CustomTypeSc = require('thermostat.mod').ThermostatScenario; - Создать новый инстанс класса сценария
var scenario = new CustomTypeSc() - Создать объект конфигурации будующего сценария
var cfg = {...тут необходимые поля...} - Инициализировать сценарий
scenario.init(scenarioName, cfg);
У каждого сценария есть свой файл README.md на гитхаб, где можно посмотреть подробные примеры использования с шаблонами кода. Например:
- 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 можно узнать в нашем репозитории.
