Да они всегда красные, свой цвет и е меняют. Естественно я перегружал его и не один раз. В веб интерфейсе цвет не меняется в начале, после перезагрузки. У меня красным светятся не только эти поля.
На всякий случай вот лог (это снова переименованный архив zip) и конфиг сразу после перезагрузки.
wb-homa-modbus.conf (1.3 КБ) messages.txt (547.8 КБ)
Смотрю в файлы. Мы ее, причину, все ж найдем…
Вот что подозрительно:
В файле wb-homa-modbus.conf
"parity": "E",
Все устройства настроены на использование четности? Или только некоторые?
Ну и
"stop_bits": 1
Тот же вопрос. Давайте проверять все устройства, они должны быть настроены идентично.
Видимо не все. У меня счетчик 11-ое устройство работало только с такой четностью, с другой не получалось заставить работать, а вот ваши приборы работают вроде на другой четности. Но ранее у меня все было так же но работало. Когда сломалось и от чего не могу сказать, но после настройки, работало. Попробую сейчас отключить все кроме счетчика.
Странно получается. Даже если я отключаю какой то прибор (тот же 11 счетчик) то цвет его показателей никак не меняется, как было два первых красными, так и остались. Что это за глюк может быть? Раньше при отключении они краснели по одной. Устройство перегружал. Браузеры пробовал разные.
Если что-то одно работает с другими параметрами - то именно ему (устройству) надо их добавить.
{
"slave_id": "11",
"device_type": "PD561Z",
}
а в “общей” настройке порта - установить то что для остальных.
UPD: Не умеет менять четность для отдельных устройств.
Моя ошибка.
Давайте для всех установим одинаковые параметры.
Или вынесем счетчик на другой порт.
Я уже думал над этим, но тогда мне придется к этому устройству вести отдельную линию (новую), а это проблематично. Виртуально разделить порт как я понимаю нельзя и параметры у него строго фиксированы для всех устройств. У меня имеется 2 китайских устройства и 4 ваших, у счетчика я пробовал менять четность, но тогда его почему то не видит WB4.
А как вообще посмотреть настройки в например ваших устройствах? Какую команду отправить?
И почему при отключении устройства в Веб интерфейсе у него не краснеют и не обнуляются параметры? Раньше, я помню, при неправильной конфигурации прибора они один за одним становились “красными”, а при исправлении так же последовательно включались. Сейчас просто не меняются больше цифры.
Еще раз посмотрел настройки моего счетчика. Оказывается я пробовал менять в нем четность на N (у него есть экран с меню, там и менял) но это никак не влияет на его работу. Что бы там не поставил но связь с ним есть только при четности Е и 1 бит. Поэтому тогда так и оставил, а другие приборы вроде как работают и так. А вообще сильно влияет четность и стоповый бит? Вроде же работает.
Тут описано:
https://wirenboard.com/wiki/index.php/Modbus-client
Общие регистры: https://wirenboard.com/wiki/index.php/Power_Meter_WB-MAP6S_Control_Registers
Останавливаем драйвер:
systemctl stop wb-mqtt-serial
То есть для того чтоб увидеть бит четности (адрес в примере - 82):
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a82 -t0x03 -r111
Количество стоп-бит (адрес в примере - 82):
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a82 -t0x03 -r112
И поменять тоже можно, записью в эти регистры.
Но ошибки показывает.
А чем вообще перекодировать ответ получаемый, как я понимаю в 16ричной системе? Особенно когда 2 байта. Я сейчас делаю это в онлайн конверторе Онлайн преобразование но это очень неудобно. Есть что то лучше?
У меня, как я понимаю
service wb-homa-modbus stop
Да, верно.
И да! ОТключить четность - это “none” (у нас).
N и E - это НЕ факт что именно отключение, это могут быть разные виды четности.
UPD: более подробно написал про четность.
Это у всех устройств или только ваших? А то чего то выдает ерунду какую то.
Data: 0x01b4
А у ваших устроств
Data: 0x0000
У нас у всех устройств одинаковые регистры управления. Для устройств других производителей - могут (и будут) отличаться.
С адресами и с четностью разобрался. Теперь wb-homa-modbus.conf такой
“baud_rate”: 9600,
“parity”: “N”,
“data_bits”: 8,
“stop_bits”: 2,
“poll_interval”: 400,
“enabled”: true,
“guard_interval_us”: 100000
Но проблема с “красными” значениями никуда не ушла. Если хотя бы один раз возникает пропуск считывания значения, то оно становится красным и потом если считывание возобновляется то цвет не меняется. Помогает только удаление и перезапуск контроллера
mqtt-delete-retained /devices/wb-mr6c_191/#
В чем ещё может быть проблема?
Вроде работает. Я правильно понимаю, что значение становится красным если не получается получить значение, а снова меняет цвет на нормальный не сразу, а через какое то время? У меня по крайней мере так. Значение снова стало нормального цвета через примерно 30 мин, после того как данные начали снова считываться. И у меня все боле менее работает только с “poll_interval”: 400 если уменьшить до 300 то тогда начинают появляться “красные”. Это нормальное поведение? Можно исправить, а то больно редко обновляется учитывая что самих данных много. И за что отвечает параметр “guard_interval_us”: 100000?
Полное описание параметров:
https://github.com/wirenboard/wb-mqtt-serial/blob/master/README.md
Если уменьшение poll_interval вызывает ошибки - то посмотрите в описании есть
// Минимальный интервал опроса регистров данного устройства
// по умолчанию, в миллисекундах
"poll_interval": 10,
// Минимальный интервал между опросом индивидуальных регистров
// данного устройства в микросекундах
"guard_interval_us": 0,
Можно использовать эти параметры для отдельного устройства. Те, кто может работать “быстро” - работают, те кому нужны задержки - работают с задержками.