Добрый день.
Есть у меня старенький контроллер Wiren Board 7.4 с прошивкой wb-2507. Правила там настроены через Node-red, хочу переписать их на простом wb-rules, но они не работают. Почти ничего не работает
Для начала хочу создать виртуальное устройство, в котором будет отображаться информация с термодатчиков. Правило ниже, лишнее поубирал.
defineVirtualDevice('L_boiler', {
title: {ru: 'Термостат'} ,
cells: {
HW_set: {
title: "Вода: задано",
type: "range",
value: 30,
max: 60,
min: 30
},
HW_current: {
title: "Вода: текущее",
type: "value",
value: 0,
// value: dev["/devices/wb-w1/controls/28-3c01f0968609"]
},
HW_mode: {
title: "Вода: греем",
type: "switch",
value: false,
},
}});
defineRule("Boiler_update_HW", {
whenChanged: ["/devices/wb-w1/controls/28-3c01f0968609"],
then: function (newValue) {
dev["L_boiler/HW_current"] = newValue;
log(' MY Boiler new value: '+ newValue)
}
});
В результате создается устройство, у которого параметр “Вода: текущее“ пустое. А правило на изменение значения термодатчика вообще никогда не срабатывает.
Температура разумеется меняется, в логах ничего нет кроме:
| 28-01-2026 23:24:52.472 [wb-rules] | INFO: reloading file: /etc/wb-rules/L_termostat.js |
|---|---|
| 28-01-2026 23:24:51.523 [wb-mqtt-db.service] | WARNING: [conventions] converting empty value to boolean "false" |
служба wb-rules вроде не зависает
systemctl status wb-rules
● wb-rules.service - MQTT Rule engine for Wiren Board
Loaded: loaded (/lib/systemd/system/wb-rules.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-01-26 21:47:09 UTC; 1 day 22h ago
Main PID: 2011 (wb-rules)
Tasks: 21 (limit: 2354)
Memory: 26.9M
CPU: 4h 46min 30.259s
CGroup: /system.slice/wb-rules.service
└─2011 /usr/bin/wb-rules -http 127.0.0.1:9090 -syslog -editdir /etc/wb-rules/ /usr/share/wb-rules-system/rules/ /etc/wb-rules/ /usr/share/wb-rules/Jan 28 19:40:42 wirenboard-AUPDGSWO wb-rules[2011]: WARNING: [frontend] failed to remove external control wb-adc/A1: No such control
Jan 28 19:40:58 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js
Jan 28 19:41:05 wirenboard-AUPDGSWO wb-rules[2011]: INFO: LiveRemoveFile: /etc/wb-rules/L_termostat.js
Jan 28 19:41:05 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js.disabled
Jan 28 19:41:09 wirenboard-AUPDGSWO wb-rules[2011]: INFO: LiveRemoveFile: /etc/wb-rules/L_termostat.js.disabled
Jan 28 19:41:09 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js
Jan 28 19:46:31 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js
Jan 28 19:47:07 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js
Jan 28 20:21:15 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js
Jan 28 20:24:52 wirenboard-AUPDGSWO wb-rules[2011]: INFO: reloading file: /etc/wb-rules/L_termostat.js
Раньше к контроллеру был подключен модуль зигби, плату вытащили а в настройках слотов изменения не внесли. Сейчас отключил, но все равно - не работает правило.
Подскажите, что может мешать работе правил. Может быть синтаксис раньше другой был, но я установил все возможные обновления.