Глюк с термодатчиками 1-Wire

Случился несколько дней назад интересный однократный глюк с датчиками. Ничего не делал ни с контроллером, ни с устройствами к нему подключенными. Занимался своими делами… и вдруг отваливаются все датчики 1-wire. Как следствие - пошли алармы на температурные состояния, поэтому и увидел проблему. Глянул логи - ничего криминального не увидел. Чтобы побыстрее исправить просто программно перегрузил контроллер - не помогло. Удивился. Передернул питание датчиков - не помогло. Удивился еще больше. Передернул вход 1-wire контроллера, на котором висят датчики - датчики увиделись и все стало нормально. Еще раз удивился. Датчики (6шт) подключены по трехпроводной схеме (с отдельным питанием). Ни до (полгода), ни после (несколько дней) такого не случалось.

Как вообще такое может быть? Может есть у кого версии?

А что значит “передёрнули вход 1-wire” ?

Питание – от контроллера? Или свой блок питания?

Физически отключил и через секунду подключил на клемник WB провод идущий к информационным выводам датчиков.

Питание - часть датчиков берет питание с WB, часть - с отдельного DC конвертора 12-5V.

Плохой контакт? Глюк второго блока питания?
Длина линий какая у вас? Пишите, как повторится. Пока ничего не трогайте, если не критично.

Вряд ли контакт, давно уже в таком виде работает, не было проблем. 2 БП тоже нормально, от него к примеру Orange PI запитан, глюков с ним не замечено. Длина от метра до 10. Если повторится - напишу, но что-то мне подсказывает, что если и повторится - то нескоро. Собственно меня больше интересовало как вообще могло такое случится с такими симптомами… как то-не укладывается в логику… По идее WB не при чем, иначе бы перегрузка решила бы проблему. Датчики - тоже, по той же причине - делал сброс питания, почему именно отключение информационного входа решило проблему?

Для надежности можно 1 wire подключить сначала через релейный модуль, чтобы можно было удаленно передергивать. А причина, да, непонятна.

А у меня такое вот уже раза 3 было за последний месяц. Но лечится все перезапуском сервиса wb-homa-w1. В логах тоже пусто и это печально.

Большая просьба ко всем: если проблема снова повториться, покажите пожалуйста вывод mosquitto_sub -v -t ‘/devices/wb-w1/#’ ДО перезагрузки контроллера, сервиса и перетыкания проводов.

У меня такой глюк повторился, но вашу просьбу слишком поздно увидел. После перезагрузки контроллера иногда такое случается, что 1-wire термометры не видны виджетам, но при этом присутствуют в Devices и Settings и их значения даже обновляются. В Devices это выглядит так, как на картинке: значения проблемных датчиков обведены рамкой (в данном случае все)

В нормальном состоянии никаких рамок нет. Иногда некоторые термометры отваливаются, иногда сразу все. Перезагрузка контроллера и физическое отключение-подключение термометров не помогает. При этом в настройках виджетов, где выводится температура, из списка доступных термометров просто пропадают те, которые в Devices обведены рамкой, при том, что в Devices и Settings всё отлично видно. Скрипты при этом не реагируют на изменения температуры, потому что никаких изменений не видят.

Чтобы это починить, мне помогло следующее:

  1. сначала физически отключил все термометры
  2. выполнил команду mqtt-delete-retained ‘/devices/wb-w1/#’ , при этом не делал service mosquitto restart
  3. потом подключил термометры, и всё заработало, сам контроллер при этом не выключал и не перезагружал

У меня самая свежая прошивка для ревизии 5.5. Собственно, я её и обновлял в надежде, что это исправит этот и ещё некоторые глюки, но не помогло.

Глюк проявляется редко и воспроизвести его у меня не получается.

Глюк повторился, команда mosquitto_sub -v -t ‘/devices/wb-w1/#’ не выдала вообще ничего - тишина.
После танцев с бубном, не имея возможности физически отключить датчики, повторилась и история с виджетом. При этом вывод mosquitto_sub -v -t ‘/devices/wb-w1/#’ бодро показывал все термометры с правильной температурой, но вот в функциях условие whenChanged не срабатывало на изменение температуры. Интересно, что в функциях, которые ловят изменения выходов на WB-MR14, изменения в виртуальных устройствах и изменения температуры одновременно, whenChanged срабатывало только для выходов и виртуальных устройств, а изменение температуры игнорировалось.
Когда появилась возможность отключить датчики, были отключены не все, а только часть. После этого была команда mqtt-delete-retained ‘/devices/wb-w1/#’ и всё чудесным образом заработало, включая whenChanged для термометров.

