Multiple DS18B20 Zero Reading Error

Hi
I have a Raspberry Pi with four DS18B20 sensors, using an rpi-ds18b20 node triggered at one minute intervals. The sensors are wired in parallel and use one 4K7 pull up on the data line. Their cable lengths are all less then 2m.

All is fine for some hours but then one, sometimes two of the sensors start displaying zero temperature either permanently or intermittently (not possible given where they are mounted). Re-starting the flow restores "normal" operation.


The same four sensors have worked reliably, monitoring the same physical entities, via an Arduino for some years.

I've tried changing the 3V3 for sensor power and data pull up for 5V power, 3V3 pull up.
I have tried swapping the rpi-ds18b20 node for the ds18b20 node.
Using 'cat /sys/bus/w1/devices/xyz/w1_slave' shows the correct sensor temperatures, a debug node shows the ds18b20 node outputting zeros.
Neither 'cat /var/log/syslog' nor 'node-red-log' show anything untoward.

Any suggestions would be much appreciated!
Thanks
Derek

Welcome to the forum.

Tell us which ds18b20 node you are using, node-red-contrib-something probably and show us how you have configured it. Is the debug node right on it's output?

Hi Colin
Thanks for your reply.

The current node is 'node-red-contrib-ds18b20-sensor' (1.3.6) - it is labelled rpi-ds18b20.
The debug node is connected directly to the output of the rpi-ds18b20 node in parallel with a function node which processes the payload.
I'm using the default configuration of rpi-ds18b20 (topic = ""; array = true).

Screenshot 2020-11-20 162735
(If you would like so see the full node code, please let me know)

Also, if it helps-
Hardware: Raspberry Pi 3 Model B Rev 1.2
OS: PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
node -v: v12.19.0
npm -v: 6.14.8
-and attached is a debug capture of the node ds18b20 payload along with the command line output for 'cat /sys/bus/w1/devices/ xyz /w1_slave' taken (just about) simultaneously.
Capture.txt (1.1 KB)

Correction: If you would like so see the full flow code, please let me know

I can't quite parse that line, but don't put 5.5v anywhere near it when connected to a pi, you are likely to blow the input pin, or worse. If the cat command works at the same time as the node isn't then I don't know what is going on, particularly if two nodes are showing the same problem. Are you sure the cat is absolutely reliable and never shows 0? Perhaps it is some sort of timing issue.

I don't use either of those nodes as I use owserver for my 1-wire stuff, which sits between the kernel and node-red.

Looking at the code for node-red-contrib-ds18b20-sensor it is particularly odd as that node appears to just read the w1_slave file.
All I can suggest is that you edit the file ds18b20-node.js which you will find under .node-red/node_modules/node-red-contrib-ds18b20-sensor/ds18b20-node and sprinkle some log messages about. You can use this.warn("Some text"); to display variable contents in the debug pane. First convince yourself that the cat command never shows zero though.

Do you have any relay boards also connected/controlled with that PI?
DS18B20 sensors tend to turn themselves off when voltage spikes occur or something like that. And the wake up can only be done via power reset.
Switching relays may introduce such spikes. So if you do, that is one thing to investigate.

No relays...
Screenshot 2020-11-20 183403
Also tried moving Vdd line to 5V leaving pull up on 3V3.