При изменении уставки реле переходит только в true, при понижении назад в false не возвращается, что может быть не так?
mosquitto_sub -v -t /devices/wb-gpio/# выдает только переключение в 1 при понижении и повышении уставки
Должно быть так: ‘wb-w1/0x00158d0008ce4986’. Или вы используете не наш драйвер для получения значений с датчиков 1-Wire?
В любом случае, первым делом смотрите, какие значения возвращает dev c теми топиками, которые вы используете в правилах.
В теле правила, при помощи log(…), проверьте все значения, которые приходят в функцию. И типы значений при помощи typeof(…). Вполне возможно (я не знаток Zigbee), что от датчика приходит текст.
работает корректно, т.е. переключает реле как надо) а точно такое же правило на другом контроллере
defineVirtualDevice("Andreys", {
title:"Andreys",
cells: {
"temperature": {
type:"range",
value: 18,
max: 32,
min: 18
},
}
});
defineRule("Andreis", {
whenChanged: ["0x00158d0008ce4986/temperature", "Andreys/temperature"],
then: function (newValue, devName, cellName) {
if (dev["Andreys/temperature"] < dev["0x00158d0008ce4986/temperature"]) {
dev["wb-gpio"]["EXT2_K11"] = false; log;
} {
if (dev["Andreys/temperature"] > dev["0x00158d0008ce4986/temperature"]) {
dev["wb-gpio"]["EXT2_K11"] = true; log;
}}}
});
``` не переключает) точнее при любом изменении уставки или температуры на датчике реле включается и все, назад в выключенное не возвращается при снижении уставки
можно проверить все переменные и их типы, которые вы используете.
Вставьте перед проверкой условия проверку на значение и тип каждой переменной, которую используете. И сразу станет понятно, что происходит.
.