WB-MSW v.4: Errata
ERRMIR06: Проблемы при работе с ИК-приёмопередатчиком
Подверженные устройства
Все WB-MIR v2, WB-MSW с ИК с прошивкой до 4.29.7 включительно
Описание
В указанных прошивках наблюдается ряд проблем при использовании функционала ИК-приемопередатчика:
- При работе с банками ИК-команд (запись, редактирование) с поочередным использованием coil и holding регистров значения в них могли рассихронизироваться и ИК модуль мог «зависнуть» и более не отвечать на команды.
- При активной команде с одним банком можно установить в «1» coil регистры других банков.
- Значение в регистре воспроизведения команды сбрасывалось в «0» сразу после начала воспроизведения, а не по окончанию команды.
- При записи в ROM слишком длинной команды (больше максимальной длины) запись не производилась, однако при записи в RAM записывалось столько данных, сколько могло поместиться. Из-за этого могли быть сложности с запись длинных команд в ROM.
Причины и подробное описание
Ошибка в прошивке.
Запланированное исправление
Исправлено в версии прошивки 4.29.8, обновите прошивку устройства.
Пути обхода
Если вы не можете обновить прошивку устройства, то ошибку можно обойти:
- Использовать только один интерфейс: либо coil либо holding регистры для работы с банками ИК-команд.
- Сначала завершать работу с одним банком, затем начинать работу с другим (это должны быть разные modbus-запросы).
- Оценивать время выполнения команды и выполнять временную задержку на стороне клиента.
- Записать длинную команду можно так: выполнить запись в RAM, считать данные и записать из ROM через редактирование банка.
ERRMIR07: Большое время ответа на команду стирания всех ИК-банков
Подверженные устройства
Все WB-MIR v2, WB-MSW с ИК с прошивкой до 4.29.10 включительно
Описание
При записи "1" в coil-регистр 5000 (стирание всех ИК-команд из ROM памяти) ответ устройства приходит с большей задержкой, чем при записи других регистров. Время ответа может достигать ~250 мс для устройств на микроконтроллерах STM. Из-за этого возможно проблемы при работе с устройством через драйвер wb-mqtt-serial, т.к. стандартный таймаут для ответа устройства, указанный в шаблоне, 1 мс. Проявляется это как ошибки обмена после нажатия на кнопку (или записи в MQTT-топик) "Reset all ROM"/"Стереть все команды в ROM".
Причины и подробное описание
Ошибка в прошивке.
Запланированное исправление
Исправлено в версии прошивки 4.29.11, обновите прошивку устройства.
Пути обхода
Если вы не можете обновить прошивку устройства, то ошибку можно обойти следующими способами:
- увеличить таймаут ответа устройства до 500 мс
- не использовать регистр coil 5000, а стирать каждый банк памяти поочередно путём установки первых двух регистров в нули через редактирование банка
- записывать новую команду в банк сразу, без предварительного стирания банка
ERRWB-MSWv30011: Влияние ИК-передатчика на показания датчиков движения и освещенности
Подверженные устройства
Устройства WB-MSW v.3, WB-MSW v.4 с версией прошивки до 4.29.7 включительно
Описание
При передаче ИК-команд показания датчиков освещенности и движения кратковременно увеличиваются.
Запланированное исправление
Исправлено в версии прошивки 4.29.8.
ERRWB-MSv20006: Переполнение показаний относительной влажности при околонулевой влажности воздуха
Подверженные устройства
Все устройства с датчиком SHT40 с прошивкой до 4.31.3 включительно:
- WB-MS v.2 начиная с партии v4.3A/T (выпуск с 09.2022)
- WB-MSW v.3 начиная с партии 4.19 (выпуск с 12.2021)
- все WB-MSW v4
Описание
Датчик SHT40 может отдавать показания влажности, которые после пересчёта в проценты могут оказаться меньше нуля или больше 100%. Документация на датчик предписывает проверять значение влажности и приводить его к диапазону от 0 до 100%. Однако из-за ошибки в прошивке такой проверки не было. Из-за этого при околонулевой влажности воздуха значение в регистре относительной влажности могло быть около 650%.
Возможные пути устранения
- обновить прошивку до 4.31.4
- на стороне клиента принимать регистр относительной влажности как знаковый s16 и приводить значение регистра к диапазону от 0 до 100% при выходе за пределы диапазона.
Запланированное исправление
Проблема исправлена в прошивке 4.31.4. Значение в регистре относительной влажности теперь строго от 0 до 100%
ERRWB-MSWv30012: Ошибка при чтении нескольких диапазонов coil-регистров за один запрос
Подверженные устройства
Устройства WB-MSW v.3, WB-MSW v.4 с версией прошивки до 4.31.4 включительно
Описание
Из-за ошибки в библиотеке Modbus, если включен режим непрерывного чтения (записано 1 в регистр 114) и выполняется запрос на чтение coil-регистров, например, с адреса 0 по 11 за один запрос, то в ответе от устройства валидное значение будет иметь только первый coil-регистр в запросе. Значение остальных регистров будет равно 0 и не соответствовать действительности. При этом чтение coil-регистров по одному работает корректно.
При работе с контроллером Wiren Board это вызывало неожиданное поведение работы светодиодов: их можно было включить через web-интерфейс на вкладке «Устройства», но уже нельзя было выключить. Текущее состояние светодиодов отображалось некорректно.
Запланированное исправление
Исправлено в прошивке версии 4.31.5, обновите прошивку устройства.
ERRWB-MSWv30013: Неверное значение регистра пользовательской температурной компенсации после стирания EEPROM
Подверженные устройства
Проблеме потенциально подвержены все устройства, которые:
- вышли с производства с прошивкой от 4.29.0 до 4.31.10 включительно;
- были повторно проверены на производстве, подвергались стиранию EEPROM или настроек связи вручную, подвергались переустановке адреса на программаторе адресов.
Это ревизии:
- MSW v3 LORA - v4.22I/L и далее (даты производства 04.2023 - 05.2023);
- MSW v3 - v4.22I/5, v4.22I/6;
- MSW v4 LORA - все ревизии;
- MSW v4 - все, кроме отгруженных после 08.11.24.
Не подвержены проблеме: TH и M исполнения (партии xxx/TH и xxx/M)
Также проблеме подвержены все WB-MSW v.3 и WB-MSW v.4 с установленным CO2 датчиком, если выполнялось обновление прошивки на версии от 4.29.0 до 4.31.10 со сбросом EEPROM (wb-mcu-fw-updater ... --restore-defaults
или wb-mcu-fw-flasher -e
).
Однако обращаем внимание, что стирание EEPROM ведет не только к указанной ошибке, но и к потере калибровок датчика по измерению других величин, например шума и освещенности. Если по каким-то причинам вы стерли EEPROM, в любом случае, следует обратиться в техподдержку для восстановления калибровок.
Список серийных номеров потенциально уязвимых устройств
Если серийный номер вашего WB-MSW попал в список, выполните одно из следующих действий:
- запишите "0" в регистр 245 вручную:
modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -b9600 -a1 -t6 -r245 0
(подставьте нужный порт, адрес и скорость). - в шаблоне конфигурации устройства в разделе Параметры воздуха / Компенсация самонагрева (°C) укажите значение 0.
Описание
Из-за ошибки в прошивках от 4.29.0 до 4.31.10 включительно при старте устройства с пустой EEPROM и установленным CO2 датчиком (это может быть как первое включение устройства, так и включение после сброса EEPROM или настроек связи) через 4 секунды ошибочно запускался алгоритм миграции температурной компенсации, предназначенный для корректного обновления со старых версий. Из-за этого в регистре пользовательской температурной компенсации оказывалось значение -70 вместо значения 0 и датчик завышал показания на 0.7 градуса. Чтобы первое включение прошло корректно, нужно в первые 4 секунды работы прошивки записать какие-либо настройки связи (например, адрес, отличный от 1) и перезагрузить устройство. После этого при следующих включениях алгоритм уже не запускается и в регистре пользовательской компенсации будет значение 0.
Большинство произведенных устройств не подвержено проблеме, т.к. производственный стенд успевал за 4 секунды сделать первые проверки, записать адрес и перезагрузить устройство.
Однако, если устройство не проходило проверку с первого раза, повторная проверка уже занимала больше времени, что вызывало ложное срабатывание алгоритма и в итоге приводило к записи значения -70 в регистр пользовательской температурной компенсации. Также, если устройство оказывалось на программаторе адресов (если в заказе было указано задать определенный адрес) то производился сброс настроек связи, что вызывало ложное срабатывание алгоритма.
В итоге датчик завышал показания на 0.7 градуса. Необходимо вручную записать в регистр 245 значение 0.
Для того, чтобы убедиться, что температурная компенсация имеет верное значение, нужно прочитать регистр 245: там должен быть 0. Также можно в шаблоне конфигурации устройства в разделе Параметры воздуха / Компенсация самонагрева (°C) указать значение 0.
Запланированное исправление
Исправлено в прошивке версии 4.31.11. Стирание EEPROM с установкой прошивки 4.31.11 не портит регистр 245.
Однако подверженные проблеме устройства необходимо исправить вручную: записать значение 0 в регистр 245.
Также мы выполнили действия, чтобы такое не повторялась:
- добавили в производственный стенд проверку значения регистра 245: там должен быть 0 после окончания всех проверок;
- ускорили повторную проверку;
- в прошивке полностью убрали алгоритм миграции для новых устройств (для которых не существовало старых прошивок).
ERRWB-MSv20007: Ошибка при обновлении прошивки устройства
Подверженные устройства
Некоторые устройства WB-MS и WB-MSW.
Описание
В процессе обновления любым способом, кроме wb-mcu-fw-flasher
, случайным образом может возникнуть ошибка обновления, после чего устройство остается в режиме загрузчика. Т.е. индикатор Status моргает стабильно раз в секунду и устройство не отвечает на запросы.
Запланированное исправление
В настоящее время причина проблемы не определена.
Пути обхода
Выполнить обновление актуальной версией прошивки через wb-mcu-fw-flasher
, для этого:
- Узнайте сигнатуру прошивки устройства
- Выполните обновление согласно инструкции