Balboa Hot Tub/Spa Automation and Power Savings

Have the same GS523DZ with a VL801D and i built the thing, but could not get it to work.

Many are asking if the J2 plug with RJ45 connector is usable with the RS485 module. I have the latest version of the Balboa VS501z board. I have tested the currents and I think there is good hope for it to be working. Thanks @jshank for the info provided to accomplish this.
I think we can decipher that line 1 is 5V VCC, line 4 GND, lines 5 and 6 would be data. If someone with some electronic background could confirm this it would be appreciated as I’m only an amateur. How can we differentiate DATA + from DATA -? Findings in pic. Thanks.

1 Like

There’s no risk of damage if you swap A and B in RS-485 (Data + and Data - as you call them). Try it one way, it if works, you got it, otherwise swap!

i have the wifi bridge EW11 installed, but when i turn hot tub on screen stuck to “connecting spa” Can anyone help?

Unplug the EW11. Does the hot tub control screen now connect? If yes, you have something wired wrong on the EW11 and you are interrupting communications on the hot tub controller.

yes unplug solve the problem. dc voltage pins should be right, i measured them. maybe rs 485 data pins wrong? I put them in the same way as in the instructions :thinking:

Curious to know if you found out which pin was what? I also have a Balboa VS501z PCB. I wonder also what pin could be the clock.

Hi I use QNAP VM

  • Core2024.2.2
  • Supervisor2024.02.0
  • Operating System11.5
  • Frontend20240207.1

use: EW11

I try use this Addon, but failed.

I think right A B connection:
on debug mode:

  • MS, ME: Message Start/End (always 0x7e “~”)

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[12:24:16] INFO: Starting BWALink addon…
[12:24:16] INFO: Setting addon timezone to Europe/Budapest based on the system timezone.
[12:24:16] INFO: Starting mqtt bridge connecting tcp://192.168.1.213:8899/ to mqtt://core-mosquitto:1883
I, to spa: #BWA::Messages::ConfigurationRequest
D, wrote: 7e 05 0a bf 04 77 7e
D, discarding invalid data prior to message 7e
D, read: 7e 1c ff af 13 00 01 ff 0c 03 00 13 03 06 03 02 00 00 00 00 00 00 00 00 02 14 00 00 0a 7e
/usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/message.rb:78:in parse': Unrecognized data length (28) for message BWA::Messages::Status (BWA::InvalidMessage) from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/client.rb:65:in block in poll’
from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/client.rb:64:in loop' from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/client.rb:64:in poll’
from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:33:in block in initialize' from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:32:in loop’
from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:32:in initialize' from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:421:in new’
from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:421:in <top (required)>' from /usr/bin/bwa_mqtt_bridge:25:in load’
from /usr/bin/bwa_mqtt_bridge:25:in `’
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Unplug EW11 it’s normal, no RS-485 data converter:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[13:21:11] INFO: Starting BWALink addon…
[13:21:11] INFO: Setting addon timezone to Europe/Budapest based on the system timezone.
[13:21:12] INFO: Starting mqtt bridge connecting tcp://192.168.1.213:8899/ to mqtt://core-mosquitto:1883
/usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/client.rb:42:in initialize': Host is unreachable - connect(2) for "192.168.1.213" port 8899 (Errno::EHOSTUNREACH) from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/client.rb:42:in new’
from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/lib/bwa/client.rb:42:in initialize' from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:416:in new’
from /usr/lib/ruby/gems/3.2.0/gems/balboa_worldwide_app-2.1.5/exe/bwa_mqtt_bridge:416:in <top (required)>' from /usr/bin/bwa_mqtt_bridge:25:in load’
from /usr/bin/bwa_mqtt_bridge:25:in `’
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

EW11 powered but no A B Connection or swapped:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[13:23:00] INFO: Starting BWALink addon…
[13:23:00] INFO: Setting addon timezone to Europe/Budapest based on the system timezone.
[13:23:01] INFO: Starting mqtt bridge connecting tcp://192.168.1.213:8899/ to mqtt://core-mosquitto:1883
I, to spa: #BWA::Messages::ConfigurationRequest
D, wrote: 7e 05 0a bf 04 77 7e

Here, No communication from Balboa (swapped data wires)

I have:
Balboa BP601G1 PN 56497-01 (08-28-13)
PCB: BP501 Copyright 2012 P/N 24090_B1
J33 use the Main Panel Y cable 1, I connected Y cable 2 to EW11.
On info panel texted: WIFI Transceiver J33 or J45

SPA Model: 1 pumps + blower version.

