WB-MSW v.3 Датчик температура 236 градусов

Датчик температуры в датчике WB-MSW v.3 143 (прошивка 4.31.4, WB wb-2401) показал единожды значение 263 Градуса. Стоит он дома, в зале, играет роль термостата. С чего так может быть? Я бы и не заметил, если бы не приглядывал за температурой и включением котла во вкладке История. Но я и не всегда интересуюсь историей, потому не могу сказать, как часто он такое выдает. Судя по таблице, после того как он выдал аномалию в градусах, исчезли показания температуры на 8 минут в никуда, но например напряжение он выдавал исправно (см таблицу ниже). Диагностический архив создал, готов отправить.




напряжение питания:


в это время в телегу пришло от рулис “Ошибки в устройствах Modbus” (за основу взято с Примеры правил — Wiren Board Обработка ошибок в работе с serial-устройствами)

:

В теории может быть кривой пакет но с верной CRC. Тут надо посмотреть - есть ли ошибки на шине, как часты.

Что нужно сделать? файл диагностики выслать? Здесь я продолжил тему: WB-MSW v.3 и v.4 ошибки

Создано правило (рулис), за основу кода взято Примеры правил — Wiren Board - Обработка ошибок в работе с serial-устройствами, с отсылкой в телеграмм. Так вот телега шлет о том, что иногда WB-MSW v.3 или v.4 (прошивка 4.31.4, WB wb-2401) выдают ошибки. (к слову сказать WB-MSW ни разу не настраивались на ROM и RAM). Если просто заглянуть в каналы MQTT, то там все хорошо и все ок, все зеленым. Но раз рулис видит ошибки, то он их вышлет. Как реагировать на это?



В любой момент я как человек (не рулис) вижу, что датчики исправно работают, все каналы MQTT в состоянии ок! Если бы не рулис и не знал бы, что возникают ошибки))) Код рулиса выслал в след ответе.

defineVirtualDevice("meta_error_test", {
  title: "Ошибки в устройствах Modbus ",
  cells: {
      topic: {
      type: "text",
      value: "",
      readonly: true
    },
    value: {
      type: "text",
      value: "",
      readonly: true
    },
  }
});

 
trackMqtt("/devices/+/controls/+/meta/error", function(message){
  log.info("name: {}, value: {}".format(message.topic, message.value))
  if (message.value=="r"){
  	dev["meta_error_test/topic"] = message.topic;
    dev["meta_error_test/value"] = message.value;
  }
  
var message = dev["meta_error_test/topic"]; // напишите свой текст сообщения
var token = " XXXX"; // замените на токен бота
var chat_id = 12345; // замените на свой chat_id
var command = 'curl -s -X POST https://api.telegram.org/bot{}/sendMessage -d chat_id={} -d text="{}"'.format(token, chat_id, message);

runShellCommand(command);
});

Добрый день.

Темы я объединил, поскольку проблема одна и та же.
Опишите подробнее, какое оборудование и как подключено? Какие версии прошивки и аппаратной ревизии у устройств? Приложите электрическую схему подключения. Так же для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.

Отправил Вам в личку: диагностический файл, устройства и прошивки (со сканирования). Все на одной шине, витая пара, проложено по рекомендуемой вами схеме RS-485:Физическое подключение — Wiren Board. Питание 24В 36Вт (с запасом мощности, делал расчет падения напряжения на кабеле - по ссылке выше).

В логах вижу ошибки вида: Serial protocol error: malformed response: invalid crc, но они не частые, что в общем не страшно. Что касается неиспользуемых каналов — можете отключить их опрос.
По неверному показанию температуры — такое наблюдалось только один раз?
Еще желательно включить отладочные сообщения для serial — так будет понятнее из-за чего возникают ошибки.

Что касается неиспользуемых каналов - отключу.
По неверному показанию температуры - увидел один раз.
Отладочные сообщения для serial устройств включены.
Возможно эти темы тоже можно связать (WB-M1W2 v2 обновление до 4.32.2, отвалились DS18B20), ну вот снова ни с того, ни с сего отвалились датчики температуры (поможет только физическое отключение/вкл):


Мне кажется, совсем не факт, что 236 гр. приехали от датчика. Не воспринимайте значения, которые вы видите на графике, как реально поступившие - там проводится обработка, вычисляются средние, максимальные и минимальные значения для интервалов. Это может быть ошибка wb-mqtt-db. Там у вас максимальное значение вообще выше 1400 гр. (вершина голубого треугольника).

Я всегда делаю обработку сырых значений, поступающих от датчиков. И если пришедшее значение выходит за границы возможного диапазона, не обрабатываю его и пишу сообщение в лог.

Что касается неиспользуемых каналов - отключил и все равно сыпет по тем каналам, которые включены:

Ну это же не нормально?) Или это норм?) А как Вы “делаю обработку сырых значений, поступающих от датчиков. И если пришедшее значение выходит за границы возможного диапазона, не обрабатываю его и пишу сообщение в лог.”?

Мой товарищ тоже включил рулис, который я описывал ниже и у него тоже стало сыпать ошибки…

Не нормально. Но надо постараться эту ситуацию повторить. Для этого я бы написал правило, которое при публикации значения выше (условно) 100 гр. писало бы в лог. Потом, если на истории будут подобные всплески, посмотрел бы лог. Если в логе пусто (нет сообщений о температуре выше 100) - проблема в wb-mqtt-db - общаемся с техподдержкой про wb-mqtt-db. Если сообщения есть - проблема с датчиком - общаемся с техподдержкой про датчик.

Если это датчик комнатной температуры, то я понимаю, что значения могут быть в диапазоне 0…50 гр.С. Если приходит значение вне диапазона - пишу в лог, но в правилах это значение не обрабатываю, оно точно “дефектное”. Можно в этот момент взвести таймер, и если за заданное время не пришло нормального значения - поднимать тревогу.

Ошибки вполне могут быть, те же помехи искажают сигнал. Но данные от датчиков идут постоянно, и даже если 9 из 10 пакетов с ошибками, корректные данные все равно поступают, и с ними можно работать. Это я к тому, что не надо из-за каждого error=r переживать. Но если ошибок много - стоит проверить, насколько правильно выполнена линия RS-485.

1 Like

А много это сколько? Исходя из Вашего опыта? Мой друг к WB по Modbus подключил 2 устройства и его по этому рулис засыпало ошибками. Вы не могли бы на тестовом оборудовании этот рулис прикрутить (в телегу слать) и понаблюдать, пожалуйста. Может это какая-то массовая штука и нужен другой подход к этому…

я ответил на Ваш вопрос, правда не цитированием, посмотрите пожалуйста.

Необходимо поставить галочку вот здесь и нажать кнопку “Записать”:

При появлении ошибок снова — нужно посмотреть логи wb-mqtt-serial в момент появления ошибки.

Телега тут не нужна, лучше посмотреть журнал:

Вот с реального дома, на котором более 10 Modbus модулей. Сами видите, что ошибки проскакивают регулярно. Такую картину я считаю не идеальной, конечно, но вполне допустимой.