My first thought was to open up the heater and add temperature control. But that was a big no as the water heater is checked and sealed by the gas company and any tampering results in a fine.
So the only solution left was to control the gate value which switched the water going to the heater. The gate value when on lets the water go directly from the tank, bypassing the heater. When closed the water is passed though the geyser which heats it..
So my initial solution was to use two esp modules in p2p mode to control the tap from the bath. But somehow they kept dropping the connection from that distance. So i used them in the normal mode with a wifi router. As a bonus i can even control the tap with a cel phone.
Both the remote and the actuator are programmed in the arduino ide using the esp library. ( due to my limited programming skills )
The remote has two separate buttons and status leds to turn the tap on and off. The status leds indicate the current position of the actuator.. Also the added advantage of having two buttons is that even if one of them is pressed several times the actuator stays in the same commanded position.
The project was implemented on one freezing weekend with all the parts pulled out from defunct projects and the case quickly 3d printed.
the actuator can also be toggled with a button on the actuator as the same heater also serves the service kitchen tap.( the nightmare of pipes and wires )