Wi-Fi on your Lay-Z-Spa. Make it easy to remote control
Since last summer the Lay-Z-Spa has been in storage. In the meantime, I have gotten an explosive amount of questions regarding this year’s update as it seems many are trying to find a solution on how to Wi-Fi enable their hot tubs. So here is an update.
As of writing the current version of the integration is v4.1.3 which we will be using.
The parts/tools that are mentioned in the original guide still hold up to this day so you can still use the same ones if you are doing this fresh or upgrading an existing install. The guide assumes you have the same model pump S100101 and the d1_mini board with 5V pinout and Wi-Fi functionality.
The setup and upgrade
We download the latest version of the code from visualapproach repository. Extract it somewhere that we are going to work with it. Nothing changes here from the original guide we will still use Visual Studio Code to perform all the actions. We use PlatformIO to open the code folder. But this time the only change we need to make is the board to d1_mini.
Set the parameter as in the screenshot:
board = d1_mini
That’s all the changes we are going to make in VS Code. We now connect the board if we haven’t already with a USB cable and compile and upload the code. Follow the picture below for the proper upload steps to avoid errors.
Do keep in mind that if you are using my old guide as a setup for your board or you are upgrading. The pinout and your Wi-Fi/MQTT settings are reset to default and you will need to set up this again.
After the upload is complete your board should be accessible once again via http://layzspa.local I urge you to set up the basic settings like Wi-Fi so you have connectivity after you unplug it and use it as normal.
Once the UI is opened in your browser you will notice if you used it before it is slightly different. The first thing to do is click on the hamburger menu button in the top-right to open the menu. We should first go to Hardware Config and adjust the settings to our board and pump.
So here we have a multitude of settings that were not available before. This is why we no longer need to set the pump model and pinout in VS Code because it is now all done through the UI. Pretty neat!
The settings for the pump model number S100101 are as below in the screenshot. You will also need to set the PCB settings and Pinout if you soldered the wires the same way as in the original guide.
So we set it to 6 wire, 2021. PCB is set to Custom and Pinout is CIO: 4/3/2 and DSP 7/6/5/0. If your board or pump or soldered pins differ you must adjust this accordingly to your model/board.
We save the config and restart the board from the hamburger menu. If everything was correct you should see your model changed at the bottom of the main menu based on your settings.
You can test if it works properly by adjusting the settings. The way I like to test that it works is to enable the Bubbles function which will make the pump blow air. As well as adjusting the temperature settings. I would not advise trying the filter or heater options since I do this unplugged and it has no water inside so we don’t want to damage any internals.
So that is pretty much it. It has become much more straightforward to do with fewer parameter changes in VS Code. You can still follow the old method regarding the programs/tools you need. Just use this refresher for the rest once you have everything built and ready.
As always I hope this has helped you out. Happy bathing! Be sure to check out my other posts like:
Using 3D printing to improve your Lay-Z-Spa experience
If you are interested in integrating your hot tub in Home assistant you can check out this post here:
Home Assistant Hot Tub Integration
[The old method from 2022]
Since the start of summer, I have noticed a sale for some of these Lay-Z-Spa inflatable hot tubs. So I decided to get one. We used it for a few weeks outdoors in our yard and I noticed something. We usually tend to go in at the end of the day and that usually means not forgetting to heat it so that it is at the right temperature we want it to be. Sometimes you turn it on and leave the filtering on and forget the heating. Once the evening comes you go out and see that you forgot to heat it up. Bummer.
Since then I have decided there has to be a solution to this. Of course, Bestway offers pumps with Wi-Fi-enabled pumps and an app to accompany them. But most hot tubs do not include this feature and the pumps alone cost almost the same as the whole hot tub. Here comes a DIY solution courtesy visualapproach on GitHub.
You can find the page here:
The idea of this is we add a module inside the pump that interfaces with the pump itself and the display. Also provides Wi-Fi connectivity with a Web interface and remote controls. This supports many different hot tub models from Bestway. The personal one that I am using is the Cancun which has the 2021 pump on it, not like the older egg-shaped models. The features of it are the same as the Miami version except for the texture of the liner.
First off for this method to work we need to identify the pump model. There is a sticker on the side of the pump that will tell you what model you have. For this specific setup, I can confirm it works with model number S100101.
If you have the same one you can completely follow along to get this to work. If it is different or you have the egg-shaped pump better to refer to the GitHub page as there is better documentation on different models and what parts you need to make this work.
For this setup, we will be using a WeMos D1 Mini board.
A pair of male-to-female JST-SM 6-pin connectors
Soldering iron, a screwdriver, and a micro USB cable for connecting it to our PC.
Firstly you need to disassemble the pump and open it up to expose the wiring. You should disconnect the pump from the tub and power it off. There are 6 screws that we need to remove around the middle of the pump they can be accessed from underneath in the groves.
Check the locations underneath on each side, front, and back. You will find holes and you need to remove the screws to be able to lift the top half off to expose the connections. Take care when lifting the top half the handles for lifting on the side might come off. That is normal don’t worry you can put them back in later. You will also want to take care to not lift it too much off as the wire that connects to the display is not that long and you don’t want to damage it because we will need to use it. For easier use going forward, you can disconnect the cable.
We now have the pump prepared for modding. We will need to prepare the WeMos board with the code that is needed to control it.
Download Visual Studio Code and install it. https://code.visualstudio.com/
Within the application go to Extensions or Ctrl+Shift+X search for PlatformIO IDE and install it. It might ask you to restart or reload the application too. You will see the new icon available here
Download the latest release from the GitHub page https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/releases
Extract the contents to your preferred location. Via the PlatformIO home page open your project and navigate to the extracted folder with the 6-wire version
Once inside the folder click to open it
You will have an editor with a list of files on the left side. First, let’s open model.h, uncomment the Miami model, and comment out the PRE2021 with the // symbols. I also use the PCB_V1 version but I do believe the V2 can be used. So comment accordingly
At the bottom, you should find the platformio.ini file. Let’s open that up and define our board as the WeMos D1 mini
Next, we will open the BCW_6w_type1.h file and define the pins that we are going to use on our WeMos board.
Those are the pins we will solder the JST connector wires to. Before we start soldering let’s build and upload our code to see if it works correctly.
Upload the sketch via USB with the arrow at the bottom left corner
Once that is done we need to also do it via PlatformIO as it will give you a 404 error when trying to connect if you don’t do this. Click the PlatformIO icon and go to Project Tasks>nodemcuv2>Platform. Then Build Filesystem Image.
Wait for it to complete and then Upload Filesystem Image. Once both are done the WeMos will start providing a Wi-Fi hotspot called Lay-Z-Spa Module. The password for it is layzspam0dule. Once connected you can access the module via your browser by visiting http://layzspa.local. Click the three lines at the top and go into Network Config
Here you can set up your home Wi-Fi network. So that it will always connect and be accessible from your home network. Enter the SSID and password of your network and click save. Shortly it should be connected to your network. We can leave everything else as is for now and continue with the installation of the module to the pump.
Now we solder the connector cables. Here is the diagram of how the wiring should fit.
Solder the wires as shown in the above diagram. We won’t be using the one wire on the white-colored wire connector as it is not needed since it is used for the audio sound when turning on. Once installed we will get this little jingle that plays whenever you turn on the hot tub.
You should have something like this once done with one female and one male connector coming from the board.
Not my exact picture but taken from the GitHub page as an example. Now plug both the connectors into the two plugs that we disconnected which connect the display to the pump. This WeMos board will sit in between them and act as the bridge and controller.
Without assembling everything back we can test if it works. Place the top cover with the wiring and board inside somewhere in an empty space. Plug the power in and turn on the pump. If everything went well you should hear a jingle. The display will scroll some text informing you of the current version and show the IP address too. It will then display as normal showing the temperature. Now we can test if the remote control works or not.
Go into the web interface and you should have controls ready to test.
Since when I tested the board was not connected to the tub and there was no water I avoided testing the Heater and Pump functions. I just tested if setting the temperature and activating the Bubbles works. So if you were able to turn on the Bubbles and the pump started blowing air congratulations you should have everything working. Setting the temperature up or down should reflect on the display as well. We’re done! Now all that is left is to assemble the top cover back with the 6 screws. If you are worried about the board getting wet (not that I found any water inside the pump) You might want to cover it with something or have a case for it. You can of course 3D Print one for yourself. There are many models on Thingiverse like this https://www.thingiverse.com/thing:2045664
That is pretty much all there is to do. Once assembled you can place it back on your hot tub and check all the other functions. Also, be aware of your Wi-Fi reception if the hot tub is far from your router it might not reach to connect so check if there is good connectivity. For additional functions, it supports MQTT so you can add the Lay-Z-Spa to something like Home Assistant for automation and control. For more information on the features, model support, issues and support go to the GitHub link https://github.com/visualapproach. The community is quite active and healthy there and can help you out.
I hope this has helped you and provided some fun functionality.