Balboa Hot Tub WiFi Module Integration

I thought that might be the case.

I will have to find a different system then probably but thanks for confirming :slight_smile:

Absolutely!

just an FYI, if your spa has the CMS app, you should be able to swap out the controlmySpa module for a wifi module and use the BWA app instead.

thanks so much for sorting this out, you’re a god send. My automation for my holiday house has been broken a few months.

I’m trying to use the device in WebCORE as I used to use a rPi to communicate with it before and used webcore json calls. Using your device type I cant figure out how to set the ready/rest portion or temp low/high…

During the week when no one is there, I have a webcore piston run at 10am looking to see if solar is generating, if it is, I turn on the pumps for 15 minutes to move the water and set to Ready and 39degree Celsius. At 4pm, I have it go into low temp and rest mode so it doesn’t use power at night when no sun is generating solar

On a Friday, I have the spa set to Ready and 39degree high temp so its ready for when we get there.

Any idea how I can simulate the ready/rest and temp low/high through your device?

Many thanks in advance

I did manage to hack the following together temporarily

Hey @icepicknz, I actually had built out additional features for my own setup and never got around to committing it to the github repository. That includes being able to toggle aux, temperature range, and heat modes. I just published it now, so you should be able to update your device handler and then you can trigger the command “toggleHeatMode” and “toggleTemperatureRange” to do what you are looking for!

1 Like

This worked perfectly. Thank you for your contribution and clear instructions.

Thank You.

Glad it worked!

Is there away to hardwire the balboa to smart things hub? Looking at the wifi module it seems a bit pricey!

As far as I know, there isn’t.

Thanks for all the great contributions made in this thread to get this working. I just received my SPA with Balboa Wifi and interested in getting it integrated into my “Smart Cabin”.

Before I go out and buy myself a SmartThings Hub, will this stop working when SmartThings turn off their classic app October 14, 2020?

As it is currently, pieces of it will stop working, yes. I also can’t guarantee what changes will be decided by the SmartThings team between now and October to say for certain what will and won’t work. That being said, I currently use this as part of my own smart home ecosystem, so you’ll likely see new commits by me to try to ensure compatibility because I’ll want mine to continue working.

1 Like

Is there any way to have temperature alerts, faults? Being in Canada, low temp is my main concern. I added a sonoff th16 with tmp probe into one of the water lines and it works fantastically . Has anyone received a fault code and saw it on the balboa app ? Any way to push notify in case of fault/low temp / loss of power ? Currently I simply have the th16 set to turn on when it drops below a set temperature . I rely on my fing.io box to monitor the th16 wifi signal so if that drops i know the tub lost power.

Thanks a lot for your swift reply. Sounds promising and hopefully you can get it working with the new version without to much work.

I haven’t ever seen a fault code, so not sure what’s available as far as that goes. If the system goes offline, there’s no way to get the temperature, so it only displays the last read temperature. I’d have to play around with whether the device is online or not to see what I can get as far as that goes.

This is all really fantastic and much appreciated. I recently discovered this and was successful in getting it all up and running within SmartThings. One glitch I encountered during setup was that at the screen where you enter your username and password, I was only seeing the “password” box. I changed your SmartApp code in authPage() per below, then the box showed up and everything worked like it should.

Old code was:

        input("username", "username", title: "User ID", description: "BWA User ID", required: true)
        input("password", "password", title: "Password", description: "BWA Password", required: true)

was changed to:

        input("username", "text", title: "User ID", description: "BWA User ID", required: true)
        input("password", "password", title: "Password", description: "BWA Password", required: true)

However, I am now having an additional issue I was hoping you could help me resolve. I am trying to utilize the BWA device handler to send commands to the spa from an external source (Homeseer in my case, but am using Postman right now for testing) using the ST API. I cannot figure out which capability (or more generally, the proper syntax) to use when sending commands to run the custom commands that are defined in the device handler. I have even tried adding the “Execute” capability, but I still cannot find anything that gives me discrete control of all functions (pump1, pump2, pump3, light1, etc).

For example, I send the following JSON command to: https://api.smartthings.com/v1/devices/{deviceID}/commands

{
"commands": [
{
"component": "main",
"capability": "switch",
"command": "toggleLight1"
}
]
}

and receive the following error:

{
"requestId": "B36349B4-A607-4535-9C0B-C0FE7D24D2FA",
"error": {
    "code": "ConstraintViolationError",
    "message": "The request is malformed.",
    "details": [
        {
            "code": "BodyMalformedError",
            "target": "httpRequestBody",
            "message": "The request body is malformed and cannot be processed by server.",
            "details": []
        }
    ]
}

I have tried countless combinations (all capabilities, arguments, etc) but just can’t figure it out. The only successful command is below, but it just happens to make use of a very “out-of-the box” usage, but strangely only works to turn Pump1 on/off.

{
"commands": [
    {
        "component": "main",
        "capability": "switch",
        "command": "on"
    }
]
}

I would really appreciate any assistance or direction anyone would be able to provide. Thanks!

I finally figured out a solution utilizing this SmartApp and Device Handler, so thanks again for the contribution.

The summary of what I did: First, let me start off by saying I don’t have a ST hub and am relying solely on ST as a cloud based resource that relays commands between the BWA cloud and my locally hosted Homeseer controller. First, I created a virtual device (switch) in ST. I then created a matching virtual device in Homeseer. Then I used a webCoRE piston to synchronize status and control between the ST virtual device and spa on the ST side. I also use this piston to send status updates from ST to Homeseer using JSON get commands. Finally, I use a script on the Homeseer side for controlling the spa which issues a JSON post to the ST virtual device via the ST API.

THANK YOU SOOOO MUCH for making this work. I got my hot tub 4 years ago and have been checking every 6 months for SmartThings integration. With this I am able to turn the pump off/low/high, toggle the light and set ready/rest.

One issue/bug I have come across is the temperature setting is stuck at 32 and temperature target display is stuck at 40 (even though it does actually go back to the proper setting on the tub.) Also, if I change the temperature it’ll cycle the pump high/low repeatedly until I remove the device from smartthings and readd it. Wondering if this can be released in a future change. if not, that’s no problem, I can make it work with the functionality you’ve opened up. This finally allows me to set the hot tub control with a kitchen switch.