Следующий код почему-то отказывается работать:
defineVirtualDevice("corrected_w1", {
title: "Corrected w1 temperatures",
cells: {
input_water : {
type : "temperature",
value : dev["wb-w1/28-0417a09127ff"]
},
return_water : {
type : "temperature",
value : dev["wb-w1/28-0417a091e7ff"]
}
}
});
defineRule("Correct_w1_temperature", {
whenChanged: "wb-w1/28-0417a09127ff",
then: function (newValue, devName, cellName) {
dev["corrected_w1"]["input_water"] = newValue;
log("Correct_w1_temperature: {}: {} ({})", cellSpec(devName, cellName), newValue, typeof(newValue));
},
});
Ошибок вроде нет. Элементы /devices/corrected_w1/controls/input_water (и return_water) в MQTT создаются. При включении отладки при изменении wb-w1/28-0417a09127ff в логах информация о запуске правила по условию whenChanged есть, однако значение элементу input_water не присваивается. В логах записей “Correct_w1_temperature” не появляется, т.е. правило Correct_w1_temperature не выполняется.
Перепробовал вроде бы всё, - не работает.
При этом, например, другие, более сложные устройства и правила работают корректно:
defineVirtualDevice("w1_dynamic", {
title: "W1 hour dynamic",
cells: {
input_water_dynamic : {
type : "temperature",
value : 0
},
return_water_dynamic : {
type : "temperature",
value : 0
}
}
});
defineRule("w1_dynamic_refresh", {
when: cron("0 */1 * * *"),
then: function () {
var w1dev = "wb-w1/28-0417a09127ff";
var w1topic = "/devices/w1_dynamic/controls/input_water_dynamic"
runShellCommand("bash /home/count.sh '" + w1dev+ "' '" + w1topic+ "'");
w1dev = "wb-w1/28-0417a091e7ff";
w1topic = "/devices/w1_dynamic/controls/return_water_dynamic"
runShellCommand("bash /home/count.sh '" + w1dev+ "' '" + w1topic+ "'");
}
});