Вопрос по истории топика MQTT

добрый день
есть контроллер WB8 с установленным стиком SprutHub. заметил довольно странное поведение некоторых реле - при перезапуске wb-mqtt-serial некоторые каналы реле выключаются, через доли секунды включаются обратно. по логам спрута, ниже, видно, что это происходит по событиям в топиках MQTT. в истории контрола реле в интерфейсе контроллера тоже есть совпадающие по времени странные записи. ниже скрин по одному контролу, параметры в 9-53 и 10-17 нормальные, это штатное поведение, а единички в 16-14 это странные, по времени совпадают с логами. как можно посмотреть, откуда приходят эти события? может в брокере есть какие то зависшие события? можно историю топиков посмотреть?
диагностический архив приложен, спасибо

I | 2026-06-02 | 16:14:32.882 | o.m.SprutHub.Model.Characteristic 235 | — C[63.13.15 Switch.On ‘true’->‘false’], ctx: C[63.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K6/63.13.15//devices/wb-mr6cu_19/controls/K6]_1780406072
I | 2026-06-02 | 16:14:32.887 | o.m.SprutHub.Model.Characteristic 235 | — C[67.13.15 Switch.On ‘true’->‘false’], ctx: C[67.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K5/67.13.15//devices/wb-mr6cu_19/controls/K5]_1780406072
I | 2026-06-02 | 16:14:33.889 | o.m.SprutHub.Model.Characteristic 235 | — C[69.13.15 Switch.On ‘true’->‘false’], ctx: C[69.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K3/69.13.15//devices/wb-mr6cu_19/controls/K3]_1780406073
I | 2026-06-02 | 16:14:34.897 | o.m.SprutHub.Model.Characteristic 235 | — C[77.13.15 Switch.On ‘true’->‘false’], ctx: C[77.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K1/77.13.15//devices/wb-mr6cu_19/controls/K1]_1780406074
I | 2026-06-02 | 16:14:37.286 | o.m.SprutHub.Model.Characteristic 235 | — C[91.13.15 Switch.On ‘true’->‘false’], ctx: C[91.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_20_6/91.13.15//devices/wb-mr6c_20/controls/K6]_1780406077
I | 2026-06-02 | 16:14:37.295 | o.m.SprutHub.Model.Characteristic 235 | — C[84.13.15 Switch.On ‘true’->‘false’], ctx: C[84.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_20_2/84.13.15//devices/wb-mr6c_20/controls/K2]_1780406077
I | 2026-06-02 | 16:14:38.360 | o.m.SprutHub.Model.Characteristic 235 | — C[90.13.15 Switch.On ‘true’->‘false’], ctx: C[90.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_20_1/90.13.15//devices/wb-mr6c_20/controls/K1]_1780406078
I | 2026-06-02 | 16:14:38.460 | o.m.SprutHub.Model.Characteristic 235 | — C[10.13.15 Switch.On ‘true’->‘false’], ctx: C[10.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_91_2/10.13.15//devices/wb-mr6c_91/controls/K2]_1780406078
I | 2026-06-02 | 16:14:38.463 | o.m.SprutHub.Model.Characteristic 235 | — C[9.13.15 Switch.On ‘true’->‘false’], ctx: C[9.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_91_1/9.13.15//devices/wb-mr6c_91/controls/K1]_1780406078
I | 2026-06-02 | 16:14:38.522 | o.m.SprutHub.Model.Characteristic 235 | — C[110.13.15 Switch.On ‘true’->‘false’], ctx: C[110.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_25_6/110.13.15//devices/wb-mr6c_25/controls/K6]_1780406078
I | 2026-06-02 | 16:14:39.569 | o.m.SprutHub.Model.Characteristic 235 | — C[79.13.15 Switch.On ‘true’->‘false’], ctx: C[79.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_57_K2/79.13.15//devices/wb-mr6cu_57/controls/K2]_1780406079

I | 2026-06-02 | 16:14:46.659 | o.m.SprutHub.Model.Characteristic 235 | — C[77.13.15 Switch.On ‘false’->‘true’], ctx: C[77.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K1/77.13.15//devices/wb-mr6cu_19/controls/K1]_1780406086
I | 2026-06-02 | 16:14:46.667 | o.m.SprutHub.Model.Characteristic 235 | — C[69.13.15 Switch.On ‘false’->‘true’], ctx: C[69.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K3/69.13.15//devices/wb-mr6cu_19/controls/K3]_1780406086
I | 2026-06-02 | 16:14:46.672 | o.m.SprutHub.Model.Characteristic 235 | — C[67.13.15 Switch.On ‘false’->‘true’], ctx: C[67.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K5/67.13.15//devices/wb-mr6cu_19/controls/K5]_1780406086
I | 2026-06-02 | 16:14:46.675 | o.m.SprutHub.Model.Characteristic 235 | — C[63.13.15 Switch.On ‘false’->‘true’], ctx: C[63.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_19_K6/63.13.15//devices/wb-mr6cu_19/controls/K6]_1780406086
I | 2026-06-02 | 16:14:47.142 | o.m.SprutHub.Model.Characteristic 235 | — C[84.13.15 Switch.On ‘false’->‘true’], ctx: C[84.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_20_2/84.13.15//devices/wb-mr6c_20/controls/K2]_1780406087
I | 2026-06-02 | 16:14:47.142 | o.m.SprutHub.Model.Characteristic 235 | — C[90.13.15 Switch.On ‘false’->‘true’], ctx: C[90.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_20_1/90.13.15//devices/wb-mr6c_20/controls/K1]_1780406087
I | 2026-06-02 | 16:14:47.150 | o.m.SprutHub.Model.Characteristic 235 | — C[91.13.15 Switch.On ‘false’->‘true’], ctx: C[91.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_20_6/91.13.15//devices/wb-mr6c_20/controls/K6]_1780406087
I | 2026-06-02 | 16:14:47.181 | o.m.SprutHub.Model.Characteristic 235 | — C[9.13.15 Switch.On ‘false’->‘true’], ctx: C[9.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_91_1/9.13.15//devices/wb-mr6c_91/controls/K1]_1780406087
I | 2026-06-02 | 16:14:47.186 | o.m.SprutHub.Model.Characteristic 235 | — C[10.13.15 Switch.On ‘false’->‘true’], ctx: C[10.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_91_2/10.13.15//devices/wb-mr6c_91/controls/K2]_1780406087
I | 2026-06-02 | 16:14:47.245 | o.m.SprutHub.Model.Characteristic 235 | — C[110.13.15 Switch.On ‘false’->‘true’], ctx: C[110.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6c_25_6/110.13.15//devices/wb-mr6c_25/controls/K6]_1780406087
I | 2026-06-02 | 16:14:47.255 | o.m.SprutHub.Model.Characteristic 235 | — C[79.13.15 Switch.On ‘false’->‘true’], ctx: C[79.13.15 Switch.On] ← CLINK[MQTT_1/wb-mr6cu_57_K2/79.13.15//devices/wb-mr6cu_57/controls/K2]_1780406087

Добрый день.

Например так: Wbio-do-r10a-8 реле К6 отключается - #12 от пользователя BrainRoot

В архиве не будет причины переключения.

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

root@wirenboard-APGSR6BG:~# mosquitto_sub -v -t /devices/wb-mr6cu_57/controls/K2
/devices/wb-mr6cu_57/controls/K2 1
/devices/wb-mr6cu_57/controls/K2 (null)
/devices/wb-mr6cu_57/controls/K2 1
/devices/wb-mr6cu_57/controls/K2 1

Это ожидаемо при перезапуске.

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

То есть нет имени клиента который публикует?
Я рекомендую использовать grep для фильтрации, да прямой просмотр иногда неудобен.

Ну и, получается, что вы перезапускаете драйвер и суть вопроса в переходных процессах?