Back in Feb, my family bought a new house that came with a very old hot tub built into the deck. When I opened it up in May, I was surprised to find that the plumbing was actually still good! However, the controls where an entirely different story. Things where miss-labeled (such as the Heater being called "AC" on the breaker box!), the original controls had been bypassed since they didn't work, and the wiring was a mess. The only way to operate the pump or heater was to go through the house, to the basement, and manually flip the breaker at the electric box. The light does not work at all and the blower's pneumatic button worked ~20% of the time.
I looked around and found that I could buy a new controller for for ~$450 (parts only) but that doesn't count installation and didn't solve my desire to be hands off with the maintenance! After all, it needed to be run a couple hours a day for the filter to work and I didn't want to have to remember to do that each day!
After looking over the disastrous electrical mess, I found that I could add relay's to the pump and heater power supplies as well as improve the accuracy of the existing blower's pneumatic button with very little effort. From there, it was just a matter of outlining my project!
Here is how I broke down my project (keep in mind that the heater, blower, pump, and filter exist in the basement with in-ground plumbing to the outside deck):
Phase 1 - Get the Pump/Heater on a timer.
Phase 2 - Get the water temperature as an IoT device.
Phase 3 - Control the Pump/Heater on relay's and control it through an IoT device.
Phase 4 - Develop a web application to interface with the IoT devices (record temp history, report status, etc).
Phase 5 - Use a MQTT broker for better integration into existing home-automation services.
Phase 6 - New Control panel and relay for blower.
A very inexpensive NodeMCU controller, real time clock, digital temp sensor and relays can accomplish all of the above. Monitor and control from a web page instead of an app. Upload program changes wirelessly. Send data to a cloud spreadsheet viewable from anywhere. Monitor and control from anywhere using MQTT. I use 6 of them to save $1,000/year.