Отваливается датчик 1-wire

Здравствуйте,
отваливается датчик температуры DS18B20. Работает какое-то время, потом отваливается. Выведен на улицу. После ребута контроллера опять появляется. Отключение и включение 5в не помогает.

Я уже прочитал много тем здесь по этому поводу. Проверял всё - напряжение есть и на клемах и через консоль. Сервисы запущены. Также заменил датчик с маркетплейса на датчик купленный в уважаемом магазине - тоже самое.

dmesg -w | grep w1_master_driver
[58208.140141] w1_master_driver w1_bus_master2: therm_bulk_read_store: unable to trigger a bulk read on the bus. err=-19

Что ещё можно посмотреть? Или единственный выход - продолжить менять датчики? :slight_smile:

Добрый день.
Как выполнено подключение? Какая длина шины, какой кабель используете?

Для начала бы определить работоспособность датчика, посмотреть — будет ли повторяться ошибка если подключить один датчик к порту коротким проводом.

1 лайк

Подключен единственный датчик. Метров 5-6 utp, на улице в коробке подключен уже сам датчик. От температуры не зависит.

Подключил ещё один внутренний (во вторую клемму на контроллере). Он не отваливается. После этого уличный сначала отвалился на часов 10 и сам обратно вернулся. Сейчас стал отваливаться сильно реже и на меньшие периоды.

В таком случае попробуйте поменять датчики местами. Если датчик, который отваливается продолжит отваливаться, то скорее всего он неисправен. Если будет работать исправно, то скорее всего проблема в подключении.

Заметил такую странность.
Когда отваливается уличный датчик в логе и ошибки модбас есть, когда датчик возвращается их нет.


|18-01-2024 11:14:30.810 |w1_master_driver w1_bus_master1: therm_bulk_read_store: unable to trigger a bulk read on the bus. err=-19|
|---|---|
|18-01-2024 11:14:17.930 |w1_master_driver w1_bus_master1: therm_bulk_read_store: unable to trigger a bulk read on the bus. err=-19|
|18-01-2024 11:14:05.094 [wb-mqtt-serial] |WARNING: [modbus] failed to read 6 input(s) @ 5136 of device modbus:225: Serial protocol error: malformed response: invalid crc|
|18-01-2024 11:14:05.094 [wb-mqtt-serial] |WARNING: [modbus] failed to read 6 input(s) @ 5136 of device modbus:225: Serial protocol error: malformed response: invalid crc|
|18-01-2024 11:14:05.052 [wb-mqtt-serial] |WARNING: [modbus] failed to read 5 discrete(s) @ 3 of device modbus:47: Serial protocol error: malformed response: invalid crc|
|18-01-2024 11:14:05.050 |w1_master_driver w1_bus_master1: therm_bulk_read_store: unable to trigger a bulk read on the bus. err=-19|

Датчик уличный стал теперь сам возвращаться, отваливается не так часто)

Похоже на проблемы с физическим подключением.

При плохом контакте Gnd, например, ошибки будут характерны. Рекомендую перепроверить.

А где проверить GND? У 1-wire или модбас? Ещё нюанс в том, что 225 адрес висит на втором модбасе и кроме него там никого. Ошибки на трёх линиях получается.

Проверьте все соединения. Убедитесь что соблюдены все рекомендации по прокладке шины 1-Wire и RS-485. Пришлите фото подключений.
Включите так же отладочные сообщения для Serial-устройств и покажите что в логах.

У меня до этого rs485 временно проложенный был, после этого уже постоянную шину сделал. Проблема была и до, и после. Рекомендации насколько могу судить - выполнены. Разве что для (1-wire на вторую пару utp землю добавлю позже). Вторая линия rs485 идёт на счётчик map3e - там отдельный кабель utp, который частично в своей изоляции вообще.

Логи я включил, но как и что там смотреть непонятно, потому что по тысяче сообщений в секунду идёт. Где они сохраняются в файловой системе? /var/log/messages пустой

Необходимо сделать как написано в рекомендациях — сигнал по одной жиле пары, земля по второй и аналогично питание: плюс питания по одной жиле пары, минус по второй. Минус питания соединить с сигнальной землёй. Экран с одной стороны соединить с минусом питания.

Ну и всё-таки убедитесь — будут ли повторяться ошибки, если подключить датчики коротким проводом.

https://wirenboard.com/wiki/Wb-mqtt-serial_driver#Включение_отладки

Сделал землю в 1-wire, как в рекомендациях. Пока не отваливается.

FYI через какое-то время всё-таки отвалилось, но на этот раз без ошибок в логе по модбасу, видимо правильное подключение земли помогло :slight_smile:

В итоге купил m1w2 и вот уже более продолжительное время всё хорошо. Подключил его так же в щите рядом с контроллером, то есть условия подключения те же.

Я ещё посмотрел по форуму по этой теме и кажется тут либо какая-то проблема с контроллером и 5vout, либо со стандартной линуксовой реализацией поддержки 1-wire, если не только у меня проблема решается использованием того же m1w2 :shrug: