I was eventually able to get the cover off the battery compartment, but it never quite worked after that. On eBay these controls sell for over $100, which seems extreme.  For about two years, we just manually controlled the heater with the manual override switch. Sometimes the switch would be left on for days, where other times it was really cold in the room, and it took an hour or more to get up to a comfortable temperature.

We needed a thermostat for that room. Keeping the temperature at some minimum would make the room livable all the time. Preventing the heater from staying on for days would save money. Initially I was going to build a standalone thermostat that would be connected via wires to the heater. Since the thermostat should be away from the heater, wires meant drilling in the walls, and fishing, and lotsa work. I thought about two nodeMCUs that would communicate over WiFi, and that lead me into node-red.

This was actually my first set of node-red nodes. I have a nodeMCU that controls a relay behind the gas stove in a 3D printed box. The Thermostat is controlled by another nodeMCU connected to a touch screen, and a temp/humidity sensor (DHT-22). It has a USB powersupply powering it. The case I am using now is something I found on thingiverse.

I used point to point wiring and followed some basic instructions I found. The touchscreen input and the display are separate devices, but both talk SPI so can be wired to the same SPI pins on the nodeMCU.

I put a RaspberryPi in the basement, where I was running Mosquitto and Node-Red. The Thermostat and the NodeMCU each connected to the RaspberryPI using MQTT. I built a flow that would monitor the temperature, and the current thermostat settings and would send a message to turn the furnace off or on as appropriate.

A previous project controlled the garage doors using bluetooth on an Arduino. I was never able to monitor the state of the garage doors. I added a node to the system with a couple magnet reed switches to know if the garage was open or closed. This flowed into the MQTT system, with another 8266 NodeMCU and a similar pattern of code as the thermostat and the heater controller node. Now I could see the state of the garage.

While I was out there, I chose to have a one wire DS1820 temperature sensor for the outside. I wasn't able to mount that sensor far enough away from the house to get an accurate outside temperature. It still reports the temperature, I just don't use it.

I added another node that would monitor the depth of the salt in the water softener. That worked great for a couple weeks. But well moist salty air doesn't do electronics any good, so that died. I don't recommend putting a NodeMCU inside the salt barrel.

I split the home automation system off to it's own network separate from the rest of the house. I thought it would be better to keep things separate both for bandwidth and security.

Eventually things just work, so I haven't really changed anything in the last few months (over a year I guess).