ESPHome+Geyserwise Smart Thermostat

Hi RoganDawes

Thanks for awesome detailed explanation. It is adding alot of value!

I am embarking the home automation route and was thinking along the lines:

1) install the geyserwise thermostat
2) use an ESP32 to read the temperature from the thermostat - link this into HA (home assistant)
3) implement a smartswitch rated for use on a geyser (e.g. Sonoff POWR320D) to complement the existing manual isolator
4) implement the temperature and power logic in HA automation to switch the geyser on and off via the smartswitch
5) for safety set the thermostat manual cut out temp lower to 65deg (I have not used the geyserwise thermostat before, can the manual cut out temp be changed? )

This is very similar to OP design but the smartswitch does not integrate directly to the temp sensor and thus all intelligence moves to HA. It would be quite easy then in HA to adjust the temperature changes for summer and winter, also more control when not having much solar capacity or higer loads, etc.

Any other thoughts?
 
So my implementation specifically has the temperature monitoring and switching logic in a single device, so that if anything goes wrong with e.g. your wifi, you don't end up with the element on while the temperature is skyrocketing. I would not suggest putting them in separate devices for exactly this reason.

Edit: and No, the GeyserWise thermostat does not have an adjustable cutout. It's set at 90C, and cannot be changed.
 
So my implementation specifically has the temperature monitoring and switching logic in a single device, so that if anything goes wrong with e.g. your wifi, you don't end up with the element on while the temperature is skyrocketing. I would not suggest putting them in separate devices for exactly this reason.
If you want more control over the setpoints, etc, just implement more presets, or else a service that adjusts the presets, or the thermostat value directly, that Home Assistant can call.
 
After reading these wild claims of less power with a PTC I managed to get one and tested it in a 25L drum with noting the start temp of water in each case. Recorded the total power used and measuring the temp at the same spot with a infrared thermometer. I found about 3% variance but that could be due to change of ambient temp as test took about 3 hrs. I used the AC element of the Geyserwise dual element.

So I am still not convinced in the 33-50% saving claims.
 
@RoganDawes, so using the DS18B20 would eliminate the need for the Arduino step? Then, how would you have removed the Thermistor from the Geyserwise and replaced it with the DS18B20?

At the moment I'm looking at your original approach, I just need an Arduino, such a pity, I guess it's time to buy one.. :D

Essentially the only parts I would need are the below:

1) Sonoff THR320
2) ATTiny85
3) 10K Resistor

Can't quite make out the other resistor, it looks like a 1K?

Then sorry if it was already answered or posted, but did you modify the Geyserwise Thermostate cabling at all and where did you install the final solution? Was it in the Ceiling or did you use an extension cable to connect everything outside the ceiling?

Also, do you possible have a wiring diagram for reference as I did not see one. Unless I missed it :)
 
@RoganDawes, so using the DS18B20 would eliminate the need for the Arduino step? Then, how would you have removed the Thermistor from the Geyserwise and replaced it with the DS18B20?

At the moment I'm looking at your original approach, I just need an Arduino, such a pity, I guess it's time to buy one.. :D

Essentially the only parts I would need are the below:

1) Sonoff THR320
2) ATTiny85
3) 10K Resistor

Can't quite make out the other resistor, it looks like a 1K?

Then sorry if it was already answered or posted, but did you modify the Geyserwise Thermostate cabling at all and where did you install the final solution? Was it in the Ceiling or did you use an extension cable to connect everything outside the ceiling?

Also, do you possible have a wiring diagram for reference as I did not see one. Unless I missed it :)

The THR320 is designed to talk directly to a DS18B20 1-wire temperature sensor. I only needed the ATTiny85 because the thermistor that came with the thermostat is an analog device, and the ESP32 in the THR320 could not talk directly to it.

You can get DS18B20 (or other 1-wire temperature sensors in a couple of form factors. One is embedded in a stainless steel canister. I think this sort will probably not work at all, because the canister will be too thick (and too long) to insert into the tube in the geyser. Another form factor is as a plain chip, with three legs. I think this has a much better chance of fitting into the tube, as it is much closer to the size of the existing thermistor. Like this: https://www.diyelectronics.co.za/store/temperature/1512-ds18b20-digital-temperature-sensor.html

In the worst case, you can probably trim a small amount off the end of the thermostat tube if it cannot go all the way in.


You will need to obtain some fairly heat resistant 3-core wire, making sure that all 3 cores can fit down the center of the thermostat. Then, you will need to solder the DS18B20 onto the end of your 3-core wire, taking notes which wire is connected to which pin of the DS18B20. It will probably make most sense to cut each lead at a different length, so your solder connectors will be at different positions, rather than bunched up at the same height. You will likely want to add some heatshrink tubing around your solder joints to prevent short circuits. Take a look how the thermistor was insulated from the tube for inspiration.

And you will need to get an RJ9 connector, and possibly a crimping tool. You should be able to use a regular Ethernet (RJ45) tool for the RJ9. Many of them have an opening for RJ10/RJ9 connectors as well. I'd get a few while I was there, in case I had to do it again. :) https://www.communica.co.za/products/mod-plug-4-4usa

Wiring of the connectors was described in this post (https://mybroadband.co.za/forum/threads/esphome-geyserwise-smart-thermostat.1231463/#post-30965201), but I see that the images are not showing up for me for some reason. Let me know if it is the same for you, and I will try to dig them out again.

And that's all you should need, other than a USB-TTL UART adapter for the initial flashing of ESPHome onto the THR320, if that is what you decide to do. The native firmware is in Sonoff's Ewelink ecosystem, so if you are familiar with that, then it should be able to do what you need it to do. I just don't like cloud stuff that I don't control playing an important role in my home.
 
The picture below shows the RJ9 connector, and you can make out the colours of the wires as described in #2.
To answer the rest of your questions, no, I did not modify the thermostat wiring, because I retained the thermistor. If I changed to a DS18B20, I would indeed have to change the wiring.

I installed the thermostat in the geyser (obviously), and the THR320 in a box bolted to a rafter nearby. The AC wiring was basically: DB - Geyser Isolator in the ceiling - THR320 - Thermostat (for the high temperature cutout)


1714990701335.jpeg
 
This is an interesting project. I was considering doing something similar a while back, you have mentioned some gotchas that I didn't even consider at the time. In the end, I went the less effort more expensive commercial route of just buying the Geyserwise TSE1 with built-in Tuya module. I am using the Tuya Local plugin for Home Assistant to bypass Tuya cloud. Found this project afterwards which looks awesome, probably would have used it instead if I knew about it. https://www.thingwala.com/geyserwala/connect/
 
The picture below shows the RJ9 connector, and you can make out the colours of the wires as described in #2.
To answer the rest of your questions, no, I did not modify the thermostat wiring, because I retained the thermistor. If I changed to a DS18B20, I would indeed have to change the wiring.

I installed the thermostat in the geyser (obviously), and the THR320 in a box bolted to a rafter nearby. The AC wiring was basically: DB - Geyser Isolator in the ceiling - THR320 - Thermostat (for the high temperature cutout)


View attachment 1704371Awesome. Thank you. Yes the images for some reason didn’t show correctly for me.

Thanks for the explanation. It helps.
 
Top
Sign up to the MyBroadband newsletter