Jandy iAqualink Pool Integration

Yes, I’ve started to see many log errors as well lately.

Chronologically:

Unhandled exception: Cannot connect to host iaqualink-api.realtime.io:443 ssl:default [[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1108)]

Log Details (ERROR)
Logger: iaqualink
Source: /usr/local/lib/python3.8/site-packages/iaqualink/system.py:85
First occurred: August 29, 2020, 11:09:42 AM (291 occurrences)
Last logged: 1:55:54 PM

Unhandled exception: Cannot connect to host iaqualink-api.realtime.io:443 ssl:default [[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1108)]
Unhandled exception: 0, message='Attempt to decode JSON with unexpected mimetype: text/html', url=URL('https://iaqualink-api.realtime.io/v1/mobile/session.json?actionID=command&command=get_home&serial=_MASKEDSERIAL_&sessionID=_MASKEDSESSIONID_')
Unhandled exception: Cannot connect to host iaqualink-api.realtime.io:443 ssl:default [Try again]

transp, proto = await self._wrap_create_connection(

Log Details (ERROR)
Logger: iaqualink
Source: /usr/local/lib/python3.8/site-packages/iaqualink/system.py:87
First occurred: August 29, 2020, 11:09:42 AM (11543 occurrences)
Last logged: 1:55:54 PM

transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 941, in _wrap_create_connection
raise ClientConnectorSSLError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host iaqualink-api.realtime.io:443 ssl:default [[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1108)]

Failed to refresh iAqualink state

Log Details (WARNING)
Logger: homeassistant.components.iaqualink
Source: components/iaqualink/__init__.py:147
Integration: Jandy iAqualink (documentation, issues)
First occurred: August 29, 2020, 11:09:42 AM (260 occurrences)
Last logged: 1:55:54 PM

Failed to refresh iAqualink state

Reconnected to iAqualink

Log Details (WARNING)
Logger: homeassistant.components.iaqualink
Source: components/iaqualink/__init__.py:149
Integration: Jandy iAqualink (documentation, issues)
First occurred: August 29, 2020, 11:10:13 AM (257 occurrences)
Last logged: 1:56:25 PM

Reconnected to iAqualink

Hi, attached is a screen shot of the information is HA and one that shows the iaqualink app.

the app shows ACL value HA not
the app shows swc set point of 10% because the cover is closed, HA doesn’t have this sensor

Can these sensors be added to HA?

I’m coming from HomeSeer and the aqualink plugin scrapes data from the status page allowing you to get salt levels and pump wattage. Is this something that can be implemented on HA? Right now I use MQTT to push this info from HS to HA and would like to get away from HS all together.


Hey Guys,

In Australia here - just renovated our pool and looking to purchase a new cleaner for it. I notice that the Zodiac Evolux range has WIFI control through an app on the phone - (i.e. no seperate controller etc) - I have read through this thread but wondering if anyone knows if this cleaner would be supported by this integration. ?

regards

Craig

For anyone else in the same boat and wondering the same here in Australia.

I have dug through the code - and it appears that this integration does indeed support the Pool cleaners (a simple on/off control)

I will be purchasing one today and will provide feedback once it is in and running

Craig

I asked Flauran about this back in the day and the answer was no. He didn’t have the time or the need to do it.

Unfortunately, that cleaner switch is only for the pressure-side “cleaner” relay built into a control panel such as the Jandy RS8.

I have the Alpha iQ+ robot (which seems to be almost the same as the model you mentioned). This integration does not support it at all. I would love to add support, but from my preliminary packet captures, the app seems to make a secure tunnel through Amazon IOT services to the actual robotic cleaner, which will be much harder to reverse-engineer than the simple HTTPS request/responses for the other functionality. If you can find any open source software that can control the robots, I should be able to port the functionality to Home Assistant. The iAquaLink also supports a web-browser based view, (which could be spun up and scraped by a Home Assistant integration), but I haven’t found such a thing for the robots yet.

It’s a bummer that the HomeSeer thing you linked seems to be closed-source. I did find another project that can access this data by spinning up an invisible web-browser and scraping the text from there, so that should be possible to do within this integration too. It’s on my list of cool-things-to-do when I get some time.

1 Like

That would be great! I’m not sure how he does it, but in order to get it to work, I did share my aqualink username and password with him for testing so it seems there is some sort of login going on to collect the info.

OK i will give this a go and see what i can get.

I will start off with the Rest API and see where that goes.

Craig

1 Like

Scraping is forbidden in “official” integrations but that can be done as part of a custom_component. If you look at the original code, this is actually what I did. It was pretty horrible to work on and maintain.

I’ve reached out to Zodiac to see if I could talk to someone who could help bring missing features to the integration.

Apologies for the delay. I’ll have a proper look at your PR in the next few days. I’ve had to set up my development environment again.

Priority is to bring the code to python 3.8 and fix some logging issues.

@flauran Great to hear back from you, and thanks for accepting the PR!

I wasn’t really worried about running afoul of https://github.com/home-assistant/architecture/blob/6da4482d171f2ef04de9320d313526653b5818b4/adr/0004-webscraping.md since I had been using my own custom version of the integration, but yeah, it would be so much better if Zodiac can provide a cleaner way to get the missing features and we can have them in the official integration.

I see you also improved the handling of non-200 HTTP statuses. I had done almost the same thing, throwing and catching a new exception type, so that’s cool. I’m also logging await r.text() for non-200 responses, but I’m not sure it’s actually ever told me anything that wasn’t already in r.reason :smile:

Can anyone assist with posting the light template that includes a color selector (reference attached of what I’m hoping to have in HomeKit) @_Mike mentioned something similar in the past.

Please help!!

I’m having a similar issue with selecting the pool light color from HA. This is a stupid question but why is there not an input_select entity automatically created for this integration?

How do people create an input_select that can then drive the color of the Pool light (script, automation)? I know this is simple for more experience HA users but I’m not quite there yet. Do you have to manually create the input_select?

HI, did you ever figure this out? I running a local HA instance and getting the same

 ` ClientConnectorCertificateError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host support.iaqualink.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate`

Thanks Chris

Hi,
I have not had any luck. Still have same issue today.

I’ve never played with the input_select stuff, but I’ll explain how I use the color lights in case it helps anyone. I have a Pentair IntelliBrite clone in my spa.
I made a few Home Assistant scripts for the color settings that I use. I use the HomeKit (Home Assistant Bridge) integration to have the scripts imported into HomeKit. The end result is I can yell to my phone things like, “Hey Siri, Spa Party Light”.

In scripts.yaml:

spa_party_light:
  alias: Spa Party Light
  sequence:
  - data:
      effect: Party
    entity_id: light.spa_light
    service: light.turn_on

I’m using my own modified version of the integration that supports the other brands of lights, so for now you’d need to change effect from Party to one of the currently supported ones, like SLOW_COLOR_SPLASH.

1 Like

I gave up and just went with a Docker. It has to do something with my base os on Python 2+ and HA at Python 3+ Anyway, Docker worked out of the box https://www.home-assistant.io/docs/installation/docker/

Chris