Objective
Replacing the current spa controller with a custom wifi controlled controller.
Control Board
Verison 1
Schematic
Board Layout
Produced Board
We used an old spa board and removed the micro-controller, dc supply, etc.. This way we can use the power inputs and relays. All relays on the board are 12v.
2022:
- Moved flow check to GPIO-3 (RX).
- Installed board in original Watkins Case
- Revised Firmware
Problems
- Having the flow check on GPIO-0 can cause reboot failures if the flow is stuck closed.Moving flow check to RX. Revised in 2020.
2023:
- Went to add the pump button and discovered a design error. The pump ADC input is floating and should have a pull-down to ground. Removing the 10K from the 3V supply.
New Control Panel
Since I have a custom controller, I decided to add a control panel to the hot tub. The plate was 3D printed with light grey PLA filament. It was then sanded smooth. The center switch controls the lights and the small switch to the left controls the pump. All other controls are set using HomeKit.
Software
Arduino Web User Interface
Homekit/Homebridge Integration
AUTO = Powersave Mode
Temperature
... { "accessory": "mqttthing", "type": "thermostat", "name": "spa", "url": "http://192.168.1.50:1883", "username": "homebridge", "password": "pass", "topics": { "getCurrentTemperature": { "topic": "spa/status", "apply": "return JSON.parse(message).temperature_f;" }, "getTargetTemperature":{ "topic": "spa/status", "apply": "return JSON.parse(message).tarTemperature_f;" }, "getTemperatureDisplayUnits":{ "topic": "spa/status", "apply": "return 0;" }, "getCurrentHeatingCoolingState":{ "topic": "spa/status", "apply": "return JSON.parse(message).state;" }, "getTargetHeatingCoolingState":{ "topic": "spa/status", "apply": "return JSON.parse(message).mode;" }, "setTargetTemperature": { "topic": "spa/command", "apply": "return 'setTemp ' + message;" }, "setTargetHeatingCoolingState": { "topic": "spa/command", "apply": "return 'mode ' + message;" }, "setTemperatureDisplayUnits": { "topic": "spa/command", "apply": "return 'tempUnits ' + message;" } }, "heatingCoolingStateValues": ["0","1","2","3"], "temperatureDisplayUnitsValues": [0,1], "minTemperature": 50, "maxTemperature": 110 }, ...
Pump
... { "accessory": "mqttthing", "type": "fan", "name": "hottub", "url": "http://192.168.1.50:1883", "username": "homebridge", "password": "pass", "topics": { "getOn": { "topic": "spa/status", "apply": "return JSON.parse(message).pump > 0 ? true : false;" }, "setOn": { "topic": "spa/command", "apply": "if(message) return 'pumpOnOff 1'; if(message==false) return 'pumpOnOff 0';" }, "getRotationSpeed": { "topic": "spa/status", "apply": "return JSON.parse(message).pump;" }, "setRotationSpeed": { "topic": "spa/command", "apply": "console.log('MESSAGE: ' + message); if(message >50) return 'pumpState 2'; if(message==0) return 'pumpState 0'; return 'pumpState 1';" } } }, ...
Future
Hardware Changes
Changes
- Move Flow sensor to ADC on CH7 in order to free up GPIO-0 or RX/TX.
- Add light control
Appendix
Pump
Specifications
Waterway Executive 48 2.0 HP pump | |
---|---|
Description | 2.0HP Waterway Executive 48 Spa Pump, 2 Speed Waterway OEM part # 3420820-1A 2.0" intake and 2.0" discharge, (Measures 3" outside to outside) |
Voltage | 220-240volt |
High Speed Details | 10.5 Amps high speed (3450 RPM) 2.5KW |
Low Speed Details | 2.8 Amps low speed (1725 RPM) 0.67KW |
Cost Calculations
Assuming PEAK RATE = $0.21/kwh, OFF-PEAK = $0.13
Assuming pump is running for 9 hours/day @LOW SPEED
Assuming pump is running for hours/day @HIGH SPEED
SPEED | Power Consumption | Rate | Cost/hour | Cost/day |
---|---|---|---|---|
Low Speed | 0.67kw | PEAK | $0.14 | $1.26 |
OFF-PEAK | $0.09 | $0.81 | ||
High Speed | 2.5kw | PEAK | $0.52 | $0.52 |
OFF-PEAK | $0.33 | $0.33 |
Assuming
- PEAK Power Rate
- 9 hours on LOW
- 1 hour on HIGH
Cost | Calculation | Total |
---|---|---|
Cost/day | 9*$0.14 + 1*$0.52 = $1.26 + $0.52 | $1.78 |
Cost/moth | Cost/day *30 = $1.78 * 30 | $53.40 |
Heater
Specifications
Name | Universal Heater Assembly - 4 kW |
---|---|
Description | 15" heater manifold (measured from stainless steel flange to flange). 5 options for location of pressure switch (includes threaded plugs). Moveable bands allow movement of thermal well (for sensors) and studs to connect to pack box. Includes black split nut unions and white PVC unions (as pictured). - 2" white PVC slip connections accept 2" pipe (2-3/8" O.D.). - 2" threaded connections measure 3" O.D. on threads. |
Supplier | Hot Tub Essentials |
Voltage | 240v |
Power Consumption | 4 kw |
Cost Calculations
Assuming PEAK RATE = $0.21/kwh, OFF-PEAK = $0.13
Power Consumption | Rate | Cost/hour |
---|---|---|
4kw | PEAK | $0.84 |
OFF-PEAK | $0.52 |
Assuming
- OFF-PEAK Rate
- 2 hours per day
Cost | Calculation | Total |
---|---|---|
Cost/day | 2 * $0.52 | $1.04 |
Cost/month | Cost/day *30 = $1.04 * 30 | $31.20 |