Control your Jandy equipment from your PC with a $15 adapter

This is really a monster thread and its easy to get overwhelmed. I have the hardware and am a retired software engineer, so I'd like to cut to the chase.

Is the One Touch emulator still avaiable? Where? Is it still required? re better alternatives??

Emulator can be found here under Downloads tab: http://www.zodiacpoolsystems.com/Products/Controls/AquaLink-OneTouch.aspx

My rigged version based on this thread (which I installed after the OEM version crapped out) has stopped working, but I get the feeling the wiring was eaten by mice in the ceiling so I have to check continuity in the wires before doing more tinkering with the actual parts.
 
Im trying to control a Zodiac Tri Chlorinator without having my own "power center".
I see that you have some chlorinator output in the screendump.
Can you send me the actual raw "AquaPure" commands and acks that you are parsing?

I have so far only managed to deduct the Zodiac Tri Chlorinator ("AquaPure") output setting command:

Clorinator "AquaPure" RS485 Aqualink protocol
<head><data><chksum><tail>
<data>=<destination><command><parameter>


(all in HEX)
head=10:02
tail=10:03
destination=50
command=11
parameter(output level %)=46 (=70%)


Example:
<data>=50:11:46

Let me know if you have found out anything!
Regards
Thomas



So...I got the PDA licked in Java/tomcat. It will run on either windows or linux/raspberry pi.

1. The trick to getting a response from an Probe/Ack is to use device 0x61 or higher. As mentioned earlier, the PDA is 0x60
2. The PDA protocol is completely different and a bit sucky. What you have to do is emulate the key clicks. (select, up, down, back, button 1, button 2). You then watch for the current screen you are on and what the selected line number is when a message line comes in
3. The code I did currently supports basic on/off and status. Most devices it will navigate to the Equipment ON/OFF menu but it will do Lights on and Jet pump for me by sending KEY ONE and TWO respectively. The code is smart enough to go up or down on the menu. I did this in a simple XML servlet that my OpenHab controller uses for the following UI.
4. The servlet is stateful so it can do stuff like store the last aquapure status and water temp, stuff that you usually only see when the pump is running.

I probably could have purchased a new modern pool controller for the time I sunk into this...but victory feels good.

BTW, now that I have this openhab enabled, there is some crazy cool stuff I can do...like send me a text message when I have issue with AquaPure...Or when my hot tub is heated to the desired temperature....

View attachment 28189View attachment 28190
 
Hi All
I'd like to contribute to all the good work by adding the Zodiac TRi Chlorinator RS485 protocol when set to controller "AquaPure Rev L/M"
Best regards
Thomas

+++++++++++++++++++++++++++++++++++++++
When Zodiac TRi set to AquaPure Rev L/M:
Chlorinator RS485 Aqualink protocol
+++++++++++++++++++++++++++++++++++++++


<head><data><chksum><tail>
data=<destination><command><parameter>


(all in HEX)
head=10:02
tail=10:03
destination=50
command=00/11/14


Master/Slave:


probe:
50:00
00:01:00:00


identify:
50:14:01
00:03:01:41:71:75:61:50:75:72:65:00:00:00:00:00:00:00:00
="AquaPure"


set output/check status:
Master:<50><11><output%/boost>
where:
<output%/boost> = 0-100 for output level
<output%/boost> = 101 for "boost mode"


Slave:<00><version><salt><error><add salt:LowByte><add salt:HighByte>
where:
<version>=0x16="salt/100+add salt"
<error>= bit0=no flow, b1=low salt, b2=high salt, b3=general fault
<salt>=ppm salt level/100
<add salt>=<16bit signed word>=lb salt to be added


----------------------------------------------------
Examples:


Master:50:11:01
=1% output
Slave: 00:16:20:01:03:04:50
=Salt 3200 PPM, NO Flow Error,Add 1027 lbs Salt




set output 0%:
50:11:00
00:16:28:00:00:00
set output 34%:
50:11:22
00:16:28:00:00:00
set output 100%:
50:11:64
00:16:28:00:00:00


set BOOST (100%) (lights BOOST LED)
50:11:65
00:16:28:00:00:00


