All -
Wanted to start a new thread related to automating the Jandy/Zodiac PDA via RS485 and a Raspberry Pi (or any other device for that matter). There's another very lengthy and old thread that is long in the tooth and I'd like to get more visibility in this project and get help! Huge huge huge thanks to everyone that posted there over the years; I got a ton of info out of it: Control your Jandy equipment from your PC with a $15 adapter
Current state of pool:
I have an Aqualink PDA system by Jandy/Zodiac. The only way to control/manage my pool is via the old school wireless remote or the panel outside by the pool. The remote is waterproof/resistant, but it's laggy, large, requires a 9V battery, and is expensive to replace. Everything is working on my system, but I'm not content and want to geek out with this.
Goals:
Options:
I'm giving #3 a shot, even though my wife thinks there's no value in this project (like most my projects). lol
Requirements:
Total cost: $60-$130. So far I'm in for $30.
Steps taken so far:
That's where I'm at right now. I see tons of data including multiple devices (PDA, master controller, variable speed pump, and I assume my bubbler, heater, water temp, air temp, and 2 electronic valves). Also when I push buttons on my PDA remote, I see those commands.
Next steps:
If you have any info that can help, want to help with the project, or have any feedback whatsoever, please chime in!
Thanks,
jt
Wanted to start a new thread related to automating the Jandy/Zodiac PDA via RS485 and a Raspberry Pi (or any other device for that matter). There's another very lengthy and old thread that is long in the tooth and I'd like to get more visibility in this project and get help! Huge huge huge thanks to everyone that posted there over the years; I got a ton of info out of it: Control your Jandy equipment from your PC with a $15 adapter
Current state of pool:
I have an Aqualink PDA system by Jandy/Zodiac. The only way to control/manage my pool is via the old school wireless remote or the panel outside by the pool. The remote is waterproof/resistant, but it's laggy, large, requires a 9V battery, and is expensive to replace. Everything is working on my system, but I'm not content and want to geek out with this.
Goals:
- Free myself of the slow, antiquated PDA remote
- Control the pool from any computer, smartphone, or tablet (via a web site or custom app)
- Make programming easier - currently there are a lot of up/down/enter buttons I have to push to do things like change my pump speed, set programs, etc.
- Make more macro-type buttons. Example, click a button to change the speed of my pump to high, turn on the pump, then turn it off after 1 hour and reset the pump speed to normal. I'd use this on those days when I forget to add liquid chlorine until after the pump is off and I'm ready to go to bed. I can hit this button, throw in bleach, then go to bed knowing it'll turn off in an hour and resume the normal pump speed the next time it runs. I can think of many other macros or efficiencies but this is just the start.
Options:
- Pay ~$500 to upgrade my system to Aqualink RS/iAqualink (part # IQ20-RS). This involves replacing some of the internals in the power center box, mounting the wireless module, and either getting a good wireless signal there or running Ethernet. This system allows remote access via the web or most smartphones. Unfortunately, it requires Internet access as all control is proxied through the iAqualink servers/service. This won't get me the advanced macros I'm after, but it is by far the easiest way to go and accomplishes 3 of my 4 goals.
- Pay $230 for the Autelis interface, Pool Control for Jandy/Zodiac PDA. This looks to simply reproduce the remote via a web interface. A good alternative to buying a replacement PDA remote.
- Reverse engineer the Aqualink PDA system by creating a direct RS485 interface into the Aqualink and sending commands to it, effectively emulating the PDA remote. Eventually there would be a web interface or phone app that can then control the Aqualink via the Pi via the RS485 connection. Cost "should" be max $150 and all of my goals can be met with some time and effort.
- Forget it and keep what I have. $0
I'm giving #3 a shot, even though my wife thinks there's no value in this project (like most my projects). lol
Requirements:
- Some sort of computer. I'm opting for a Raspberry Pi because it's small, has very low power needs, it's cheap, and it can easily fit inside the Aqualink power center outside. Cost: $40 (cheapest Pi 3 I could find with a case)
- A USB to RS485 interface. This will allow the computer of choice to be able to communicate with the Aqualink. Cost: $20
- Network connectivity. Cost: free or the cost of running an Ethernet cable outside (let's say $50 as that's the avg cost of outdoor 100'+ runs from what I can tell)
- Power (ultimately 5V DC 2A or higher, typical of a newer USB phone charger). Cost: $10 (or free if you already have multiples like I do)
- Wire to connect the RS485 adapter to the Aqualink system board (not sure but I think you need 20 gauge or lower/bigger). I've heard you can use an Ethernet cable.
- Some level of computer and Linux knowledge (probably more than some, to be honest)
- Have lots of patience and a good attitude.
Total cost: $60-$130. So far I'm in for $30.
Steps taken so far:
- Procure Raspberry Pi. I happen to have an old gen 1 model B in a case laying around. I also had a SD card and power adapter. Woot. "Free"
- Procure wireless dongle. Found this on Amazon - https://www.amazon.com/gp/product/B003MTTJOY/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1 - but unfortunately, it doesn't work well outside for me (having to go through brick and metal pretty much kills my wireless signal). There are other options, some with antennas, etc. I think I'm going to just run an Ethernet cable to it. I may rig up a USB extension cable to run outside of the box but then it won't be protected from the environment. Probably tons of options here...
- Procure USB to RS485 adapter. This one looks to be working great for me, but I'm still early on in the project: https://www.amazon.com/gp/product/B00BR0AY80/ref=oh_aui_detailpage_o01_s01?ie=UTF8&psc=1 (edit: alternatively, this one is much cheaper and is reported to work well: https://www.amazon.com/JBtek-Conver...8&qid=1502894504&sr=8-3&keywords=rs485+to+usb)
- Install Raspbian OS on the SD card. I installed Raspbian Jessie Lite because I didn't want the desktop (use SSH to connect instead, uses a lot less resources). Installing operating system images - Raspberry Pi Documentation
- Configure Raspbian. This assumes you have some basic hardware and Linux experience. You need to get it on your network and enable SSH access. I won't go into these details; google is your friend (I will help if there's a demand for this of course). To quickly enable SSH, just put a dummy file called "ssh" in the boot partition on the SD card. I did that, connected it to my TV, plugged in Ethernet, saw the IP, then was able to SSH in and get wireless working. I never had to plug in a keyboard.
- Install python-serial. While python comes with Raspbian, this does not. Once you have SSH access to the Pi, run this: sudo apt-get install python-serial
- Get jbuel's (HUGE THANKS!) RS485 interface reader, aquadisplay.py: Trouble Free Pool.
- BEFORE YOU DO THIS STEP - TURN OFF POWER TO YOUR POWER CENTER (THERE ARE LIVE WIRES INSIDE) - Wire the RS485 adapter to the Aqualink main board. This involves opening the power center and wiring the + and - connections from the adapter to the middle two pins (2 and 3) of one of the red connectors in the box. For reference: Control your Jandy equipment from your PC with a $15 adapter - Page 8 and http://www.zodiacpoolsystems.com/~/media/Zodiac/Global/Downloads/0748-91071/6594.ashx pages 18-20
- Make sure everything is plugged in/turned on and you have network access. SSH to the Pi. Run this: python aquadisplay.py. You should start seeing data from the Aqualink. Good data will start with 1002 and end in 1003. If you see data but it doesn't match that, try reversing the RS485 wires. If you get checksum errors, try shortening the wire between the RS485 and power center, getting a thicker gauge wire, or bumping up the power adapter amps (I had errors using a 1A adapter but they went away with a 2A adapter - I assume the 2 USB devices were pulling more than 1A of power).
- Once you're happy with the script, set it to run as a service so it automatically starts at boot-up. These directions work great in Raspian: How to run a script as a service in Raspberry Pi Food Concerns
That's where I'm at right now. I see tons of data including multiple devices (PDA, master controller, variable speed pump, and I assume my bubbler, heater, water temp, air temp, and 2 electronic valves). Also when I push buttons on my PDA remote, I see those commands.
Next steps:
- Get better network connectivity to my Raspberry Pi. My wireless signal sucks by the pool equipment, so I need to fix that ASAP otherwise this project is dead in the water (pun intended).
- Identify device codes from the aquadisplay.py stream. I know for sure that the PDA is device 60 but there are others I see in the stream: 33, 38, 50, 58, 68, 78, 81.
- Identify commands coming from the PDA (also in the stream). This will likely involve a fair amount of work going through the menus of the PDA and documenting codes it's sending to the Aqualink. I'll then have to program those in.
- Figure out how to send commands to the Aqualink (emulating the PDA)
- Get a web site created that sends commands from #4
- Create more advanced macros/buttons for the interface
- Rejoice (translation: drink lots of beer poolside)
If you have any info that can help, want to help with the project, or have any feedback whatsoever, please chime in!
Thanks,
jt