Third Temp Probe Port not working on emonPi2

I was testing today and the third port (circled below) does not register the temperature probe. I have tried different probes and emonPi2s, and it does not register on any.

Further, I tried manually adding the Probe ID in emonHub, but it still does not appear in the inputs screen.

Is there a setting somewhere that activates the 3rd port?


The third terminal block is connected to the ANALOG_INPUT on the AVR128DB48 measurement board microcontroller, and from the above link -

Update 14th May 2024: When running the latest emonPi2 single phase or three phase firmware, pulse counting is attached to the analog input as standard which leaves the other terminals for easier connection of multiple temperature sensors.

If you need more than two DS18B20 temperature sensors, the above link also says -

Temperature sensing is handled by the RaspberryPi directly rather than the measurement board microcontroller. This removes the hard limit on the number of temperature sensors that can be connected to the bus and allows sensor addresses to appear directly on the Emoncms inputs page. It also improves the accuracy of the electricity monitoring as the measurement board is freed up to focus soley on this task.
DS18B20 temperature sensors are connected via the labelled pluggable terminal blocks (multiple sensors can be connected to each temperature input, e.g using a 6x sensor breakout board)

Hope this helps

1 Like

Thanks @rupert that is correct. The 3rd temperature sensor needs to double up on one of the other temperature inputs. On the emonTx4 it was possible to map temperature sensors to all three ports but this was restricted to the two labelled temperature ports on the emonPi2, if I can remember to keep the PCB routing simple and as you can add multiple sensors on the other temperature terminals anyway.


Thanks for the confirmation.

The emonPi2 documentation is however a little ambiguous - e.g.

Under the Temperature Sensor heading:
Pluggable terminal block connections are:
GND (black), DATA (yellow), 3.3V (red), left to right, repeated for each of the three blocks

  • implying that all three terminal blocks are used for temperature?

and under the Analog Input Section:

It’s possible to link analog input AIN19 (CT12) to right-most terminal block as shown here.

  • Isn’t AIN19 (CT12) hard wired to CN3?

Ah I’ll get that fixed! Good spot. I based the emonpi2 documentation on what I wrote for the emontx4. Looks like I missed that one!

I think the two ambiguities are also present in the emonTx5 documentation - sorry!

For more information on temperature measurement, see
From the link above:

Multiple sensors can be connected to the same data bus. Each sensor identifies itself by a unique serial number.

From the link below:
and using the photo below, which shows one sensor per terminal block -

If you need to connect two DS18B20s to one terminal block -
You would put
two black leads in the left connection of the terminal block
two yellow leads in the middle connection of the terminal block
two red leads in the right connection of the terminal block

Hope this helps

1 Like

Perfectly described thanks @rupert

@rupert @TrystanLea Thank you both for the explanation - this helps quite a bit, and in most of my installations, two probes are sufficient.

One thing that added to my confusion, is the default in emonHub showing 3 temperature probe IDs and 3 names. So, naturally, I assumed this referred to the three ports on the emonPi2.

If I need more than two temperature probes in the future I could double up the probes per terminal block as suggested, or I could use this breakout board and add the IDs to emonHub as I normally would - correct?

thanks for the help.


The three wires to the temperature probe make up the “One-wire bus” (ok, one active wire that carries the signal, and two for the power). Data to and from the probe or probes is sent encoded in pulses, so you can have any sensible number of sensors connected on the bus, and using just one socket on the emonPi. The bus controller – in this case the Pi – can talk to them collectively (“Take a temperature reading”) or individually (“Send me the last temperature you measured”).

It needs to know the serial number of each sensor to address it individually – this is where numbers like “28-00008ee9b6d9” come in.

Happy to help!
Just one thing - I don’t have a emonPi2 so I can’t look at emonHub or try things out - I’m going by the documentation (see links in previous posts) …

The docs say that
We have tested up to 6 temperature sensors connected at once, the one-wire bus should however support more than this. There is a useful discussion on how many sensors can be supported on a single RaspberryPi GPIO input here.

