bmurat
October 22, 2026, 11:34am
1
приложен диагностический архив, доступен только сотрудникам поддержки
(2,9 МБ)
Добрый день. Сразу сказу что такое поведение появилось с релиза 2606. До этого все работало без ошибок.
Суть проблемы такая. Есть сенсор уличной температуры который один единственный на порту rs485-1. Читаются три регистра. Значение трех регистров публикуется шлюзом mgate в формате float
"enabled": true,
"topic": "sht3x_10/Humidity",
"unitId": 4,
"address": 10,
"format": "float",
"size": 4,
"scale": 1,
"byteswap": true,
"wordswap": true
},
{
"enabled": true,
"topic": "sht3x_10/Temperature",
"unitId": 4,
"address": 12,
"format": "float",
"size": 4,
"scale": 1,
"byteswap": true,
"wordswap": true
},
{
"enabled": true,
"topic": "sht3x_10/Devpoint",
"unitId": 4,
"address": 14,
"format": "float",
"size": 4,
"scale": 1,
"byteswap": true,
"wordswap": true
Стороння автоматика читает температуру, обрабатывает и расчитывает средную температуру для ПЗА. Проблема в том что когда выполняешь обновление (связанное с serial) шлюз mgate публикует кратковременно мусор вместо последнего или нулевого показания. Это попадает в автоматику ПЗА и падает расчет средней температуры. С датчиком проблем нет, такая проблема именно при рестарте сервиса serial. Есть выход из этой проблемы?
bmurat
October 22, 2026, 11:39am
3
Для пояснения. На скрине WB уже расчитанные данные ПЗА сторонней автоматикой полученные по MQTT.
Добрый день.
Что публикует сервис wb-mqtt-serial в процессе перезапуска в топик, который сконфигурирован в wb-mqtt-mbgate? То есть подпишитесь на него пожалуйста и покажите.
bmurat
October 22, 2026, 1:07pm
7
Подскажите как это поймать? На самом графике WB этих аномалий нет, да и в работе с датчиком проблем нет от слова совсем. Это какой то краткосрочный баг, который ловит сторонний CodeSYS и пишет в свои регистры.
bmurat
October 22, 2026, 2:11pm
9
Вот, где значение null там serial перезагрузался
root@wirenboard-AXEJVKTS:~# mosquitto_sub -t '/devices/sht3x_10/controls/Temperature' -v
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature (null)
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature 10.3
/devices/sht3x_10/controls/Temperature 10.2
^Croot@wirenboard-AXEJVKTS:~mosquitto_sub -t '/devices/sht3x_10/controls/#' -v
/devices/sht3x_10/controls/Humidity 51.8
/devices/sht3x_10/controls/Humidity/meta {"order":1,"readonly":true,"title":{"ru":"\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c"} ,"type":"value","units":"%, RH"}
/devices/sht3x_10/controls/Humidity/meta/order 1
/devices/sht3x_10/controls/Humidity/meta/readonly 1
/devices/sht3x_10/controls/Humidity/meta/type value
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Temperature/meta {"order":2,"readonly":true,"title":{"ru":"\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u044 3\u0440\u0430"},"type":"value","units":"deg C"}
/devices/sht3x_10/controls/Temperature/meta/order 2
/devices/sht3x_10/controls/Temperature/meta/readonly 1
/devices/sht3x_10/controls/Temperature/meta/type value
/devices/sht3x_10/controls/Devpoint 0.7
/devices/sht3x_10/controls/Devpoint/meta {"order":3,"readonly":true,"title":{"ru":"\u0422\u043e\u0447\u043a\u0430 \u0440\u043e\u0441\u044b" },"type":"value","units":"deg C"}
/devices/sht3x_10/controls/Devpoint/meta/order 3
/devices/sht3x_10/controls/Devpoint/meta/readonly 1
/devices/sht3x_10/controls/Devpoint/meta/type value
/devices/sht3x_10/controls/Humidity 51.9
/devices/sht3x_10/controls/Humidity 51.8
/devices/sht3x_10/controls/Temperature/meta (null)
/devices/sht3x_10/controls/Temperature/meta/order (null)
/devices/sht3x_10/controls/Temperature/meta/readonly (null)
/devices/sht3x_10/controls/Temperature/meta/type (null)
/devices/sht3x_10/controls/Temperature (null)
/devices/sht3x_10/controls/Devpoint/meta (null)
/devices/sht3x_10/controls/Devpoint/meta/order (null)
/devices/sht3x_10/controls/Devpoint/meta/readonly (null)
/devices/sht3x_10/controls/Devpoint/meta/type (null)
/devices/sht3x_10/controls/Devpoint (null)
/devices/sht3x_10/controls/Humidity/meta (null)
/devices/sht3x_10/controls/Humidity/meta/order (null)
/devices/sht3x_10/controls/Humidity/meta/readonly (null)
/devices/sht3x_10/controls/Humidity/meta/type (null)
/devices/sht3x_10/controls/Humidity (null)
/devices/sht3x_10/controls/Humidity/meta {"order":1,"readonly":true,"title":{"ru":"\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c"},"type":"value","units":"%, RH"}
/devices/sht3x_10/controls/Humidity/meta/error (null)
/devices/sht3x_10/controls/Humidity/meta/order 1
/devices/sht3x_10/controls/Humidity/meta/readonly 1
/devices/sht3x_10/controls/Humidity/meta/type value
/devices/sht3x_10/controls/Humidity 51.8
/devices/sht3x_10/controls/Temperature/meta {"order":2,"readonly":true,"title":{"ru":"\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430"},"type":"value","units":"deg C"}
/devices/sht3x_10/controls/Temperature/meta/error (null)
/devices/sht3x_10/controls/Temperature/meta/order 2
/devices/sht3x_10/controls/Temperature/meta/readonly 1
/devices/sht3x_10/controls/Temperature/meta/type value
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Devpoint/meta {"order":3,"readonly":true,"title":{"ru":"\u0422\u043e\u0447\u043a\u0430 \u0440\u043e\u0441\u044b"},"type":"value","units":"deg C"}
/devices/sht3x_10/controls/Devpoint/meta/error (null)
/devices/sht3x_10/controls/Devpoint/meta/order 3
/devices/sht3x_10/controls/Devpoint/meta/readonly 1
/devices/sht3x_10/controls/Devpoint/meta/type value
/devices/sht3x_10/controls/Devpoint 0.7
/devices/sht3x_10/controls/Humidity 51.8
/devices/sht3x_10/controls/Temperature 10.2
/devices/sht3x_10/controls/Devpoint 0.7
bmurat
October 22, 2026, 2:15pm
10
Ровно такое же поведение у штатного устройства WB
root@wirenboard-AXEJVKTS:~# mosquitto_sub -t '/devices/wb-map3e_12/controls/Irms L1' -v
/devices/wb-map3e_12/controls/Irms L1 1.417
/devices/wb-map3e_12/controls/Irms L1 1.3908
/devices/wb-map3e_12/controls/Irms L1 1.3895
/devices/wb-map3e_12/controls/Irms L1 1.3965
/devices/wb-map3e_12/controls/Irms L1 1.396
/devices/wb-map3e_12/controls/Irms L1 1.3955
/devices/wb-map3e_12/controls/Irms L1 (null)
/devices/wb-map3e_12/controls/Irms L1 1.3955
/devices/wb-map3e_12/controls/Irms L1 1.3968
/devices/wb-map3e_12/controls/Irms L1 1.4105
/devices/wb-map3e_12/controls/Irms L1 1.3928
/devices/wb-map3e_12/controls/Irms L1 1.389
/devices/wb-map3e_12/controls/Irms L1 1.3973
/devices/wb-map3e_12/controls/Irms L1 1.3863
^Croot@wirenboard-AXEJVKTS:~#
Да, неопределенные значения когда в исходном топике null - ожидаемы.
17:36:37.466 raw=3333 4123 T=10.2
17:36:37.667 raw=6554 706D T=2.939e+29 <пока null
17:36:40.882 raw=CCCD 4124 T=10.3
Воспроизвел. Спрошу разработчиков - считать ли это багом, поскольку процесс перезапуска и старта/рестарта - относится к переходным.
Предлагаю исключить неожиданный диапазон значений уже в принимающй стороне.
bmurat
October 22, 2026, 3:09pm
12
Да что же мне везет на баги. Считаю что это баг. Шлюз предназначен для стороних устройств и не должен передавать не достоверные данные,даже из-за переходных процессов.Либо ноль либо последнее значение.В моем случае это оказалось критично. Я пока перекину физически опрос на сторонее устройство.
bmurat
October 22, 2026, 4:40pm
13
Остановил сервис serial и шлюз mgate публикует недостоверные данные постоянно, причем не только в float. Так что баг однозначно на исправление,так быть не должно.
Скрин когда сервис serial запущен
Здесь сервис serial остановлен
Если в процессе работы сервис serial зависнет и прекратит работать, то значения будут null?