Добрый день! Получил свой экземпляр WB5, есть модули DI-DR-8 и DO-R3A-8. Написал правило, по которому при изменении состояния входа EXT1_DR1 с 0 на 1 контроллер меняет состояние реле EXT2_R3A1. По русски - при нажатии на выключатель должен включаться или выключаться свет. Правило работает, но постоянно с разным запаздыванием, иногда мгновенно, а чаще приходится держать клавишу до половины секунды, иначе срабатывания не происходит. Если я правильно читал документацию и этот форум, время реакции на клавишу должно составлять не более 10 мс, или я неправ?
Что можно сделать, чтобы это исправить?
Добрый день,
покажите пожалуйста правило.
defineRule("R1_Test", { whenChanged: "wb-gpio/EXT1_DR1", then: function (newValue, devName, cellName) { if(newValue ==1){ dev["wb-gpio"]["EXT3_R3A1"] = !dev["wb-gpio"]["EXT3_R3A1"]; } } });
Здесь точно EXT3_R3A1, а не EXT2_R3A1?
Да, у меня подключены два модуля di-dr-8 и два r3a-8
Покажите пожалуйста вывод
dpkg -l wb-homa-gpio
root@wirenboard:~# dpkg -l wb-homa-gpio
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
++±==============-============-============-=================================
ii wb-homa-gpio 1.13.6 armel Wiren Board Smart Home MQTT gener
root@wirenboard:~#
Евгений? Есть мысли?
Пока нет, попробуем воспроизвести, когда будет время.
Только что проверил - не воспроизводится (разве что вместо реле у меня был TTL-модуль, но это несущественно), все мгновенно отрабатывает.
Я так понимаю, у вас больше никакой периферии не подключено и ничего тяжелого процессор не делает?
Посмотрите пожалуйста обмен по mqtt: mosquitto_sub -v -t /devices/wb-gpio/controls/#
Так же интересует /var/log/messages
Вот всё, что подключено:
WB5, комплектация без радиомодуля 433 МГц (только Wi-Fi и GSM);
Внутренний MOD1 - Изолированный RS485;
WB-DI-DR-8;
WB-DI-DR-8;
WB-DO-R3A-8;
WB-DO-R3A-8.
Чуть позже смогу посмотреть вывод команд, вечером. Если нетрудно, напишите, какие еще команды могут помочь в диагностике.
Может, ему как-то полный сброс сделать?
В момент нажатия на клавишу - ничего необычного вроде бы:
mosquitto_sub -v -t /devices/wb-gpio/controls/#
…
/devices/wb-gpio/controls/EXT1_DR1 1
/devices/wb-gpio/controls/EXT3_R3A1/on 0
/devices/wb-gpio/controls/EXT3_R3A1 0
/devices/wb-gpio/controls/EXT1_DR1 0
/devices/wb-gpio/controls/EXT1_DR1 1
/devices/wb-gpio/controls/EXT3_R3A1/on 1
/devices/wb-gpio/controls/EXT3_R3A1 1
/devices/wb-gpio/controls/EXT1_DR1 0
/devices/wb-gpio/controls/EXT1_DR1 1
/devices/wb-gpio/controls/EXT3_R3A1/on 0
/devices/wb-gpio/controls/EXT3_R3A1 0
/devices/wb-gpio/controls/EXT1_DR1 0
/var/log/messages по ссылке: http://1drv.ms/1WsWZnf
Что значит ничего необычного? Есть ли задержка между нажатием кнопки и появлением строчки /devices/wb-gpio/controls/EXT1_DR1 ?
Не сообразил. Да, есть. Строчка появляется одновременно со срабатыванием реле.
В messages при этом ничего не происходит.
Здравствуйте. Возможно, проблема с IRQ для данного GPIO - необходимо проверить.
Как вычислить номер IRQ по GPIO я сейчас сходу не скажу, но можно
попробовать запустить следующую команду
watch --interval=1 'cat /proc/interrupts|grep gpio'
Если GPIO работает корректно, в одной из строчек значение во второй
колонке должно увеличиваться на 1 при нажатии на кнопку (и только при нажатии
на кнопку).
Я тоже подумал, что проблема где-то в обработке прерываний - это не может быть связано с тем, что одновременно подключены два одинаковых модуля?
Команду проверю вечером (днем у меня есть доступ к SSH контроллера, но нет возможности проверить работу клавиш).
Нет, не увеличивается. Нажимаю, реле переключается, но во втором столбце все нули.
Отключил один из двух модулей R3A-8 и все стало хорошо. Реакция мгновенная, счетчики прерываний увеличиваются.
Проверил трижды: в настройках ставлю тип модуля 4 - None, shutdown -h now, отключаю питание, отключаю модуль, включаю питание. После загрузки модуль R3A-8 работает на ура. В такой же последовательности включаю обратно - оба модуля тормозят, счетчики не увеличиваются.
А если другой R3A вместо этого поставить?
Возможно бракованный модуль.