Objective

Replacing the current spa controller with a custom wifi controlled controller.

Control Board

Verison 1

Schematic

Board Layout

Produced Board


2022:


Problems



2023:




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

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


SPEEDPower ConsumptionRateCost/hourCost/day
Low Speed0.67kwPEAK$0.14$1.26


OFF-PEAK$0.09$0.81
High Speed2.5kwPEAK$0.52$0.52


OFF-PEAK$0.33$0.33


Assuming


CostCalculationTotal
Cost/day9*$0.14 + 1*$0.52 = $1.26 + $0.52$1.78
Cost/mothCost/day *30 = $1.78 * 30$53.40


Heater

Specifications

NameUniversal 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.

SupplierHot Tub Essentials
Voltage240v
Power Consumption4 kw


Cost Calculations

Assuming PEAK RATE = $0.21/kwh, OFF-PEAK = $0.13


Power ConsumptionRateCost/hour
4kwPEAK$0.84

OFF-PEAK$0.52


Assuming 

CostCalculationTotal
Cost/day2 * $0.52$1.04
Cost/monthCost/day *30 = $1.04 * 30$31.20