Measuring central heating return temperature with ESPHome, Home Assistant, and a Inkbird IBS-TH1

I'm currently renting and the boiler in my flat is old and lacking smarts. Last year I had a Drayton Wiser Thermostat installed which I'd highly recommend to people doing smart home stuff. The native app is tolerable, but it's takes minimum effort to get it working with Home Assistant, a popular home automation platform. Home Assistant allows me to do things like automatically set away mode when the house is empty, and also gather some metrics like when the boiler is actually on ( Or at least, the thermostat is calling for heat ), and if someone has fiddled with the thermostat...

One of the Wisers strengths is an intelligent, PID controller like operation that switches the heating on and off fairly frequently to prevent overshoot, and it does a good job at keeping the temperature relatively stable. But I'm curious how the seemingly short cycles affect the temperature of the water in the system, so I'd like to collect some more metrics on the return temperature and eventually the flow and hot water pipes if it works out.


Inkbird IBS-TH1 Sensor



There's no accessible power in the boiler cupboard, and I try to avoid DIY projects that run on batteries because getting acceptable battery life is hard, so I started looking for something that'll run on batteries and supports something like a DS18B20 temperature sensor.

I've used ESPHome in the past with great success, and discovered it supports the Inkbird IBS-TH1 BLE temperature sensor which has an external temperature sensor in a metal can, perfect for attacthing to a pipe. At £26 it isn't particularly cheap, but it looks ideal for my use case so I took the plunge and purchased one from AliExpress. ( Note, they appear to also go by the names of Inbird and Engbird, I'm not sure what's going on there )

To receive the temperature data from the IBS-TH1 I via BLE I opted for the ESP32 based M5STACK Atom Lite due to its small size.
M5STACK Atom Lite


The ESPHome docs for the Inkbird are very good. Before you can add the sensor you need to discover its MAC address by adding just the  esp32_ble_tracker component at first, then checking the logs for a device named "sps". Make a note of the associated address, in my case it's 49:21:08:30:61:7D. It should look something like this:

ESPHome logs

Unfortunatly it seems like you'll also have to configure the device with the engbird app before it will periodically send its temperature readings. I followed the instructions that were included in the box. It didn't require signing up for an account or anything so it was fairly pain free.

My final ESPHome YAML file looks like this:


I attached the sensor to the the return pipe of my boiler with a jubilee clip and a piece of thermally conductive heatsink pad.

Sensor clamped to the pipe

I setup a panel in Grafana to track the temperature readings and left it for 12+ hours, which left me with the following graph:


Grafana Graphs

Overall I'm happy with the solution, although it would be better if the IBS-TH1 could support multiple sensors in a single unit. I strapped a Thermocouple to the pipe and it was reading within a couple of degrees of the Inbird sensor so it seems pretty accurate, and range seems acceptable.

No comments:

Post a Comment