ERROR:
inresponse to
50:11:xx
No flow : 00:16:28:01:00:00
Low Salt: 00:16:28:02:00:00
High Salt: 00:16:28:04:00:00
Gen Fault: 00:16:28:08:00:00


NO signal will turn off ZODIAC TRi in 20 seconds
Start with again with probe:
50:00
00:01:00:00






------------
++++++++++++++++++
When Zodiac TRi set to Pentair:


50:14:01
00:03:01:5A:4F:44:49:41:43:20:44:55:4F:00:00:00:00:00:00
="ZODIAC DUO"


the rest of the protocol is unknown and different
 
Re: Control your Jandy equipment from your PC with a $15 ada

I'm wondering the same. I have a stand alone Aquarite salt generator and want to mostly get statuses from it, but occasionally send it a "super-chlorinate" command. All the code I've seen floating around the internet has been about controlling controllers, not the actual devices themselves. I tried plugging into the RS485 bus and squirting a couple of probe commands I found at all the device IDs I could generate, but nothing responded. And, of course, since the device is a RS485 slave, it won't send data unless asked for it.

My ultimate goal is to get an Arduino board talking to it. I already have the board talking to some 1Wire(tm) sensors I installed int the pipes to get water temp, collector temp, and solar panel discharge temps. It'll control one of those actuators to turn the solar on and off as well as toggle a contactor to drive the pump.

Hi,
I also have a similar setup. I currently have a Hayward Oncommand connected with the Aquarite via RS485. I want to replace the Oncommand with a Raspberry PI using the RexControl software to turn it into a PLC (so easy to program and debug). I have programmed everything but the missing part is to remove the Oncommand and connect the Raspberry PI with a USB RS485 adaptor to the Aquarite. I have connected the PI with the USB RS485 and I am able to dump the data. The problem is that I can't figure out how is it communicating with the Aquarite. When I disable the Aquarite the data capture looks like what has been already decoded. When I enable the Aquarite I see new frames that are not starting with 1002 and there seems to be a sequence that I can't figure (if I collect them for a while and sort them). I have tried to disconnect the Oncommand and send the same frames to the Aquarite but I do not get any reply so there's something missing.

Have you been able to figure out how to decode it? I really would like to be able to configure the % from the PI and get the status (salt, etc).

Thanks,
Fred
 
Re: Control your Jandy equipment from your PC with a $15 ada

Hi,
I also have a similar setup. I currently have a Hayward Oncommand connected with the Aquarite via RS485. I want to replace the Oncommand with a Raspberry PI using the RexControl software to turn it into a PLC (so easy to program and debug). I have programmed everything but the missing part is to remove the Oncommand and connect the Raspberry PI with a USB RS485 adaptor to the Aquarite. I have connected the PI with the USB RS485 and I am able to dump the data. The problem is that I can't figure out how is it communicating with the Aquarite. When I disable the Aquarite the data capture looks like what has been already decoded. When I enable the Aquarite I see new frames that are not starting with 1002 and there seems to be a sequence that I can't figure (if I collect them for a while and sort them). I have tried to disconnect the Oncommand and send the same frames to the Aquarite but I do not get any reply so there's something missing.

Have you been able to figure out how to decode it? I really would like to be able to configure the % from the PI and get the status (salt, etc).

Thanks,
Fred

Hi,
I think I found the frames going to the Aquarite. What I do not understand is that they keep changing. It looks like they do not follow at all the 1002 start and 1003 end.

So I disconnect the Oncommand and only keep the USB RS485 attached to the Aquarite but I have not been able to get any response back from it. I also tried to only unpower the Oncommand (to keep it on the RS485 bus as when I attached the scope to it I found that the RS485 voltage from my adapter was higher probably because there was not end of line resistor). I have ordered another RS485 adaptor so I can bridge them to be sure what is the source for each stream that I capture. Will get in on Monday.

I also tried to capture the packets when Chlorinator is disconnected from power source to see the difference and I see that the packets that I suspect to be addressed to the Chlorinator are shorter.

