В соответствии с документацией можно инициализировать сценарий из правила. Но в таком случае при перезапуске сервиса wb-rules сценарий не запустится с ошибкой ‘Virtual device already exists in system’
Шаги для воспроизведения:
- Создать правило test_scenario.js:
var ThermostatScenario = require('thermostat.mod').ThermostatScenario;
log.info('Создание сценария "ThermostatScenario"');
var cfg = {
idPrefix: 'temp_sc',
ruleEnabled: false,
targetTemp: 30,
tempLimitsMin: 20,
tempLimitsMax: 70,
hysteresis: 1,
tempSensor: 'hwmon/CPU Temperature',
actuators: [
{ mqttTopicName: 'wb-gpio/A1_OUT', behaviorType: 'setEnable' },
],
};
var sc = new ThermostatScenario();
sc.init('Тестовый сценарий "ThermostatScenario"', cfg);
log.info('Сценарий создан: {}', sc.name);
- После сохранения в списке устройств появится устройство "Тестовый сценарий “ThermostatScenario”
- Перезапустить сервис wb-rules:
systemctl restart wb-rules
- Устройство пропадёт. В логе будет ошибка Virtual device “wbsc_temp_sc” already exists in system
Версия wb-rules/testing,now 2.46.3 arm64, b-scenarios/testing,testing,now 1.10.1 all

