Reently I got curious with how the heating temps are and as it’s a heat pump measuting the pipe temps can in theory be done with a connection into the controller
That needs a special device though so i decided that I would make it myself
this is the first post documating that project
as per my other guides I used esphome
Parts List:
1) DS18B20 sensors (I like the metal ones as they are less prone to being damaged and come with the wiring already attached
https://www.amazon.co.uk/dp/B09G2C3JJ9
2) some kind of breakout boards or a 4.7k resistor (I used the little breakout boards that have it already
(I used breakout boards that come with the sensors I linked above)
3) some way to join the sensors correctly (I used some wagos and just soldered the wires together)
4) esp32 module or similar
The Build:
1) first get the sensors and just solder or join the wires in a wago to the breakout or esp (Don’t forgot the 4.7k resistor if you used that method)

this was my first method before I used a wago (those boards only fit 3 wires in a terminal so a wago works better with a short jumper to join between the wagoed bundle and the breakout

DATA goes to the data wire from the ds18b20
VCC goes to the red (or whatever power is on yours)
GND is ground
screw terminal is for the sensor
pins are for the esp side
I wrapped mine in Self-Amalgamating Rubber Tape to keep it a bit of protection from damage or just being moved

before doing that make sure to add a wire to go the esp though
I used three female to female dupont wires (which came with the boards) to connect it
then go to the esphome dashboard in whatever system you use and paste this code in
esphome:
name: heating-temp-monitor
friendly_name: heating temp monitor
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Heating-Temp-Monitor"
password: !secret wifi_ap_password_backup
captive_portal:
one_wire:
- platform: gpio
pin: GPIO25
Make sure your data wire from the board is hooked up to GPIO 25 on the dev board though (If it’s not change it in the code to match what pin you want to use)
then flash the esp
watch the logs and you should see the addresses for each sensor show up

this is mine for example
then you need to copy those ids and go into the code and create sensors with each one
add this to your code at the end
sensor:
- platform: dallas_temp
address: addresshere
name: temp1
update_interval: 120s
- platform: dallas_temp
address: addresshere
name: temp2
update_interval: 120s
- platform: dallas_temp
address: addresshere
name: temp3
update_interval: 120s
- platform: dallas_temp
address: addresshere
name: temp4
update_interval: 120s
- platform: dallas_temp
address: addresshere
name: temp5
update_interval: 120s
under the 1 wire line
replace addresshere with what your probe addresses are
if you have less or more probes that I have just add or subtract sensors in the same way I did them
once you have that reflash the esp and you should see something like this in the logs

if you don’t see it straightaway don’t worry
just leave it sit for a bit and it’ll update
eventually once you have done all those steps and then added it to home assistant you’ll see something like this if you go into devices then esphome

if you want a web server also that you can see from the board ip address then just add this to the end of your code and update /reflash your esp
web_server:
port: 80
this is the entire code you should have ended up with something like
esphome:
name: heating-temp-monitor
friendly_name: heating temp monitor
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Heating-Temp-Monitor"
password: !secret wifi_ap_password_backup
captive_portal:
one_wire:
- platform: gpio
pin: GPIO25
sensor:
- platform: dallas_temp
address: 0x1400000057048828
name: temp1
update_interval: 120s
- platform: dallas_temp
address: 0x1300000058e23c28
name: temp2
update_interval: 120s
- platform: dallas_temp
address: 0x7e00000057c0f228
name: temp3
update_interval: 120s
- platform: dallas_temp
address: 0x7e0000005845c028
name: temp4
update_interval: 120s
- platform: dallas_temp
address: 0xf300000056d63e28
name: temp5
update_interval: 120s
web_server:
port: 80
the web server is optional
Leave a Reply