Не срабатывают кнопки

Доброго дня, подключил кнопку к D4 и GND. Срабатывает одно из 5-10 нажатий с частотой в секунду. пробовал как на коротком проводе так и на длинном ~5 метровом.
Что кнопка не срабатывает понял по веб-интерфейсу и слегка модифицированному правилу из примера движка правил в вики.

Модель контроллера?

Wirenboard 4

У вас очень некачественно сформированный баг-репорт.
Правильно ли я понимаю, что проблема в том, что при замыкании Dx на землю, веб-интерфейс и правила реагируют только через некоторое время, поэтому если нажимать быстро кнопку и сразу отпускать, то они не срабатывают вообще?

Нет. это не зависит от скорости и продолжительности удерживания замыкания Dx на землю.
Пробовал и быстро и удерживать порядка двух секунд. Результат один и от же.
Веб интерфейс и правила отрабатывают только один раз и 5-10 нажатий. В тот момент когда нажатие происходит удачно веб интерфейс и правила отрабатывают моментально.
Попробовал замыкать просто два провода без кнопки - результат тот же.

А что будет, если удерживать не 2 секунды, а 10 например?

Евгений, ничего не изменится.

Снял видео может будет более понятно. Там кнопка-выключатель, но замкнутыe провода ведут себя также.


между D4 и GND подключена кнопка, между A1 и Vout(12V) реле управляющее лампочкой.

код правила -
defineRule("buttonrelay", { whenChanged: "wb-gpio/D4_IN", then: function(newValue, devName, cellName) { dev["wb-gpio"]["A1_OUT"] = newValue; } });

где посмотреть событие что кнопка нажалась?

Повторил правило - работает. К примеру у меня подобные симптомы были вызваны 100%-ой загрузкой процессора. Однажды причиной этого был конфиг модбаса, и было, что одним из моих правил грузил WB.

Можно в закладке веб интерфейса /devices в блоке Relays, FETs & Inputs смотрите состояние D4_IN

конфиг менял только добавлением мини-реле WB-MRM2-mini, но посмотрю, спасибо.
D4_IN в веб интерфейсе то понятно, там отрабатывает также как и лампочка.

Сделайте пожалуйста пока следующее:

  1. Уберите правило из wb-rules
  2. в консоли запустите

mosquitto_sub -v -t ‘/devices/wb-gpio/controls/D4_IN’

  1. Убедитесь, что значение - ноль.
  2. Теперь не выключая mosquitto_sub, замкните D4_IN и GND и не отпускайте 10 секунд.
    Посмотрите, приходит ли новое сообщение в консоли.
    Если нет, повторите пункт 4 несколько раз, размыкая и замыкая контакты на >10 секунд каждый раз. Посмотрите за поведением.

удалил правило, запустил консоль.
первые пару раз при нажатии на кнопку пришла единица, потом опять чехарда.
Ноль при отпускании приходит всегда.
Попробовал на соседнем там ситуация аналогичная, сначала все ок 3-4-5 раз потом сидел минуты три так и не добился единицы.

кусочек выхлопа консоли
root@wirenboard:~# mosquitto_sub -v -t ‘/devices/wb-gpio/controls/D4_IN’
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0

обновил по через apt-get upgrade. были проблемы с dpkg. сейчас все хорошо, буду наблюдать.

Проблема с кнопками вылечилась после обновления?

да

посмотрел, проблема с кнопками осталась, но только в случае быстрого “клика” по кнопке. скорее всего из за самой конструкции дешевой кнопки. Буду проверять чуть позже уже непосредственно с выключателями которые будут устанавливаться.

пролежало в шкафу полгода, ремонт движется к завершающей стадии, решил проверить. проблема вернулась(
лог примерно такой.
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 0
/devices/wb-gpio/controls/D4_IN 1
/devices/wb-gpio/controls/D4_IN 1

периодически не проходят нажатия (дублирующиеся нули) и дублирующиеся единицы.

PS. Кнопка заменена на новую от LK60.

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

/devices/wb-gpio/controls/D4_IN 0 - стартовая позиция
/devices/wb-gpio/controls/D4_IN 1 - кнопка нажата
/devices/wb-gpio/controls/D4_IN 0 - кнопка отпущена
кнопка нажата (события нет)
/devices/wb-gpio/controls/D4_IN 0 - кнопка отпущена
кнопка нажата (события нет)
/devices/wb-gpio/controls/D4_IN 0 - кнопка отпущена
/devices/wb-gpio/controls/D4_IN 1 - кнопка нажата
/devices/wb-gpio/controls/D4_IN 1 - кнопка нажата (одновременно с предыдущим)
/devices/wb-gpio/controls/D4_IN 0 - кнопка отпущена
/devices/wb-gpio/controls/D4_IN 1 - кнопка нажата
/devices/wb-gpio/controls/D4_IN 0 кнопка отпущена

вечером постараюсь сделать скринкаст терминала