I have been looking for a way for years to integrate my Jandy RS with Vera at a lower cost than the very good but expensive Autelis. Also, the Autelis systems have been out of stock for a long time and so I started searching for alternatives.
I came across the AqualinkD project on Github and with a leftover Raspberry Pi and $7 USB RS485 I have successfully integrated my Jandy system with Vera. Although not all controls are available YET, the developer is actively working on bring new control features. It meets 90% of the daily monitoring and control without having to jump in to iAqualink or the physical panel.
With this this, I can
Control and monitor Pumps
Activate features Features such as spillover or waterfalls.
Monitor and control temperature, and lighting
Monitor SWG system (salt levels, cell heath/diagnostics)
Limitations as of current release
No VSP control . The developer actively working on this.
No one-touch macros. (however, you can effectively recreate this with Pleg/Reactor)
Recommend that you have some experience with Linux/Raspian. This is not a step by step guide and within each of the projects, follow the install/configuration information.
Reactor or PLEG
Switchboard Virtual Switch plugin
High Level Instructions
Use Raspian instructions and AqualinkD Wiki, and Mosquitto MQTT instructions to install and configure Pi and attach to RS485 bus. Make sure you have both serial connectivity and MQTT pub/subscription tests pass. Make sure you configure the aqualinkd.conf file to match your system and test out the built in web interface.
On Vera, install MQTT, SiteSensor, Switchboard, and Reactor (or PLEG) plugins. MQTT needs some additional files from the Github. Some of the SWG telemetry is only available from MQTT and not yet from JSON queries, so both are currently needed if you want to capture as much telemetry as possible and have it presented in Imperihome or the Vera app via native sensors.
Use the API guide on the AqualinkD wiki, use Sitesensor (I use 5second intervals) to monitor switch state and temperature using the following URL:
Some example JSON expressions you can match on:
response.leds.Aux_2 (or more)
If you just want basic SWG info (salt level, generation status you may only need site sensor) . I just insert the values in to a virtual light sensor as it seems to work fine. If you are using Imperihome, the ISS functionality in SiteSensor give you more options to display Generic sensor values.
Configure MQTT to monitor full SWG status. (JSON API gives you basic status) . You can also use MQTT to monitor temps as well if you want. Just create new device for temp and make the MQTT plugin the parent.
Switchboard virtual switches to trigger Reactor/Pleg actions to turn on and off functions. Then use the status of the switch (via sitesensor probe and Reactor/Pleg) to toggle switch if the setting is changed somewhere else and you want the switch to represent the correct current state.
I also personally use a Variable container to give me status of SWG Voltage, Current, Salt Level, Percentage Settings, and fault status. I translate the numerical values from the SWG MQTT updates in to text strings to display on the Imperihome dashboard.