Тест новой прошивки для реле WB-MR* с поддержкой обработки нажатий

С выходом следующего релиза stable.

Не могу воспроизвести: остановка и запуск драйвера wb-mqtt-serial не влияет на состояние каналов реле. А вот снятие питания при перезагрузке контроллера всегда будет приводить к сбросу каналов реле в состояние “отключено”. Если нужно, чтобы состояние каналов реле восстанавливалось после подачи питания, то нужно установить опцию


и сохранить конфигурацию.

это у меня все установлено и проблема воспроизводится не всегда, а примерно в 50% случаев. Доп софт я останавливал, то есть влияние “извне” исключено. При перезагрузке реле сбрасываются уже в тот момент, когда еще ни тот же самый спрутхаб ни node red не успевают стартануть. Кейс с перезапуском wb-mqtt-serial тестировал с остановленными службами node red и спрутхаб. Если понадобится, могу воспроизвести и видео записать

Воспроизвел. Записал. Доступ по ссылке Выключение реле WB с новой тестовой прошивкой при перезагрузке wb-mqtt-serial - YouTube

Подскажите, пожалуйста, есть ли подобный обработчик для модуля диммера [WB-MDM3]?
требуется
одиночное нажатие - включение/выключение канала димера + включение и выключение по задержке канала реле другого модуля (вентилятор)
двойное нажатие - включение на 10 минут канала реле другого модуля (вентилятор)
длинное нажатие - включение канала диммера на предустановленное значение яркости (ночной режим)

Всё это только в скриптах

а есть пример таких скриптов. В вики ничего подобного не нашел и на форуме только эта тема.

это сюда https://support.wirenboard.com/t/dvizhok-pravil-primery-koda
там на любой вкус и цвет примеры есть.

Не воспроизводится.
Включите debug для порта и проверьте, нет ли команд на реле (ну или перезапуск реле)
Причем советую именно остановить wb-mqtt-serial, убедиться в том что состояние реле не изменилось а потом запустить.

Все сделал как вы описали, поймать не смог, видимо, все-таки из-за моего софта эта проблема вылезает, у меня обработчики долгих нажатий в Node RED настроены. Я искренне думал, что после остановки сервиса NR его скрипты так же мгновенно завершают работу, а по факту, видимо, есть некоторая задежка на полную остановку сервиса.

1 лайк

тестирую прошивки с первого дня выхода, обновил 5 реле WB-MR6C v.2 и один WB-MRM2-mini
ко всем входам всех WB-MR6C v.2 подцеплены кнопки, режимы работы по требованиям проекта, но в основном это - долгое нажатие любой кнопки - выкл всего на модуле, одинарное - переключение соответствующего выхода, на некоторых кнопках переключение 2 и более выходов. Есть кнопки с отработкой одинарного, двойного и долгого нажатия. Везде всё ок. Время ожидания двойного клика настроил как мне удобно, тоже все ок, антидребезг тоже работает, по крайней мере на моих не самых качественных кнопках я ложных срабатываний не заметил.
Жду в релиз и хочу перейти с testing в stable

3 лайка

Спасибо за отзыв. Поделитесь, пожалуйста, значениями, которые вы выставили. И расскажите, чем не устроили заводские.

Вставлю свои 5 копеек. Выше обсуждали, что реле ожидает двойное нажатие даже когда на него нет обработчиков. По умолчанию второе нажатие ожидается 500мс, вроде. Это иногда не удобно - нажал один раз, чтобы свет переключить и не понимаешь сработало или нет. Если уменьшить время ожидания второго клика до 200мс, то этот момент уже не особо раздражает)

Мой кейс: пока что одна кнопка в прихожей, она переключает свет в прихожей по одинарному нажатию и отключает весь свет в доме по длинному (мастер-выключатель).

2 лайка

Время защиты от дребезга входа (мс): 50 мс, не помню какое было по-умолчанию, наверное такое же.
Время длинного нажатия (мс): 1000
Время двойного нажатия, мс: 400
Причина проста: хотелось более быстрой реакции, не удобно долго ждать

1 лайк

Создал тему самопроизвольное включение реле MR6 на новой прошивке.