Here is what I have captured when Chlorinator is connected to OnCommand and I poweron the Oncommand until I see the "externally controlled" led on the chlorinator. To make it easier I disconnected the LCD of the OnCommand on the RS485 bus so I get less data.

If you have any idea it would be great! I just don't undestand that I am not getting any reply from it when trying to emulate the communications. I am thiking that maybe I should try to write something to send the stream automatically and see if it's going to work.

10 02 02
09 00 1d 10 03
10 02 01 01
00 14 10 03
0
c1 18
80 00 99 00 18 9e 00 c1 1e 00 00 81 18 80 00 06 80 00
00 1e 60 00 60 00 10 02 01 02 04 00 00 00 00 00
00 00 00 19 10 03 10 02 01 03 20 20 20 20 20 20 44 65 66 61 …
20 20 20 20 20 20 20 20 20 20 20 20 4d 65 6e 75 20 20 20 20 …
10 03 10 02 01 01 00 14 10 03
10 02 01 02 00 00 00 00 00 00 00 00 00 15 10
3
10
02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10
02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10
02 01 01 00 14 10 03
10 02 04 07 00 1d 10 03
10 02 01 02 00 00 00 00 00 00 00 00 00 15 10 03 10 02 01 03 …
20 44 65 66 61 75 6c 74 20 20 20 20 20 20 20 20 20 20 20 20 …
20 20 20 20 20 20 20 00 08 10 00 10 03
10 02 01 01 00 14 10 03
0
e0 18
80 00 e6 06 e0 fe 80 18 e0 00 81 1e 80 00 60 0c c0 00
18 60 00 06 00 60 9e 00 c1 1e 80 10 02 01 02 28 00 00
00 00 00 00 00 00 3d 10 03
10 02 01 01 00 14 10 03
10 02
01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02
01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
0
e0 18
80 00 d9 06 03 fe 80 18 e0 00 c1 1e 00 00 60 0e c0 00
18 03 00 06 00 60 9e 00 60 0f c0
10 02 01 01 00 14 10 03
10 02
01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02
01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02
01 01 00 14 10 03
10 02 01 02 28 00 00
00 00 00 00 00 00 3d 10 03 10 02 01 03 20 20 20 20 20 20 44 …
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 65 6e 75 20 …
08 10 00 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02
01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03



And this is the capture with the Chlorinator disconnected (power on the Oncommand while Chlorinator disconnected).

So I was under the impression that the data to chlorinator was

Capture
10 02 02 09 00 1d 10 03
10 02 01 01 00 14 10 03
00 e0 18
80 00 99 00 18 9e 00 e0 1e 00
10 02 01 02 04 00 00
00 00 00 00 00 00 19 10 03 10 02 01 03 20 20 20 20 20 20 44 …
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 65 6e 75 20 …
08 10 00 10 03 10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10
02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10
3
10 02 01 01 00 14 10 03
10 02 04 07 00 1d 10 03
10 02 01 02 04 00 00 00 00 00 00 00 00 19 10 03 10 02 01 03 …
20 44 65 66 61 75 6c 74 20 20 20 20 20 20 20 20 20 20 20 20 …
20 20 20 20 20 20 20 00 08 10 00 10 03
10 02 01 01 00 14 10 03
10 02 01 02 2c 00 00 00 00 00 00 00 00 41 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10
02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10
02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
0
81 18 80 00
e6 00 18 9c 00 c1 1e 80
10 02 01 01 00 14 10 03
10 02 01 01
00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01
00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01
00 14 10 03
10 02 01 02 2c 00 00 00 00
00 00 00 00 41 10 03 10 02 01 03 20 20 20 20 20 20 44 65 66 …
20 20 20 20 20 20 20 20 20 20 20 20 20 4d 65 6e 75 20 20 20 …
00 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01
00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01
00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
0
e0 18
80 00
cd 00 18 bc 00 81 1e 80
10 02 01 01 00 14 10 03
10 02 01 01
00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00
14 10 03
10 02 01 01 00 14 10 03
10 02 01 01 00 14 10 03
 
Hi There,

Needing help. Has anyone been able to find the source code of how to manage the variable speed pump. i have another variable speed pump. i would like to change my motor code so as to communicate with the aqualink.

