Я ошибался на счёт правила. Уточнил у коллеги, нет правила. Данные просто отправляются в MQTT без обработки. Ну тем лучше, сделаю обновление.
Кроме того, что wb-mqtt-serial отваливается, ещё сервис enermon-ui отваливается. А без него удалённо в веб-интерфейс не попадёшь. Нужно каждый раз через Putty заходить в контроллер, перезапускать этот сервер, только так можно попасть в веб-интерфейс. На скриншоте видно.
И ещё есть вопрос. Когда я первый раз настраивал устройство в Configs/Serial Device Driver Configuration, имена регистров я написал русскими буквами. Затем переименовал латинскими буквами. В Devices появилось два пункта, с русским названием и с латинским. Удаляю эти пункты (регистры). С русскими буквами не удаляется.
Затем снова добавляю. Имена пишу латинскими буквами. Теперь один регистр с латинским названием присутствует, но значение не обновляется. Второй регистр присутствует с двумя названиями. Но который латинскими буквами - тот обновляется. В общем каша какая-то.
В файле /etc/wb-mqtt-serial.conf всё красиво, регистров с русскими буквами нет.
Все-таки посмотреть бы в лог, на чем отваливается. Если возможно - пришлите его, лог.
И заодно файл wb-mqtt-serial.conf
Это что-то нестандартное, в штатном софте такого нет.
И на скриншоте видно, что он выключен. Если контроллер по какой-то причине перезапускается - то сервис сам не стартует.
Если есть доступ к контроллеру по ssh, почему просто туннель через ssh не используете?
Да, созданные топики - кэшируютрся в MQTT.
Как удалить - тут:
https://wirenboard.com/wiki/MQTT#.D0.9E.D1.87.D0.B8.D1.81.D1.82.D0.BA.D0.B0_.D0.BE.D1.87.D0.B5.D1.80.D0.B5.D0.B4.D0.B8_.D1.81.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D0.BD.D0.B8.D0.B9
Не получается?
Как скачать файлы с контроллера на компьютер не знаю. Поэтому пытался как мог. Конец файла /var/log/messages. И файл /etc/wb-mqtt-serial.conf
Messages.txt (53.1 КБ)
wb-mqtt-serial.conf.pdf (113.7 КБ)
sudo не нужно. И забываете добавить “#” в конце, надо так:
mqtt-delete-retained '/devices/kb-006_1/controls/Main счётчик/#'
Вот тут похожее
Winscp вообще не запускается?
Так, вижу много ошибок “Serial protocol error: invalid crc” и “malformed response: invalid data size” которые говорят о том (из опыта) что скорее всего установлено неверное количество стоп-бит.
В устройствах, из которых получаете данные - настройки по умолчанию какие? Для проверки - можно поменять количество стоп-бит для всего порта, кроме пиборов ведь туда ничего не подключено?
С удалением топиков получилось. Лишнее удалил.
Для скачивания файлов с контроллером Вы мне советовали раннее программу Sshfs Manager. Её не смог запустить. Программа Winscp заработала. Но у меня не всё так просто. Я сначала подключаюсь с помощью Putty к нашему корпоративному сайту enermon.naukanet.ru, затем с помощью команды SSH nauka@localhost -p 11028 подключаюсь к WirenBoard. А программа Winscp показывает файлы enermon. Как высветить файловую систему WB не знаю.
Поменять количество Стоповых бит, наверное будет не правильно. В подключенных приборах параметры зашиты жёстко. Данные 8 бит, 2 стоповых, без контроля чётности. Не могут ли ошибки быть связаны с настройками задержек? Сейчас выставлены такие задержки:
для порта /dev/ttyRS485-1:
Response timeout (ms) - 1000
Guard interval (us) - 100 000
Desired poll interval (ms) - 2000
для устройства Vesy-1:
Desired poll interval (ms) - 1000
Delay before accessing the device (ms) - 100
Interval between register reads - 100 000
Device timeout (ms) - 3000
Frame timeout (ms) - 50
для устройства Vesy-4
Desired poll interval (ms) - 2000
Delay before accessing the device (ms) - 100
Interval between register reads - 100 000
Device timeout (ms) - 3000
Frame timeout (ms) - 50
Да, все наши примеры - для доступа к контроллеру в одной сети. Если вы используете промежуточный хост - то нужно построить туннель, например:
подключаюсь к шлюзу (10.0.0.6), на порт 226 которого уже отображен порт ssh целевого хоста:
ssh -L 2023:localost:226 10.0.0.6
После подключения - имею на своей локальной машине на 2023 - порт ssh целевого узла.
Ну или хочу получить доступ к порту ssh хоста, расположенного за шлюзом, прямого доступа к которому нет:
ssh -L 2023:АДРЕС_УЗЛА:22 10.0.0.6
Гуглится например: Магия SSH / Хабр
Ну или поднимаю VPN к шлюзу за которым находится нужный хост. Все зависит от настроек вашей сети, общих рекомендаций нет. Как по мне - проще использовать VPN. Если настраивал кто-то другой - надо спросить у него.
Guard interval (us) - 100 000 это 100 миллисекунд дополнительной задержки перед отправкой в порт данных. Вообще - не должно.
Дело не в таймаутах, ошибки
Serial protocol error: invalid crc
и
Serial protocol error: malformed response: invalid data size
говорят все же что проблемы со связью. То есть данные в ответ на запрос получены, но либо не полностью либо повреждены. Если включить Debug для порта - то в лог будутписаться как отправленные так и принятые посылки. Так как в подключенных приборах параметры соответствуют тем что в wb-mqtt-serial.conf - остается вариант аппаратной проблемы.
Есть ли возможность переключить один из приборов на другой порт, на второй, который свободен? Проверить - надежно ли подключена земля между контроллером и приборами (отсутствие общего провода - тоже может давать пербои связи).
Ну и фото подключения со стороны контроллера и приборов бы.