To give a little context for my solution: our goal from day 1 was to integrate our pool with our home automation system. We have keypads on the walls and iPads that we use to control various aspects of the house. Control can be simple (like a button to turn on the waterfalls or waterfalls and lighting as part of an "Entertain" scene)
The short is we had some confusion that resulted in us going with an EasyTouch instead of IntelliTouch, the integrator were wanting to use a Pentair adapter that's only available for the IntelliTouch. We ended up not getting integration done and settled in the short term with the EasyTouch wireless controller.
Fast forward about a year, the wireless controller breaks and I decided to take matters into my own hands. Plus we already had keypads on the walls with buttons etched for Pool Lights, Waterfalls, etc that didn't do anything, and I had some time to get into the weeds at this point. I'm a software engineer, with a pretty good understanding of low level protocols. The home automation integrator just needed a command to send for various actions, so I set out to find a way into the Pentair system to give them what they needed.
First iteration was an raspberry pi with an RS485 adapter that I mounted inside the LV compartment of the EasyTouch and wired into the EasyTouch COM port and connected to my network over WiFi. I ran an open source project called nodejs-poolController (
tagyoureit/nodejs-poolController) on the pi and that gave me the API to invoke to turn various circuits on/off. It also had a nice *local* web interface which seems like it's what
@MyAZPool is trying to achieve. All is good, nice web interface to control the detailed aspects of the system and my home automation system was finally integrated!
And then the Arizona summer heat happened, and sometime in late August, the pi died. If my equipment pad had more shade (which it does now thanks to a Sail I installed) or if I had cable back to the house to run the RS485 connection over, this probably would have worked out perfectly.
At this point I was pretty busy with work again and needed a quick solution, so bought SL2 w/ the wireless connection kit. Super simple install, iOS app works good enough, the desktop app doesn't work on any modern Mac and I've yet to test the PC version.
After a while I was determined to get the home automation stuff working again I decided to see what the protocol between the iOS app and SL2 looked like on the local network. SL2 allows for both local LAN connection and a connection that runs though a Pentair "relay" server (haven't dug into the latter too much but it appears the protocol adapter opens an outbound VPN connection back to some Pentair host)
As it turns out, the iOS app communicates with the protocol adapter using the pentair proprietary binary protocol which I believe is the same protocol that is used on the RS485 bus. It's wrapped in some control characters and has what appears to be authentication (though its hard-coded and always the same) from what I can tell. I did also find another open source project that can communicate with SL2 (
parnic/node-screenlogic) but it was not as "complete" as the RS485 option.
I'm not sure how all this would work with IntelliCenter, i'll do some research this evening and see what I can dig up.
Hopefully this is a good starting point, and i'm happy to get as far into the technical weeds as anyone wants to go. I'll check back later.
Apologies for any typos, trying to get this post out the door and my dogs are quite eager to go for a swim!
Cheers!