Топик помечается "is now marked as unavailable"

Добрый вечер! Закончил сегодня смотреть за контроллером, и до понедельника не буду заходить на него и что-то делать. Не удалось после перезагрузкиwb-mqtt-serial поймать ситуацию с покраснением – работает без ошибок.
Сложно с диагностикой: включать отладку надолго не могу, потому что объем данных большой, минут за десять wb-mqtt-serial насоздавал логов на 40 Мб, оставлять отладку надолго и дожидаться сбоя – не вариант.
В понедельник попрошу вас вернуть настройки назад, к “плохому” варианту, чтобы не ждать сбоя долго.
Потом надо будет еще подобрать таймауты для опроса – сейчас Turkov отвечает достаточно долго, скорость 115200 бит/с думаю, слишком быстрая для его “мозгов”:

Feb 06 13:49:46 ... Poll time for <modbus:49:input:265:1:> is too long: 30 ms (... AverageResponseTime=23232 us, RequestDelay=4500 us, FrameTimeout=20 ms), limit is 13 ms

Частоту опроса устройства надо будет потом тоже уменьшить, чтобы не было:
Feb 06 13:50:23 ... Register read rate limit is exceeded on </dev/ttyMOD2 ...>

Еще можно потом попробовать читать несколько регистров подряд за одну команду (экспериментально определив, что Turkov это поддерживает), подкорректировав шаблон.

Добрый день.

Поменял немного настройки:

За выходные все топики кроме одного покраснели.

Посмотрел сегодня на все красное и понимаю, что чтения регистров не происходит вообще.
Вижу сегодня много ошибок в логе:

WARNING: [modbus] failed to read 1 input(s) @ 274 of device modbus:49: Serial protocol error: malformed response: invalid crc
WARNING: [modbus] failed to read 2 holding(s) @ 97 of device modbus:156: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 274 of device modbus:49: Serial protocol error: malformed response: invalid crc

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

Записал в топик “Ток приточного вентилятора” произвольное новое значение вручную, и оно не меняется. И никаких новых значений wb-mqtt-serial в топик не публикует.
Попробую сегодня еще поймать.

Значение тока приточного вентилятора это регистр “для чтения”, там записаны показания, менять его бессмысленно. Но эти регистры тоже “краснеют”.

Да, но если драйвер его читает, то значение должно было менятся (0.08 – 0.09), а оно не менялось, и новые значения в MQTT не публиковались. Краснеют при ошибках чтения, в meta/error контрола публикуется ‘r’ при этом. Пока наблюдаю, перезагрузил снова на вашем контроллере wb-mqtt-serial.

Можно я обратно mqtt-serial запущу? А то без него правила не работают, а у меня на них пара выключателей работает.

Да, конечно, прстите за долгий ответ!

Сегодня коллеги мне предложили гипотезу: процессор TURKOV может банально не справлятся с большой частотой опроса. Полан такойЖ чтобы усеньшить число ошибок, надо снизить скорость обмена данными и/или увеличить периодичность опроса.

Я начинал с уменьшения скорости до 9600. Это не помогает. Да и черт с ним что иногда читается с ошибкой. Почему после какого-то количества ошибок он перестаёт читать совсем? Даже если чтение можно произвести и он явно это делает. Случаев чтобы постоянно как-то регистр читался с ошибками нет, да иногда они бывают но следующие чтение всегда проходит нормально.

Я вот так и не смог у вас поймать такой момент, чтоб на шине проскочила ошибка, а потом все бы снова хорошо читалось. То, что я видел, скорее соотвтетссвовало картине, что ци-mqtt-serial отчаялся успешно прочесть что-то с содуля, и пометил устройство как недоступное. Вот эти моменты саме интересные: хочется увидеть, что происходит, когда все краснеет, в отладочном режиме.
Если 9600 не помогает, то, возможно, поможет увеличение интервалов между опоследовательными чтениями регистров.
Чтобы проверить, установил сейчас “Минимальный интервал между запросами к устройству (мс)” в значение 500. Буду наблюдать дальше.

Я правильно понимаю что внутри mqtt-serial есть счетчик неудачных чтений регистра и при его превышении чтение прекращается? Если да, может можно как-то вывести его в журнал или посмотреть в реальном времени? Просто ошибки чтения в журнале видно, и просто подождав пока что-то покраснеет и посмотрев сколько было ошибок и когда можно сравнить с этим счетчиком и понять когда он не сбрасывается.

Счетчик есть, безусловно, но не уверен, сожно ли его вывести в журнал или публиковать значение в топик. Уточню у коллег, вернусь с ответом!

сейчас один раз прилетело

WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:49: Serial protocol error: illegal data value

и он сразу пометился как не читаемый.

upd:

вот еще пример (топик тоже покраснел):

похоже что проблема возникает при получении не кондиционного значения

Вот заметил что “в конец” краснеет если приходят такие ошибки:

Понятно… А в веб-интерфейсе у покрасневших топиков продолжали обновляться?
Коллеги предложили еще такой эксперимент, чтобы отсечь проблемы на нашей стороне: после того, как топики Turkov покраснеют, выключите совсем его питание и снова включите: остануся ли топики красными?

Отключил питание установки, все топики постепенно покраснели. После включил и вся краснота ушла.

При этом в журнале:

По этим сообщениям для меня не очевидно на чьей стороне проблема, т.к. mqtt-serial понял что устройство полностью отключено и потом подключено и как в этом случае отрабатывает механизм прекращения чтения регистров не понятно.

Против варианта что проблема на стороне вент. установку говорит то, что после покраснения прочитать значение регистра можно без проблем, он легко читается modbus-client ом.

Здравствуйте! Простите пожалуйста, за долгий ответ. В понедельник будем обсуждать с коллегами вашу проблему, вернусь с результатом.

Пообещал в понедельник, а понедельник – нерабочий, простите. Будем совещаться завтра

Здравствуйте! Посовещались сегоодня с коллегами и решили, что диагностику TURKOV вам будет удобнее проводиить на отдельном порту.
У вас есть возможность соединить отдельным кабелем с контроллером? Хотели отправить вам дополнительный модуль для его подключения.