Short answer - yes you can use the Terminal Block Breakout for DS18B20 with the emonPi2; I don’t know if the IDs would need to be added manually to the emonHub cofiguration or whether they would automatically be added.

Long answer -

Just a bit of background explanation first which may be helpful (or perhaps confusing!):

Earlier models e.g. the emonPi1 and emonTx3 did not have terminal blocks for the Temperature, Pulse and Analog inputs. Instead a RJ45 connector was used. The Terminal Block Breakout for DS18B20 would be connected to the emonPi1 / emonTx3 with a RJ45 cable, and the DS18B20 sensors wired to the terminal blocks. The board just separately parallels up each of the three sensor connections (GND, DATA, +V) with the appropriate pin on the the RJ45 connectors. The emonPi1 / emonTx3 used 5V to power the DS18B20 sensors, as they can work at either 5v and 3.3V

The emonPi2 and emonTx5 onwards uses the RJ45 connector for the AC reference voltage and 5V power - it does not have any sensor connections. The sensor connections are on the terminal blocks.

To use the Terminal Block Breakout for DS18B20 with an emonPi2 / emonTx5 you would put three wires (just wires, not a sensor) in a emonPi2 / emonTx5 terminal block as follows:

a black lead (GND) in the left connection of the terminal block
a yellow lead (DATA) in the middle connection of the terminal block
a red lead (+3.3V) in the right connection of the terminal block

these wires would be then connected to one set of three terminals on the Terminal Block Breakout for DS18B20 as follows:

black lead (GND) to GND
yellow lead (DATA) to 1-W (one wire)
red lead (+3.3V) to +5V

up to five DS18B20 sensors can then be connected to the 5 remaining sets of three terminals on the Terminal Block Breakout for DS18B20 as follows:

black lead (GND) to GND
yellow lead (DATA) to 1-W (one wire)
red lead (+3.3V) to +5V

If more than five DS18B20 sensors are needed, a second Terminal Block Breakout for DS18B20 can be daisy-chained to to first one with a RJ45 to RJ45 lead.

Hope all this makes sense! If not please ask!

@rupert thank you so much for taking the time to explain all this. This is very helpful. The learning never stops and I love the opportunity!

Best regards,


Hi there - I have an emonpi2 with two DS18B20 probes mounted about 12 metres away to collect flow and return temperatures from my heat pump. Wired one on to each of the two inputs just as shown in the photo above.

If I added two further DS18B20 sensors (to log interior and exterior temperatures) would the emonpi2 pick up their addresses automatically so they would just ‘appear’ in the list of inputs - I know on the Arduino you can just probe the one-wire bus and ask ‘who’s there?’ - or would I need to explicitly code their addresses somewhere?



As I said,

In the shop entry for the emonPi2 at:

it says:

The emonPi2 has full DS18B20 temperature sensing support. Temperature sensing is handled by the RaspberryPi directly.
Temperature sensors can be connected to 2x 3-pin pluggable terminal blocks, while there is not a specific limit on the number of sensors that can be connected we have tested up to 6 sensors at any one time.

So I am guessing that it should automatically work!

Perhaps @TrystanLea can confirm this?

I see that you have two 12 metre cables to the DS18B20s.
The sensor cable lengths and topology may also affect the operation of the DS18B20 sensors.
For more information see

Thanks Rupert, I have a few of these sensors around from Arduino projects - I’ll just give it a try.

I did see the warnings about cable lengths etc. for the one-wire bus. In this case I used two separate twisted pair cables - even though 95% of the route is common and could have just used different pairs - in order to minimise the chance of cross-talk causing problems. Not had a single missed reading in the months I’ve had it installed.

Yes they show up automatically on the input page with the sensor unique ID as soon as they are connected. No need to restart or configure anything.


Thanks very much Trystan

1 Like

Hi there - I just found my pack of temperature sensors in my big pile of stuff and tried it - works automagically as you predicted. I did a shutdown and power down before altering the wiring, added the sensor in parallel with an existing one and on restart it showed up fine.

Now to do the hard part of actually routing some cables for permanent installation!


:+1: Thanks for the update - happy to hear it all worked.

1 Like