thanks in advance...
 
What model and f/w Aqualink do you have?

You may want to look into Autelis. It is a little more than $15 but it just works out of the box and if you have a Vera HA controller there's even a plugin for controlling it that way. I use Autelis with Vera to control my pool now and bypass the aqualink for automation. When I added a VS pump last month the old aqualink would have needed to be replaced at some $800 to $1000 to control it. Instead, I control it with Vera and a couple of relays that "only" put me out $200.

BTW, Welcome to TFP!
 
Im talking more in general. When you add a variable speed pump to a new Aqualink the software asks you to pick either a Jandy Pump or Pentair intelliflo. I want to be able select one of those and mimick the same language with my variable motor. So basically my motor needs to have the same program or language code as either the Jandy or Intelliflo. If someone has it or can do it (at a cost) please let me know and we can talk further in detail.
 
Im talking more in general. When you add a variable speed pump to a new Aqualink the software asks you to pick either a Jandy Pump or Pentair intelliflo. I want to be able select one of those and mimick the same language with my variable motor. So basically my motor needs to have the same program or language code as either the Jandy or Intelliflo. If someone has it or can do it (at a cost) please let me know and we can talk further in detail.
Sorry. I didn't realize the pump wasn't on that aqualink controls natively. Can you indicate your pump make and model and what version of aqualink PCB and f/w you are using please? I might not be able to help much but maybe someone else can with that information. I think Autelis does custom ROM but am not sure. If they do they would still need the source code for your pump or would at least need the R485 signals to reverse engineer it.

Sent from my SM-G930P using Tapatalk
 

Enjoying this content?

Support TFP with a donation.

Give Support
Sorry. I didn't realize the pump wasn't on that aqualink controls natively. Can you indicate your pump make and model and what version of aqualink PCB and f/w you are using please? I might not be able to help much but maybe someone else can with that information. I think Autelis does custom ROM but am not sure. If they do they would still need the source code for your pump or would at least need the R485 signals to reverse engineer it.

Sent from my SM-G930P using Tapatalk

i would like know this to apply it to my motor which can communicate in RS485... I'm happy to buy it from someone if they have it....

Or am i better to reverse engineer the actual intellifo or Jandy VS motor??? and put that language on my motor??? can this be done??? if so, who could do it?

If i did this i could just select either one of those on the Aqualink Menu
 
Hi all - first time poster at TFP but long time post-reader. ;)

What a great thread this is /was. I've read all the way through it. It looks like several of you (finally) had luck with raspi/usb->rs485/PDA. Can anyone share what they finally did (and how they did it) once they got connectivity between their raspi and the aqualink PDA? I'm about to jump in feet first. My goal is to both get rid of the sucky PDA remote and also improve some of the automation and create a few "macros" (like "turn on filter at high speed for 1 hour then turn off" for those times when I've forgotten to put chlorine and remember at 11PM.) ;)

Thanks!
jt
 
Update:

Got my Raspberry Pi (old model B gen 1) set up with a USB wifi adapter (https://www.amazon.com/gp/product/B003MTTJOY/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1), a USB-RS485 adapter (https://www.amazon.com/gp/product/B00BR0AY80/ref=oh_aui_detailpage_o01_s01?ie=UTF8&psc=1), and Raspian OS setup. Both the wifi adapter and RS485 adapter drivers were already in the OS which made it super easy. Just had to set up WPA2 for wireless which was easy. I found aquadisplay.py in this thread and was able to run it (Python also is installed in Raspbian, but you have to install python-serial first). I then wired the RS485 adapter +/- connections to the middle two connections in the red module inside my Aqualink PDA power panel.

Running the python script, I'm getting data that matches what I've seen in the thread (data starting with 1002, ending in 1003) but I'm also getting a ton of bad checksums [UPDATE - fixed this - I think my USB power supply just wasn't big enough - went from 5V 1A to 5V 2.1A and the errors stopped]. I haven't found confirmed documentation on how to decipher the data I'm getting back so I'll keep reading and searching. I haven't been able to find any PDA emulator to run either. I've got my handheld PDA as well, was hoping to see my button pushing show something via RS485/python script but it's hard to tell and I may be losing something with the bad checksums.

I'll keep at it. My goal is to see if I can keep everything I've got but enable all functions of the PDA through a web site (mobile formatted). I hate the slow PDA.

Would love to hear from the few of you who have had PDA system success and learn from you.

jt
 
djwocky and johnnytaco

I also have the PDA system (ps8 version 5.0) and my remote died on me. I can't bring myself to pay $350 for another terrible remote. I'd love to hear more about whether you've had success getting this working with similar hardware. I'm happy to collaborate on the software side (python, node, web, whatever) if you could help to point me in the right direction. I'm not really a hardware guy though and a lot of this goes over my head. I have a raspberry pi zero w just itching to work on this and I just ordered the USB-RS485 johnnytaco linked.
 
rralian,

Unfortunately, my work on this stalled. Getting a good wireless signal at the Aqualink box outside is difficult plus I've been out of town. I have to sit the Pi on my heater a certain way to get a signal, but can't leave it like that for long (heat + elements in general). I'm thinking of running Ethernet to it this weekend though so I can put the Pi inside the power center box (there's room in there to shove it, but wireless is just about worthless at that point inside a metal box!). It's crazy hot outside and in the attic this time of year though so I'll have to start early in the day...

