My wife has wanted a hot tub for sometime but we weren’t sure how often we would use it. I also wanted to avoid spending a small fortune on one so naturally I began looking at affordable used hot tubs. After some research I found there were three different types of tubs.
- Inflatable hot tubs – These were the cheapest but the least comfortable and most fragile.
- Semi-portable hot tubs – These are made of foam and can be moved if needed.
- Permanent hot tubs – This is your typical fiberglass or concrete hot tub and these can be very expensive.
I decided to look for a Semi-portable hot tub made by Softub.
Softub
The tub I bought was in great shape as it was stored in doors its entire life but it is a very old model. It worked for a few months and did exhibit a few issues with maintaining temperature. Specifically it was often too hot, sometimes reaching over 120° F but the issue that started this write up was that it would no longer turn off. Normally the tub’s heat is controlled by adjusting the temperature dial. Once you pass the current temperature the tub/jets turn on and it runs until the temperature is met. My tub would run and never shut off even if I turned the temperature dial all the way down (off). I could see that the tub recognized the temperature had been met (the light indicating heat would turn off) but the tub’s jets would continue to run.
I started by troubling shooting all of the parts I could including the Hi-limit switch, temperature sensor, and the fuses. Everything was working as intended. This left me with a few potential culprits:
- The control board could be failing
- The temperature dial could be failing
- A relay could be sticking
- A resistor could be failing
None of these are easy to test and most would require replacing the 30 year old controls with expensive hard to find 30 year old new old stock controls. It was at this point I had a few different options for fixing the issue:
- Buy a new old stock control board which might not fix the problem
- Buy a new pump assembly, the would be expensive and require retrofitting it to the older tub and the old pump still worked great so it would be a waste to replace it
- Build a new controller, this is much easier said than done
- Buy a new working Softub, this is the most expensive option at around $6,000.00
After looking for parts online I found that the manufacturer does not list or sell parts for their tubs and most hot tub stores can’t find anything on them either. It was at this point that I began to outline how I would build a DIY controller. I would need a computer, temperature sensor, reply, display, and controls. It was starting to turn into a very large project that would be very difficult to complete.
While I was looking at devices like the UniPi as a potential foundation for my build I got really lucky. I found a device called the Sonoff TH16, an IoT smart home device that would solve most if not all of my problems while giving my tub some much needed features.
Sonoff
The Sonoff TH16 is basically a smart relay with a built-in waterproof temperature sensor. Crucially the TH16s specs aligned to my needs with it’s voltage, amps, and temperature ratings working with my pump motor.
This means that I could remove all of the old Softub control boards and replace them with one simple smart device that would use its own temperature sensor to maintain the desired heat. In fact I could keep a few existing parts and still have all the existing safety features as well. So at this point the only thing that wont work will be the old temperature dial (which didn’t work well to begin with and did not have degree specific settings).
Wiring and Components
Below is an outline of how the Softub was wired as well as how I’m planning on wiring it.
Old: 120v → GCFI Plug → Hi-limit Switch → Main Relay → Upper/Lower Controls → Pump Motor
New: 120v → GCFI Plug → Sonoff TH16 → Contactor → Hi-limit Switch → Pump Motor
Here is a breakdown of the components I’ll be using and there specifications:
- Existing Softub 15 AMP GCFI power cord
- Sonoff TH16 100-240V AC 50/60Hz 15 AMP 3500W
- Sonoff DS18B20 temperature sensor range of -55℃~+125℃
- Packard C230b contactor normally open 2 pole 30 Amp 120V coil rated for 600VAC
- Existing manual single pole hi-limit switch rated for 120 F
- Existing pump motor 120V 20 AMP 1 HP 50/60Hz
- Existing microswitch
- PVC enclosure (the new components are too big for the old black enclosure so I bought a larger one, drilled out holes, and then cut away some foam to make it fit)
I still wanted to have the two button controls on the tub. The reset switch will work out the box as it’s an airl button actuating the analog Hi-limit switch so no wiring needed. The jets button will be more difficult as the old microswitch is no longer connected to the old board and the Sonoff TH16 doesn’t have any additional button input out of the box. After some googling I found that the Sonoff TH16 could be flashed with custom firmware that would unlock a handful of features including a button input.
Tasmota
Tasmota is a custom open source firmware that can be flashed onto the Sonoff TH16 which gives you more control over your device and its settings. This includes no longer needing to connect to Sonoff servers for the device to work, adding in custom controls (like auto on/off based on a desired temperature), and even adding a physical button action.
With this firmware installed I should be able to do the following:
- Set the tub to run/heat if the temperature is below a set point (102)
- Set the tub to stop running if the temperature is at or above a set point (106)
- Set the tub to run for X mins (15) if a button is pressed (jets microswitch)
- Turn the tub on or off wirelessly using my phone or computer
- Log events (know how often my tub runs and for how long)
Home Assistant
I connected my Sonoff TH16 to my Home Assistant which has been controlling it ever since. I’m even able to turn on the jets with the click of a switch.