Hi @rogandawes,
Thanks for the extensive write-up and sharing your experience. Just like @johannyellow, I struggle with the built-in sensor in the standard Geyserwise thermostat. I got it working but the values kept fluctuating ever so slightly and wasn’t sure if it was 100% accurate.
Looking at how the Geyserwise thermostat was manufactured, I also came up with your idea on option 4, and since I had a spare ds18b20 stainless steel sensor lying around, I thought to try it. And it works 100%. It is indeed a bit of a hacky approach with trimming off the tip of the tube, but once it fits and able to get the wires through the tube, it was easy to wire the three wires and code the sensor in ESPhome for an ESP32 module.
Oh, interesting! I never thought that the stainless-encapsulated sensors would fit into the tube, my recollection of the diameter of the thermostat was that it was significantly narrower than the capsule. Glad you got it working, though! Which controller/relay did you end up using?
Yeah, I was pleasantly surprised as well when it fit. Seems to quite a bit of space in there as it slid in and out very easily.
I have been using the Sonoff POW R3 for quite some time already, as I used to switch it on with excess solar, or time based when needed before showertime. Now knowing the temperature make s it even more efficient to heat to just the right temperature on cloudy wintery days in Cape Town.
How are you connecting the temperature sensor to the R3? From what I can see, it is not designed to have external sensors attached to it? Or is the temperature sensor connected to a different ESP32?
I run them independently and have both connected in Home Assistant, and use an automation based on variables such as battery SOC, predicted solar etc etc
Oof! Just hope that nothing goes wrong with your Home Assistant config while the PowR3 is heating, and waiting for a temperature update from it. This is the big reason I wanted to have the sensor and relay controlled by the same ESPHome node, and rejected the CBI Astute.
Yes, you can put all sorts of failsafes in place in the R3 to not have the relay on for too long, etc but that can still end up with boiling water in the geyser. While it is possible to do direct node to node updates using udp: and packet_transport:, you are still at the mercy of the WiFi going down. I guess you could have a check on the last update of the temperature value received by the R3, and switch off if it is stale/too old. I’m still not too happy with that idea, personally!