Подскажите, как осуществить идентификацию связи с модулем для передачи на верхний уровень?
Добрый день!
Пока недостаточно информации!
Подскажите, пожалуйста, какой модуль, как подключен (питание, интерфейс)?
Какие действия выполняете, что ожидаете, что происходит в действительности?
Модуль wb-mr6c v.2 подключен по modbus по шине rs485 к WB7, питание 5v протянуто отдельно. Пишем правила для постоянного контроля связи(связь + включен ли модуль) с устройством, для передачи на верхний уровень. Ожидать постоянный опрос раз в 0,5 сек.
Пример, как реализуем.
Новый текстовый документ.txt (1,4 КБ)
Питание 5В на WB-MR6C v.2?
Пример контроля связи в документации: GitHub - wirenboard/wb-rules: Rule engine for Wiren Board.
Подскажите, какие-то есть вопросы по правилам? Что-то работает не так, как ожидается?
Виноват, 24В.
Вроде, пример, который мы прислали, не особо отличается от документации.
У нас на шине присутствуют 6 устройств, подключили мы все помехозащищенно. Но одно устройство постоянно, то отваливается, то восстанавливается, по крайней мере почти все его mqtt-топики. Для устройств, которые так не поступают, все работает штатно, но с этим устройством у нас забивается память в виде логов и моргает состояние связи. Мы хотим написать следующее правило: опрос каждого устройства каждые 0,5 сек. и если не было связи и она не появилась в последующие 5 секунд, уже в этот момент написать, что связи нет.
А прикрепите диагностический архив, пожалуйста. Может, правда много ошибок на шине.
У нас есть уже отдельная тема по решению этого вопроса, подскажите лучше по wb-rules.
В прикреплённом файле не вижу, где пытаетесь сделать задержку в 5 секунд перед записью в журнал.
Для этого можно использовать setTimeout - для старта таймера и clearTimeout для остановки таймера при возвращении связи с устройством до истечения 5 секунд.
Хочу заметить, что язык асинхронный. Т.е. когда вы делаете задержку:
setTimeout(function () {
log (newValue);
}, 500);
текст программы выполняется дальше, просто запись в лог происходит через 500 мс.
Подскажите, удалось ли вам решить проблему? Есть ли у вас ещё вопросы?