Шаблон датчика XY-MD0X

WB 8.5 unstable.latest (testing)
В соответствии с документацией на датчик XY-MD04 диапазон измеряемых значений температуры: от -40 до +120℃ и влажности: 0-100%.
Я попытался путём добавления в шаблон параметров min и max в разделе channels “отбросить” значения, выходящие за эти пределы.
config-xy-md0x.json (2,2 КБ)

Конкретно в моём случае (из-за особенности расположения случается сильная высоковольтная помеха) датчик периодически выдаёт ошибочное “значение температуры” = -3276,8, а “влажности” = 3276,8. Однако, введение параметров "min": -40 и "max": 120 для температуры и 0 - 100 для влажности, не отбросило вышеприведённые значения.
image

Я неверно истолковываю смысл этих параметров в шаблоне, и не смогу добиться таким образом отброса значений, не входящих в заданный диапазон?

Про возможность написания правила на wb-rules для решения своей задачи я понимаю, мой вопрос сводится именно к механизму обработки шаблона устройства и использованию параметров min и max.
Заранее благодарю за пояснения и отсылки к нужному месту в документации (если будут).

Добрый день!

Да, можно отфильтровать значения через правило. Логика будет примерно такой:

  • Подписка на изменение значения с физического устройства (whenChanged ).
  • Проверка значения , например: > -50 и < 100 .
  • Если значение допустимое — запись в виртуальное устройство .

Как это решить с помощью правила - мне понятно.

Добрый день!

Мне потребуется некоторое время, чтобы уточнить ваш вопрос у разработчиков.

Добрый день!

Посовещался с коллегами — отсечка возможна только через WB-rules. Добавлю это как идею для разработки коллегам.

Ну, значение 2^15 можно и с помощью GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver исключить.

1 лайк

Спасибо! Буду иметь ввиду. Но не хочется лезть в конфигурационные файлы, в которых пока ничего не понимаю. Надеялся, что это можно сделать в рамках шаблона устройства.