После установки системы на объект подобрал для себя оптимальные параметры по реакции:
если на входе не висит двойной клик, то:
-антидребезг 20 мс, длинное нажатие 800 мс, двойное нажатие 200 мс
если есть двойные клики, то:
-антидребезг 50 мс, длинное нажатие 800 мс, двойное нажатие 400 мс

Пока кажется, что пользоваться удобно. Реакция практически мгновенная, в глаза не бросается.
В первом случае увеличение антидребезга вызывает неадекватное срабатывание одинарного клика, поэтому было подобрано значение в 20 мс, с ним адекватно.

3 лайка

У меня вопрос:
возможно ли реализовать публикацию события (одинарное\двойное\долгое нажатие) в mqtt топик по средствам шаблона?
например в такой /devices/wb-mr6c_148/once/i1=0 или 1
/devices/wb-mr6c_148/duble/i1=0 или 1
/devices/wb-mr6c_148/long/i1=0 или 1

Здравствуйте!

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

Тестирую модуль MR6C (has already latest fw 1.17.5)

Что заметил, если на входе включено управление по матрице и стоит ловить одинарное и долгое нажатие, а при этом двойное выключено, то при обычном нажатии ощущается задержка, будто бы контроллер ждет двойное нажатие (причем счетчик двойных нажатий увеличивается если сделать двойное).

Ожидаемое поведение, что если не включено двойное нажатие, то одинарное должно происходить мгновенно, сразу после размыкания сухих контактов.

Для наглядности подписался на топик и добавил время с наносекундами:

$ mosquitto_sub -h 127.0.0.1 -v -t '/devices/wb-mr6c_201/#' | xargs -IL date +"%s.%N: L"
1648181237.387702268: /devices/wb-mr6c_201/controls/input_1 State 1
1648181237.539706706: /devices/wb-mr6c_201/controls/input_1 State 0
1648181237.917321864: /devices/wb-mr6c_201/controls/input_1 Single Press Counter 116
1648181237.949349882: /devices/wb-mr6c_201/controls/K1 1

1648181447.631433186: /devices/wb-mr6c_201/controls/K2 1
1648181447.639101125: /devices/wb-mr6c_201/controls/input_2 State 1
1648181447.793052160: /devices/wb-mr6c_201/controls/input_2 State 0

Видно задержку 0.5сек. Второй вход настроек как кнопка без фиксации, тут мгновенно.

wb-mqtt-serial.conf:

 {
     "channels" : [
         {"enabled" : true, "name" : "Single Press Counter"},
         {"enabled" : true, "name" : "Long Press Counter"},
         {"enabled" : true, "name" : "Double Press Counter"}
     ],
     "device_type" : "button_mapping_matrix",
     "in1_lp" : 1,
     "in1_sp" : 3,
     "in2_lp" : 1,
     "in3_lp" : 1,
     "in4_lp" : 1,
     "in5_lp" : 1,
     "name" : "Input 1"
 }

Вот так выглядит в web:

Пробовал менять enabled на false для “Double Press Counter” непосредственно в файле, поведение не изменилось.

Здравствуйте! Спасибо за обратную связь.
Да, все верно. Алгоритм обработки типов нажатий более сложный: всегда происходит определение одного из 4-х типов нажатий. Отключить обработку какого-либо типа нажатия сейчас нельзя. Из-за этого могут иногда быть заметны задержки реакции. Для уменьшения времени задержки реакции на одиночное нажатие попробуйте уменьшить параметр Double Press Time (ms).

Разработчики сейчас думают над оптимизацией алгоритма обработки нажатий.

Данное поведение обсуждалось в данной теме выше: Тест новой прошивки для реле WB-MR* с поддержкой обработки нажатий - #13 от пользователя rlovd

Выставил время срабатывания 100мс и перестало вообще включаться:

1648186777.955447600: /devices/wb-mr6c_201/controls/input_1 State 0
1648186778.449481990: /devices/wb-mr6c_201/controls/input_1 State 1
1648186778.526575546: /devices/wb-mr6c_201/controls/input_1 State 0
1648186779.062177114: /devices/wb-mr6c_201/controls/input_1 State 1
1648186779.260206465: /devices/wb-mr6c_201/controls/input_1 State 0
1648186779.641986257: /devices/wb-mr6c_201/controls/input_1 State 1
1648186779.797651215: /devices/wb-mr6c_201/controls/input_1 State 0

Не происходит включение реле… если ставить 150мс то срабатывает