Не работает правило


#1

День добрый.
Вопрос глупый, но все же.
Это правило не срабатывает, хотя в UI датчик виден и показания меняются.
В чем секрет?

defineRule(“tmp”, {
whenChanged: “wb-w1/28-00000b60afb8”,
then: function(newValue)
{
if(newValue < 30)
dev.FH_1.K1 = 1;
if(newValue >= 30)
dev.FH_1.K1 = 0;
}
});

WB 6.5 обновления 1.7.2


Поддержка 1-wire устройств и всё-всё-всё
#2

Добрый день!

Тут стандартный совет по отладке: добавьте отладочную печать через log(), нажмите гаечный ключ, и смотрите, куда доходит ваш скрипт.


#3

Пробовал. В логе отображается только то что правило создано и все.


Так же пытался вывести и параметр newValue. С другими устройствами работает.


#4
  1. Оставьте в самом правиле только log("Test");
  2. В этом правиле в whenChanged укажите другой параметр, с которым работает. Убедитесь, что Test появляется.
  3. Потом верните нынешнее устройство. Убедитесь, что Test не появляется.
  4. Пришлите скриншот с нынешним устройством из Devices.

#5

defineRule(“tmp”, {
whenChanged: “FH_1/K1”,
then: function()
{
log(“Test”);
}
});

Включил и выключил реле, в лог все вышло.

defineRule(“tmp”, {
whenChanged: “wb-w1/28-00000b60afb8”,
then: function()
{
log(“Test”);
}
});


#6

Может еще схема подключения влияет (но тогда и значения в Devices не показывалоб).
Датчик подключен “+” и “-” к БП MeanWell, “S” к W1 контроллера. “-” БП и контроллера соединены.

[UPD]
Заметил еще странность.
В Settings у датчика нет типа значения.


#7

Можно в “…/meta/type” датчика прописать “temperature” и тогда работает, сообщения в debug приходят.


Но через некоторое время “…/meta/type” сново пустой.

[UPD #1]
Сменил датчик. Другой завелся без проблем. “meta/type” - temperature и правило срабатывает. Видимо брак в датчике. Надо остальные 13 проверить…

[UPD #2]
Подключил все датчики разом (и тот что барахлил).
15 мин. полет нормальный. Буду наблюдать далее.


назначил(а) ответственного EvgenyBoger #8