EmonPi and six (6) ds18b20 temperature sensors


I using emonPi to read 6 temperature sensors.
Why some readings are below zero, while the actual temperature is 50C

Here’s my real-time dashboard

I tried two readings intervals for inputs: 5 and (now) 60 seconds. Does not influenced the result.

I use only 5V power supply. Maybe I should add 9V AC power?


Are they connected to the RJ45 I/O connector, or to the Pi’s GPIO?

What temperature are you reading? If you look at the software, an out-of-range temperature (< -55 °C or > 125 °C) is reported as -55. You then multiply that by 0.1 in emonhub.conf, to give the value -5.5 °C. If you are seeing exactly -5.5 °C, then your sensors are returning a temperature that is outside the permissible range.

Why? What else are you monitoring with the emonPi? The 9 V a.c. to the emonPi is NOT a power supply, it is a sample of the line voltage for measurement. You need it when measuring real power and voltage.

This is clear. Thank you.

I connect 6 sensors using emonPi / emonTx RJ45 to Terminal Block Breakout for DS18B20.

Real temperature inside boiling tank is 33 C minimum, 60 C maximum.

Maximum temperature is limited my physical properties of the boiling fluid which has boiling point 61C

Some sensor’s readings are ok :white_check_mark: and some show negative figures every 30 minutes

But they are correct for the remainder of the time? If that is the case, then I think there might be interference from something switching that is causing the temperature to be read wrongly.

Do the bad readings happen at the same time as something switches on or switches off?

Is it always the same sensors that give the bad readings? Where did you buy the sensors? (I ask because there are many not genuine sensors available cheaply, many do not work properly. See

You can remove the false -5.5 °C readings:
In emonCMS, on the Inputs page, you can add the process

If =, skip next with the value -5.5

The help says "If value from last process is equal to the specified value, process execution will skip execution of next process in list.
Output: Does NOT modify value passed onto next process step.
The next process must be “Log to feed”, so that you do not log the value if it is exactly -5.5.

You will then have a NULL value instead of a wrong value in your data.

These sensors sourced from China. I can’t say for sure if it’s something turning on/off periodically (this might be an axial fan - controlled by VFD).

I focused on readings corrections in Input.
I hope this will help with future readings.

Can I modify data base to delete-5.5 faulty data?

Yes, that is possible.

It is in Visualisation.
Step 1) Select Visualisation: Choose EditRealtime
Step 2) Set options: Feed: Choose the Feed you wish to correct.
Step 3) View.

You must then zoom in on the wrong value so that you can see every point in the data. If you saved a temperature every 5 s, then you must be able to see each one.
Click on the point that is wrong, This shows the time and the present value. Type a new value.

If the sensors do not comply fully with the Maxim/Dallas specification, then there is no reason to expect the software in the emonPi to give the correct temperatures.

I want to share with all what finally worked for me.

The next process must be “Log to feed”, so that you do not log the value if it is below zero.
IMPORTANT to add this BEFORE log of main valve.

1 Like