I can say though that the Pi with Raspian and the USB-RS485 adapter worked great once I had the right amount of power (2A vs 1A with my Pi model B). The checksum errors went away and I started getting great data. Using my (still working fine) PDA remote, I could see the commands it was sending as I pushed buttons (and about a second later, I assume the commands that aqualink was sending to the various equipment). Since I haven't heard back from djwocky and others, I'll begin the process of reverse engineering the codes/data being sent. I think it's doable ... then once that's done, I'll tackle creating an app or web site to control it (perhaps with your help). I'm a mix of a hardware and software guy so I get it but don't necessarily do the software side every day.

I'll shoot you a PM when I get going again and maybe we can tackle this project together. If you have any questions about the initial config, let me know. I tried to document them as I went but I'm sure I forgot a few steps here and there.

jt

PS - if you decide not to go this route, forget buying a new remote. You can get the iAqualink upgrade (new system board + wireless setup) for around $500 online and you'll never need a remote again. I'm tempted to do it but the Pi project is much more fun (and bonus: much cheaper).
 
Been following this thread for many moons... love the innovation and ideas!

I have managed to load up a Raspberry Pi Zero W running aquaweb.py serving up my Aqualink RS6 (P&S) with a USB to RS-485 dongle and a 5V regulator - it is currently living inside my Aqualink RS6 All button panel and is 100% operational. I have managed to modify the aqualink.py to work on SSL and with a simple port forward on my home router, can access it over the internet.

Now, knowing this is really risky and that I am not a python guru - does anyone know the best way to add at least basic authentication to aquaweb.py to allow me to host my RS6 over the web without me worrying about hackers draining my pool? :) Would love to know if there is no easy way also...

I also managed to add a simple ESP8266 based sensor (using a modified Sonoff Switch) to the Power Board that provides me with the ability to monitor when the pool cleaners forget to take my pool out of "Service Mode" while I travel. It is attached to the "Auto" LED and Mode switch on the power PCB and alerts me through MQTT and Home Assistant when it is in Service Mode so I can send a command to toggle to mode back to Auto (then send an angry email to the pool service company). I can also tell Alexa to toggle the mode... I know this defeats the safety of controlling this from the power board, but I also have a Ring Stick up camera in that area to make sure no one is there before I toggle it.

Using a Sonoff Dual, two 24V valves and a Battery operated ESP8266 board with a SR04 Ultrasonic Sensor, I have also created a Pool Drainer and Pool Filler that will fill or drain the pool based on an average distance measurement from the SR04. This is run through Home Assistance automation rules and is currently being tested... great project, but it really sucks when there are waves on my pool.

Cheers!
 

Enjoying this content?

Support TFP with a donation.

Give Support
Thread Status
Hello , This thread has been inactive for over 60 days. New postings here are unlikely to be seen or responded to by other members. For better visibility, consider Starting A New Thread.