Automation for Domestic Hot Water Boiler, Heat Pump, Solar Collectors and multiple tanks (DWC and buffer)

About This Project

I am making an effort to develop an automation system to manage my DHW and buffer hot water tanks, my solar hot water collectors,a heat pump and an oil burner, through control of some inverter pwm driven hot water circulators and 8 relays using ds18b20 digital temp sensors on raspberry pi infrastructure.
All of the above are controlled with python script witch sometimes makes it hard to expand ideas and experiment efficiently.
I would like to visualize my data in such a way that an overall behavior of the system can be observed, enabling me through the accumulated measurements to analyze and optimize the performance of its components and even help to predict failures.
My impression is that though the online applications in your platform i could leave some python structure behind in favor of any suitable apps you may have developed.
In the future even more devices are to be embedded probably a network of esp8266’s with various other sensors to collect data from smoke, noise, movement and light sensors and build an electricity meter to visualize energy consumption and production measurement data from solar panels.
I find cayenne ideal for the expand-ability of the project as I would prefer to work in a more versatile and malleable environment that favors inspiration offering a fast learning curve.

What’s Connected

8 ds18b20 temp sensors (6 currently active) , a sainsmart 8 relay, Raspberry Pi 2class 10 8gb sandisk sd , Ethernet

Those are the innards of a diy one wire adapter, hacked from an adsl spliter to facilitate easier cabling using telephone wire and clips for the ds18b20 bus.

Triggers & Alerts

I did struggle to use the Triggers & Alerts feature as extensively as possible but bugs give me a hard time. I am to persist though but I think I ll need some of your help.


I have not used the Scheduling feature yet. It would be handy to enable/disable scheduled tasks depending on sensor data though and trigger schedules accordingly .I wonder if python or other script is going to be called with triggers in future updates.

Dashboard Screenshots

(Paste screenshots of dashboard, triggers & alerts, Scheduling)

Photos of the Project

(Take some pictures of you Pi in the wild!)



This is a cool stuff! Your Cayenne dashboard is filled with widgets, I love it.

By the way, in case you didn’t know, check out our project submission post.

Maybe sometime next week I can work with you on how to improve our Triggers & Alerts feature to meet the needs of your project.

This will definitely be possible in the near future :slight_smile:

Thanks for posting this!


Thanks for the warm welcome. I look forward to overcome some hiccups with your valuable help.
My pleasure, I hope I will be worthy to contribute something of value in the process…

Snap !!! Similar to my project, Solid fuel boiler with solar hot water boost, Storage tank and domestic hot water storage, Using 8 DS18B20 sensors.
Just looking now to interface the boiler temp sensors so these can also be displayed.
I have the circulation pumps just working as on/off at this stage (will look to use PWM in the future)
I am using the scheduling function to turn on the boiler heat of the domestic hot water storage (if the boiler is operating) at 10pm and off again at midnight, Temperature control is by the boilers own storage sensor.
I have then scheduled an electric boost from midnight to 2am incase the boiler is not operating.
Heat transfer from the buffer tank is manual at this point due to the lack of “If, Greater than, Then” logic.
Cheers Mike

Nice setup! what are you using those 8 sensors for? do you monitor the circulation pumps as well?

[quote=“mwintm1, post:4, topic:475”]
Just looking now to interface the boiler temp sensors so these can also be displayed.
[/quote]Do you mean taking a mean value of multiple sensors and displaying to the dashboard?

I agree that a “If, Greater than, Then” would be a game changer because to facilitate a Positive Integral Derivative for the heat transfer initiation and termination, would open endless possibilities for fine control of heating and energy conservation related applications.

Hi The sensors are used for things like top and bottom of storage tanks, Temps of various in and out lines and the outside air temp (although i would like to use a DHT22 when supported)
Once I get around to reading the actual analog boiler sensors I wont need as many but DS18B20’s are just so easy!
The control I would like to be able to use is “if temp A is greater than X degrees hotter than temp b turn on relay X” This would be used to turn on and off circulation pumps for the solar system
Cheers Mike


+1 on this requirement.

Very nice project. I have similar (very basic POC) application under dev. I am stuck though with two triggers/events to control a relay. One is IF DS18B20 is >83F turn relay on – that works.
Second event is IF DS18B20 is < 80F turn (same) relay off – this doesn’t happen. Does order of these events in the dashboard matter? You must be able to do this given the scope of your project so I assume I’m doing something dumb. Any help is appreciated.

Hi Not sure whats happening for you I have several relays doing exactly what you describe
Do you have your DS18B20 named? perhaps its confusing itself with another DS18B20?
Perhaps delete your triggers and rewrite them ?? Sorry I can’t be any more help but it works for me. Mike

Just wanted to know if there had been any progress with regards to the “if x greater than/lesser than y by z then do b”

Nothing yet. After the MQTT API is released they will be working on user requests which I’m hoping this one will make it in.

I wish I could use but it’s not something you can control until there is no point of reference system (X> Y, X <Y).
I hope you will have a solution.

Yeah, I noticed that, too.
Very unimpressed by it, also.

Solar can not be effectively operated only if you can set temperature difference.
It should therefore be a fundamental reference system or to have one-mode in which you can specify the start (X <Y) (Y–X = 1,2,3,4,5,6, etc.)
Solar is efficient if the difference between at least 6 f solar and boiler between.

Great project! I’m getting ready to tackle a similar effort. The house we just bought has a solar collector, storage tank, boiler, and hot water heating system. The existing controller is an old analog C-100 System Manager by Independent Energy, Inc. which still works fine but is limited to displaying the temps of the collector and storage tank only. Like you, I would prefer to get much more information on how the entire system is operating. I’ll be using an Arduino on this project and a few other bits like:
SunFounder DS3231 RTC Real Time Clock Module High Precision for Raspberry Pi Arduino R3 Mega 2560
SunFounder Ethernet Shield W5100 for Arduino UNO R3 Mega 2560 1280 A057
SunFounder 5V Relay Shield Module for Arduino UNO 2560 1280 ARM PIC AVR STM32 (4Channel)
5Pcs DS18B20 Waterproof Temperature Sensors Thermistor Temperature Control Length 1M

I’m curious how the telco wire is working out for connecting up the sensors. I was thinking of buying some 3 conductor thermostat wire but I have quite a bit of telco wire laying around.

I spent some time last night mapping out the piping and components which was not trivial. It’s amazing how many pipes make up this system. I plan on transferring the data to a Visio drawing so I can make sense out of the whole system and determine where to place the sensors.

My analog controller is set to turn on the circulation pump based on the temperature differential between the collector and storage tank. It turns the pump on when the collector is 20 deg F hotter than the storage, and turns it off when the difference is 5 deg F. It also has a “high limit” feature which is currently set to 163 deg F. If the storage tank reaches the high limit then the circulation pump is turned off.


Hi @matt1,

It sounds like this would be a great project to use Cayenne with! When you begin working on it, we can help with anything you need. Might be cool to create a new project post and document the process as you go from start to end.

Can’t wait to see the finished project! So yeah, let the community know if you run into anything and need help!


Ok, I’ll start my own project posting.

Oh, hey @Matt_Grimes :slight_smile: lol I didn’t connect the Matt1 username until now. Good to see you !