Вот пример вывода, когда до “type temperature” температура менялась, но скрипты это игнорировали, потом было физическое подключение отключенной группы термометров, прошла серия “type temperature”, после этого подцепились новые градусники и скрипты снова заработали:
/devices/wb-w1/controls/28-021581cdb9ff -1.312
/devices/wb-w1/controls/28-041635fe07ff 8.187
/devices/wb-w1/controls/28-0000071d3f90 19.437
/devices/wb-w1/controls/28-031635f62eff 8.125
/devices/wb-w1/controls/28-021581cdb9ff -1.25
/devices/wb-w1/controls/28-041635fe07ff 8.187
/devices/wb-w1/controls/28-0000071d3f90 19.5
/devices/wb-w1/controls/28-031635f62eff 8.25
/devices/wb-w1/controls/28-021581cdb9ff -1.25
/devices/wb-w1/controls/28-041635fe07ff 8.25
/devices/wb-w1/controls/28-0000071d3f90 19.562
/devices/wb-w1/controls/28-031635f62eff 8.375
/devices/wb-w1/controls/28-021581cdb9ff -1.187
/devices/wb-w1/controls/28-800000045d2f/meta/type temperature
/devices/wb-w1/controls/28-800000262922/meta/type temperature
/devices/wb-w1/controls/28-8000002626c5/meta/type temperature
/devices/wb-w1/controls/28-8000002627fb/meta/type temperature
/devices/wb-w1/controls/28-000007295377/meta/type temperature
/devices/wb-w1/controls/28-00000728f170/meta/type temperature
/devices/wb-w1/controls/28-0000071d990a/meta/type temperature
/devices/wb-w1/controls/28-041635fe07ff 8.25
/devices/wb-w1/controls/28-800000262922 3.062
/devices/wb-w1/controls/28-8000002626c5 6.187
/devices/wb-w1/controls/28-8000002627fb 0.625
/devices/wb-w1/controls/28-000007295377 24.312
/devices/wb-w1/controls/28-00000728f170 17.375
/devices/wb-w1/controls/28-0000071d3f90 19.562
/devices/wb-w1/controls/28-0000071d990a 39.062
/devices/wb-w1/controls/28-031635f62eff 8.375
/devices/wb-w1/controls/28-021581cdb9ff -1.125
/devices/wb-w1/controls/28-041635fe07ff 8.312
/devices/wb-w1/controls/28-800000045d2f 11.312
/devices/wb-w1/controls/28-800000262922 3.062

Столкнулся с аналогичной проблемой на WB 5.5 (последняя прошивка)…
К WB подключены 2 датчика 1-wire, показывают температуру теплого пола в разных комнатах.

Глюк проявился таким образом:

Эту тему, к сожалению, поздно увидел, и просто перезагрузил контроллер.
После этого появились показания 2-го датчика и значения температуры нормализовались:

Также была похожая проблема. В какой-то момент обнаружил, что показания датчиков не изменяются, хотя к этому были предпосылки. К WB подключены 2 датчика. Перезагрузка не помогла. После физического отключения датчиков и повторной перезагрузки WB показания датчиков стали изменяться.

Здравствуйте.
Подскажите пожалуйста поддаются ли калибровке термодатчики?

1-Wire? Они откалиброваны на заводе под +/-0.5C

Случился у меня глюк с термодатчиками (6 штук на входе). Ничего не делал, просто взяли и отвалились. Все. Такое случалось и раньше, хоть и нечасто. Сбрасывал питание (подключены на 5v от WB5), на какое-то время помогало, спустя некоторое время случилось вообще что-то странное - два датчика стали показывать по несколько сот градусов, появились 1w адреса, которых просто нет… В итоге оказалось (путем последовательного отключения датчиков), что заглючил один из датчиков (год работал). Замена на новый помогла. Возможно это кому-то тоже поможет… Было бы неплохо, если бы WB5 умел бы блокировать нерабочий датчик - куда проще было бы диагностировать проблему и не получать сразу проблему со всеми датчиками.

Тут проблема разрешилась положительно, но возникла и другая - продолжение в ветке Uniel…

Боюсь, что это невозможно

У меня были периодические глюки с датчиками DS18B20 (5 шт на шине примерно 40 метров, 3 провода - земля, питание и данные), решились добавлением конденсатора 10 мкФ на конец шины питания. Похоже что были периодические помехи по питанию. Вообще толковый разбор нашёл тут:
https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=114865

1 лайк

Здравствуйте.
Обнаружил, что все датчики температуры, подключённые ко входу 1-wire не изменяют своих значений. В настройках посмотрел - вроде как «не отвалились», вижу статус ОК напротив каждого датчика. Проверил историю и вижу, что действительно неделю назад они зависли разом все.

  1. Почему возможно такое?
  2. Как лечить, кроме перезагрузки контроллера?
  3. Стоит ли от них постепенно отказываться в тех случаях, когда необходима надежность и безотказность ?

Спасибо

Starck, добрый день!
Смотрите, датчиками управляет модуль ядра, и все проблемы с отпадением датчиков по большей части связаны именно с ним. Модуль создает директорию, где в файлах публикуются различные параметры, в том числе температура. Обычно при отваливании датчика от ядерного модуля поступают сообщения, но в MQTT их транслировать сложно, поэтому кажется, что датчик есть, но температура его не меняется. Когда датчики подключены к WB-M1W2, их пропадание становится сразу заметно.

Отвалившиеся датчики иногда удается поднять выгрузкой и загрузкой модуля, иногда — перезагрузкой контроллера.

Шина 1-wire (в отличие от Modbus) больше подвержена помехам и менее надежна. По своему опыту скажу, что часто причиной являются сами датчики – сейчас их производство вышло из-под контроля исходного производителя, их делает много производителей и качество и совместимость страдают. Датчики, которые мы продаем, проходят тестирование на стенде.
У себя дома я подбирал датчики, чтобы они работали без сбоев, и вот уже пару лет десять датчиков на 20-метровом шлейфе работают в связке с контроллером без нареканий.

1 лайк