https://www.balboawatergroup.com/getdoc.cfm?id=1864

Maybe not recognize my type the BWA???

“BWA::InvalidMessage”

regards
Pimpalavista

Jumpered Setup #4:

Circ Pump: Filters + Polling
Pump1 : 1-Speed
Pump2 : None
Pump3 : None
Blower : 1-Speed
Temp Scale: Celsius

regards
Pimpalavista

yeah guys, someone has an idea how i can make my whirlpool smart (Power only)? Model GS510DZ.
he has 3KW when i See it right, can this any shelly or sonoff or somethin else? i hope some can help to find a good solution

Hi there! Just read this post from beginning to end. Maybe this is the easiest way of building an own wifi module. Gonna get a raspberry pi and a RS485-usb.

But, I thought of one thing. If I can power the raspberry pi from an external power outlet with a USB adapter, there is no need for the first 5 parts from the list at the top, or am I getting it wrong? Then all I need to to is to plug in the RS485 cables in the USB dongle and insert it in the Rpi and continue with the software part?

If you already have power, that removes the need to step-down the 15.9 volts from the hot tub RS-485 connector to power the host device (RPi in your case). It was a convenience thing for me and a strong desire to not put another voltage source near a big tub of water I’m sitting in. Remember that most tubs have proper GFCI that protect you and the source you are introducing may not.

You are absolutely right. This could be a first setup just for testing to set up the configuraration. And if everything is working, then I can proceed with taking power from the tub instead.

I believe for me, the software setup is the hardest. I don´t understand all of this with MQTT, docker and so on. Maybe I will get back with some questions when I got my hardware set up.

Would this DC-DC converter work to the project?

That looks like it will work. DC-DC buck converters like that are pretty common. That one has a nice enclosure and USB port. Do let me know if you hit snags on the software. MQTT looks daunting but is well documented and used. You don’t need to be an MQTT expert, just set it up using docker.

Thanks!

Not really on topic, but what is the pros on having MQTT in docker instead of a normal addon? Seems to me that I cant do it in an easy way? I have a normal home assistant installation on a raspberry pi 4.

None really. Home Assistant add-ons are just mini docker containers from what I understand. Abstraction is really the biggest benefit. If something happens to your home assistant instance, MQTT keeps track of all of the states and values until it comes back online. Alternatively, if you wanted to use something else like Homie or NodeRED, you can keep using those even without Home Assistant.

1 Like

Okay! I think I have my MQTT up and running. Now I´m waiting for the raspberry pi, RS485 adapter and the ATX cable to arrive to my home. At first I will plug in the raspberry to an external outlet and try to get all up and running. When (or if) everything is working, the next thing is to power it by the tub instead. :slight_smile:

I have gone through all the steps with the software thoroughly and carefully now. This is what I have managed to accomplish:

  1. Set up an MQTT broker on my server. It’s working.
  2. Installed Raspberry Pi OS on a Pi 3b+.
  3. Installed Ruby.
  4. Installed Balboa Worldwide App and edited the config file.
  5. Subscribed to homie/# on my MQTT server.
  6. Activated bwa_mqtt_bridge.
  7. Plugged in my RS485 adapter into the USB port on the Raspberry Pi.

It’s the last step that isn’t working. I can’t start bwa_mqtt_bridge. When I read the error log, it complains that the service times out.

My config file is here (hide the username and password for the MQTT):

[Unit]
Description=Balboa Spa MQTT Bridge

[Service]
User=Carldunso
ExecStart=/usr/local/bin/bwa_mqtt_bridge mqtt://xxxxx:[email protected]:1883/ /dev/ttyACM0
Environment=“LOG_LEVEL=WARN” “LOG_VERBOSITY=0”
Restart=always
RestartSec=3s
Type=notify
NotifyAccess=main
WatchdogSec=60

[Install]
WantedBy=multi-user.target

And I can see some signs in the MQTT-broker log:

2024-05-02 15:37:28: New client connected from 192.168.1.117:36620 as auto-C01A7EF4-B79C-6EB7-B617-EBD1414F554F (p2, c1, k15, u’xxxx’).

For information, the RXD-led flashes on my RS485 adapter. Thats a good thing i presume?

I’m trying to install the addon but it immediately says Failed to install add-on
Unknown error, see supervisor

The Supervisor log says
2024-05-09 04:24:05.905 ERROR (MainThread) [supervisor.docker.addon] Invalid build environment, can’t build this add-on!

I’ve double checked the contents and am pretty sure I have that correct.

Any idea what I am missing?