New Binding for iAquaLink internet connected pools (Jandy/Zodiac)

I have a new binding to control iAqualink connected pools system manufactured by Jandy/Zodiac. This binding uses the same API that the iAqualink mobile clients utilize. Feedback is most welcome.

2.5 addon Jar can be found at:

Readme

Screenshot of my pool control in Habpanel

3 Likes

I’m getting the following errors when starting openhab after installing:

2019-08-13 20:13:16.624 [ERROR] [org.openhab.binding.iaqualink       ] - FrameworkEvent ERROR - org.openhab.binding.iaqualink
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.iaqualink [221]
Unresolved requirement: Import-Package: com.google.gson; version="[2.8.0,3.0.0)"
at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) ~[?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) ~[?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) ~[?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) ~[?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]

2019-08-13 20:13:18.229 [WARN ] [org.apache.felix.fileinstall        ] - Error while starting bundle: file:/usr/share/openhab2/addons/org.openhab.binding.iaqualink-2.5.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.iaqualink [221]
  Unresolved requirement: Import-Package: com.google.gson; version="[2.8.0,3.0.0)"
	at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1221) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:515) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]

I install the dependency manually on the karaf console:

bundle:install http://central.maven.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar 

This seemed to fix the loading issue.

Good to hear, let me know how it works for you!

I just updated the jar file in the top post with the latest version. If you have installed a previous one, you may need to delete the pool thing and create it again to recognize color lighting types.

Being a relatively new user to openhab, how do I install this binding as it doesn’t show natively in openhab2?

This is now available in the 2.5 releases if you install the latest milestone release or nightly builds

1 Like

How would you turn on the light (aux 1) to red in a rule?

Hi Eric, if you have a jandy light system, the aux code for red is “9”, if its a Pentair light, its “10” . See https://www.openhab.org/addons/bindings/iaqualink/#color-mood-auxiliary-channels for a list of channels values.

Assuming your item is called PoolAuxLight, you can turn it red like so:

rule "Turn Pool Light Red"
when
    Time cron "0 0 17 * * ?"   // Every day 5:00 pm 
then
   PoolAuxLight.sendCommand("9")
end
1 Like

I would like to thank you for this binding. It has proven to be stable addition to our home automation system.

Is there any chance to add control of the variable speed pool pumps to the binding?

Hi Dmld, glad its working for you. Can you control your pump speed with the mobile app (and not through the awful awful legacy web version) ? If you can , would you post a screen shot of that?

Unfortunately setting the pump speed requires opening the web version. I’m assuming that you only have access to the data revealed by the web application.

I can create a limited set of presets by using the OneTouch macros; but if I want to change pump speed independently of any other (valve/temperature/etc.) I need to go to the web interface.

Either way, you have enabled me to manage 99% of my daily pool related tasks through openHAB and that is greatly appreciated.

Unfortunately setting the pump speed requires opening the web version

I was afraid that is the case, the API is quite limited, but if they do ever add this feature to the API, i would be happy to add it to the binding.

Either way, you have enabled me to manage 99% of my daily pool related tasks through openHAB and that is greatly appreciated.

Thats excellent, glad its useful for you!

I just want to thank you ahead of time. Your binding gave me the hope to pull the trigger on putting in a (smart) pool. It’s nearing completion now and I’m more or less putting this here as a placeholder for myself to know where to come back to once they power up the equipment next weekend.

You are welcome!

Works like a champ. Was even able to pipe it into homekit for the bits that are usable there. Still working through selecting light choices and such but I knew ahead of time that was going to be more complicated. Really hoping they open the API a bit more to be able to get more pieces in that currently require the PDA or web version. Thank you so much for your work on this digitaldan.

Is anyone else facing an issue with the iAquaLink Pool Controller Thing being offline? Through the management site, and in the logs my controller thing is showing as OFFLINE - COMMUNICATION_ERROR - Forbidden.

I noticed this issue started ~2 days ago. I am still able to connect to the controller via the web or the app; so the controller is still online.

I have tried: pausing/restarting the thing, restarting the Openhab service, adding a new thing with the same credentials.

Hmm, i have not seen this, although i have noticed there will be periods where their service will be down for a little while ( i have a rule that pings me when it goes offline), but this affects their app as well. I’m not sure if it will help, but you could try turning on TRACE logging and see if there is any useful output .

Well, i just stopped and started the binding to test, and now i’m getting the same error, i’ll take a look at, especially since its pool season!

So they changed the login endpoints a bit, i have a PR open to fix this. In the meantime i have an updated version of the jar at Release iAquaLink Auth Fix · digitaldan/openhab-addons · GitHub , this is compiled against the 3.1.x branch, so it will likely work with nightlies and milestone releases.