Wi-Fi on your Lay-Z-Spa. Great way to remote control
[Updated 2024-08]
A small update that may be worth noting. Nothing has changed as of the last update. Some new versions of these integrations were released (ver. 4.4.5 at the time of writing) but did not impact the guide I previously wrote. So this guide can still be followed to achieve the results stated. Regarding some news, there are now users selling complete kits that add the Wi-Fi functionality so if you are not tech-savvy enough to attempt this you may be interested in just getting a pre-made one:
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions/615
Disclaimer: I am in no way associated/affiliated with the post above, nor have I purchased this item or confirmed its legitimacy. I am solely basing this off of the reviews and comments left on the post that the seller appears to be legitimate in what he offers. Take this with a grain of salt and if interested, buy at your own discretion.
[Updated 2023-06]
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:
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA
The solution
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
Conclusion
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.
Hi, I’ve seen your Reddit post. Would you give it a try to EcO from iopool? We can ship you one smart water monitor for free to review it. We have users in France who have set up nice automation using it with Jeedom. A public API is available.
Hello Jonathan, sounds interesting. Please contact me via e-mail to discuss further
info @ antanaitis [.] lt
Unfortunalty, I’ve one error when trying to send you one email. Can you send me one at jonathan @ iopool [.] com
Thank’s!
FYI
Address not found
Your message did not reach info @ antanaitis [.] it because the domain antanaitis [.] it could not be found. Please check your message for typos and unnecessary spaces and try again.
No worries Jonathan. I have reached out.
Thanks for this guide. I’ve got the same version pump as you and have ordered the parts you suggested in the blog. I’m trying to follow the instructions, but the latest version from Github linked 4.1.1 don’t have the same files or definitions you suggest in your example.
Could you possibly help or update your guide to work with the latest version of the Code base?
Hi,
I would advise using the issues section of the git repo: https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/issues
You will most likely get quality advice and help there as I am not a maintainer of the project. Also, I haven’t had the weather yet to set up the tub back so I can try to update with the latest version once I get the chance.
I hope it helps
THANK YOU FOR THIS GUIDE! I was able to follow your guide for building the module and VS Code/PlatformIO setup. It made this project very straightforward. Everything worked the first time. Iโve never had that happen with an open source build.
Additionally, for anybody who comes here trying to get version 4 workingโฆ. Version 4 now includes the ability to change the pin assignments and the SPA Model in the โSPA Configโ tab from the webpage, once loaded.
For my S100105 pump, I set to โ6 wire 2021โ, PCB = โcustomโ and then the wires in the order they are on this site.
CIO = 4,3,2
DSP = 7,6,5,0
The only โcodeโ change I had to make in the 4.1.2 project was switching the board to โd1_miniโ in the platformio.ini file.
All other settings we left default.
Appreciate the update. I will hopefully soon be able to update mine to version 4 and update the guide as well.
Thanks!
Shouldn’t a level converter be used? Is no converter needed for the S100101 model?
The wemos d1 mini has a dedicated 5V pin so there is no need for conversion.
I bought the Wemos V4 version. Does this also work with that board?
Unsure regarding the board. The D1 mini was chosen because it has a dedicated 5V pin. You will need to check if the board has a 5V pin as well otherwise you will need to convert the voltage supply somehow. You can find more help if someone has managed or tried with a similar setup like yours on the creator’s GitHub page. https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/issues
Thank u, the VBUS is the 5V.
Hi,
Really appreciate this guide – just to confirm: with the D1 mini you do not need the PCB suggested in the visualapproach project?
Thanks.
Hello,
Yes the D1 mini itself is sufficient.
Best regards
Perfect, thank you – works a treat!
Easy mod to expand capability.
Bought the wemos D1 Mini V4 but my cables are also another colour. Donโt know what needs to go where now. Is it possible to contact u somewhere to send a picture?
Hello,
You will get the best support from the community in the maintainers github page. It has a discussion tab so you can check if anyone has already tried your board method by searching through the threads or create your own to find a solution.
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions
Hey Colorsone,
Did you get the V4 Wemos D1 Mini working without the LLC in the end?
I found out from one helpful person on Github that I should use the 5V (Vbus) on the board instead of the USB cable as i was doing and use a LLC.
If you did could you ping me on: [email protected] to chat.
Cheers
Alex
I bought my friend the SaluSpa Milan as a birthday gift and the factory wifi module keeps cutting out and does not broadcast long enough to get it connected to the wifi. The wifi router is 5 feet away through a glass door, and there are no devices nearby enough to cause interference. Bestway does not respond to any support requests and the warranty has since expired. Is there any instruction on how to replace the factory wifi module or connect to it to program it with the wifi information, or anything like that? If not, would this set of instructions work for a model that already has wifi?
Hello,
Sadly I have never seen or owned a version that already has the wifi module builtin. Can’t really help you out there. I would suggest checking out the github and open up the egg to see if the wiring is anything similar to the non-wifi models and it could be perhaps incorporated the same way. Although I haven’t seen examples of this.
Hi i’m not sure how exactly I should connect the wires to d1_mini and what pinouts should be set.
Pinout is CIO: 4/3/2 and DSP 7/6/5/0 but it applies to the S100101 pump. What should be in S200102? Same?
I ready about various problems with controlling this pump after connecting. Maybe they are due to improper connections?
Hello,
The guide assumes the pump model S100101. I see yours is a hydrojet model so modifications may need to required. I’d suggest asking on the maintainers site https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions as there are more varied owners of different spa models that could help out.
Best regards
Hi Damian. Did you get this working? I also have the S200102 model.
Hey, can you take a better picture or draw something about the soldering.. its a bit confusing.
Since the connectors on the pictures should go together?
I am really confused ๐
Hello,
The wiring diagram is very basic. In the guide it is mentioned that the d1mini board sits in between the connectors. You can find more pictures here for better understanding.
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions/312
Best regards
Hey,
I have posted the question on the Github and I have had some good help from there, but has anyone managed to use the V4 of the Wemos board?
Pin numbering is slightly different and I have no success getting it to work, so not sure if I have to update one of the files as changing the numbers on the GUI does not help and I do not get anything on the display.
Just one thing, and not sure if this is an issue, but I am using the USB-C to power the board as it has only 3.3 V, but then found after that VBUS is actaully 5V!!
Cheers
Alex
Hello,
Thank you for this blog post ! Very interresting !
I want to implement it for my own but I have only few knowledge on soldering / electronics.
On my Amazon (FR) store, I only have “JST-XH”, but you mention “JST-SM”. Based on what I read, I could use it but could you confirm it ?
Thank you for your help ๐
Jordan
Hi,
Based on what I found these do not seem the same. The connectors in the photos seem different and may not fit what is used in the egg. I can only confirm the JST-SM as I used those. The wires are probably fine but the connector I am not sure about. The matter is getting the right connectors to fit what is used inside the spa egg.
Lukas
Thank you for your reply ! I have purchased the correct cable on Aliexpress, I’ll just have to be patient now before testing it ๐
Jordan
Do you have any idea why my on does not work. ESP starts, I can connect there and see the interface and I have set the HW Config as descriped. When I connet it to LayZ, it shows me the temperature, but non of the buttons can be used. And the LayZ orginal panel shows the temp, but non of it’s buttons works.
I took a picture of my shouldering and settings:
https://tim.jyu.fi/view/users/vesal/oma/talo/talo/layz
I had problem with port D3 and moved it different place. Also added 1k resistors and LLC to cable going to CIO. Now it works.
I have the pump S100103 and used this guide using only a D1 mini and it is not working properly. I can control it from the app and from home assistant but all the temp readings and everything go up and down all the time which causes the heater to constantly switch on and off. Sometimes it is so bad that the pool doesn’t even get any hotter and just maintains temperature. I removed the controller now and will add logic level shifters to see if that fixes the issue.
Your pump model is different perhaps? So the configuration here may not apply in your case and may need additional tinkering with the settings. The best bet would be to check the Github page. Most likely someone has a similar model.
hello, I just tried to install as explained in update 2023-06 with a d1 mini v3, I soldered the pcb as in this page and finally modified as indicated board = d1_mini. however it doesn’t work when I mount all of this in the honolulu S100101 pump nothing turns on. no screen no beep. I just hear a relay that works once then goes out. Where do you think the problem could come from? advance thanks. PS: I’m new to programming.
Most likely a wiring issue. I’ve had this problem and I had to remove the board from the pump, resoldering and refitting the wires helped in my case.
For more troubleshooting steps I would try to just plug it in and see if the web interface boots up and is accessible. At least that way you can confirm that the board is functional. Interesting to note is that sometimes it takes an actual minute or two for the screen to come on if the wifi connection is poor. I think once it boots up it tries to connect to Wifi once it’s connected it starts displaying as the first thing it shows is the software version, date and I believe IP address. Not exactly sure about the process since I can’t test it further as the tub is packed up for the season.
Have you ever had it to where the “buttons” don’t work in the web interface? When I select “bubbles” or any other option the slider moves, and then goes back to off. I tried reloading software onto a new board and the same issue happens
I’ve only had an issue when the screen would come on but the buttons were not responding when being pressed. After resoldering the wires properly in my case was just a bad connection.
There are some discussions of buttons not working on the Github site:
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/issues/533
and here that might help
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions/451
Also the manual here: https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/blob/master/bwc-manual.pdf
Lists that there is a page /debug-on/ for the web interface when accessed it should turn on debug logging. Perhaps that would provide some useful information on what is happening when buttons are being pressed.
Hi,
I have a s100102 pump
Followed the guide soldered the wires
Vscode and set up in app was fine and working
When plugged into heater unit the screen simply wonโt turn on the heater makes like a relay click and then nothing
The unit broadcasts its wifi while plugged into the spa but the UI wonโt load (added 5v usb too it and the ui worked but still no screen)
Any hot tips ? Soldering seems neat no cross over etc
hey i dont know if you are the right guy to ask but i will try anyway
i got a Lay-Z Spabad Hawaii HydroJet Pro whitout wifi
do you know if i can buy a wifi modul for after mounting for this spa
hope to hear from you
b.r Allan Frandsen
Hi,
The hydrojet models should be supported but they may require a different configuration. There is some discussion on the maintainers Github here about your specific model.
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions?discussions_q=hydrojet
I would check there. Best would be to get your answers there as the model of the pump and functions will most likely be different.
Does the web app allow you to schedule just the filter pump to say run 8 hours a day. Or would I have to set up home assistant to do that.
The SPA Config tab has commands that you can schedule. There is a set filter pump command so you could configure the command to run on intervals if you wanted. No home automation needed.
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions/46
thanks for replay
I have tried to connect to the bord after setup wifi, it says that the ip to the board its not safe so i cannot acess it. Wifi setup went fine.
I should be able to connect to the board without connecting it to the spa right ?
Your browser security is most likely blocking it. So you would need to allow the connection. Some browsers just don’t let you connect to sites that are hosted under http:// instead of https:// so they get marked as insecure.
Example in Firefox to allow such connections. Depends on the browser and settings you are using for it may differ.
Im using fireox have tried chome to an http://
I get the message
Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.
Please contact the web site owners to inform them of this problem.
and its not possible to allow it
Not something I have experienced. Never seen such an error. Got any antivirus/firewalls running? Do the browsers you use have any add-ons/extensions enabled? I would try from a clean slate and test on a fresh unmodified browser.
If all else fails best would probably be to try to do a network recording on for example Firefox:
Recording Firefox network log
With that you could then try to raise an issue in the maintainers GitHub page, this might have enough information to troubleshoot further.
Hello @Antanaitis,
I’ve done all steps but when connecting to the SPA I have no controls on SPA (neither on app). I have run the hwtest page and there is no error : does it mean that the soldering is ok ?
How can I diagnose what’s wrong ? I’ve read that on most cases it’s related to soldering but the hwtest page says everything is OK so I’m in the dark here.
Thank you for your help!