Git Product home page Git Product logo

iaqualink's Introduction

iaqualink

CC0

Home Assistant Iaqualink Vacuums Robots

How to

Requirements

  • account for iaqualink

Installations via HACS hacs_badge

  • In HACS, look for "iaqualink" and install and restart
  • If integration was not found, please add custom repository galletn/iaqualink as integration

Setup

add the following entry to the config file:

sensor:
  - platform: iaqualinkRobots
    username: <username>
    password: <password>
    api_key: EOOEMOW4YR6QNB07
    name: <Robot name, will also be the sensor name>

Supported Models:

  • EX 4000 iQ
  • RA 6570 iQ
  • RA 6900 iQ
  • Polaris - VRX iQ+

Known Models to have issues:

  • OV 5490 IQ

iaqualink's People

Contributors

galletn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

johntdyer

iaqualink's Issues

Information ra 6500 iq

Hello,
I have a ra 6500 iq is after configuring the integration I only see that the robot is online but I don't see any other data

How do I display the other data like when is it until the end of cleaning or filter status?

Thanks

i have only this sensor
image

Zodiac RE 4600 iQ not working

just wanted to say thank you for the great work!

Unfortunately, it doesn't really work with my RE 4600 iQ. If you have the muse to invest here, I would gladly make myself available as a test object and help out (but I'm a coding noob)...

pool season has already opened ;-)

grafik

Unable to Complete Setup (Polaris VRX iQ+)

I just purchased a Polaris VRX iQ+ (a supported model) and have it connected to my iAquaLink account*, but I cannot get it to complete the initial setup.

Here are the steps I've taken:

  • In HACS, I added your custom repository main branch. I noticed there's also a patch1 branch, but did not use that one.
  • Restarted HA
  • Added the provided Setup config to my configuration.yaml. I assume none of the values get quotes ("), but please confirm
  • Restarted HA
  • Checked for any devices and/or entities matching the name I provided in the config. Nothing.

Any ideas for where to continue troubleshooting?

*I've confirmed the robot has a green light and I can control it via the iOS iAquaLink app (when on my LAN and off via cellular data), but for some reason, the iAquaLink Owner's Center Portal indicates that its offline.

image

Zodiac CNX 4090 iQ Not Working

Zodiac CNX 4090 iQ Not Working:
username: xxxxxxx
first_name: xxxxxxx
last_name: xxxxxxx
serial_number: xxxxxxxxx
robot_name: Limpia Fondos
last_online: "2024-05-29T12:46:24.495000"
temperature: "0"
pressure: N/A
total_hours: 0
error_state: N/A
lift_control: N/A
equipment_id: N/A
cycle_start_time: "2000-01-01T09:00:00.000000"
canister: N/A
running: N/A
model: CNX 4090 iQ

Authorization header requires 'Credential' parameter

when I make a POST to https://prod.zodiac-io.com/devices/v2/xxxxxx/shadow it returns the following error:

Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header.

With mitm proxy I see that it does a GET against https://r-api.iaqualink.net/v2/devices.json?user_id=xxx&signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&timestamp=1683216063

any idea? maybe it does a calculation of the signature and timestamp?

Zodiac XA 5095 iQ error in Homeassistant

Hello.
Im noob with this integration but i will try :-)

my iaqualink robot is Zodiac XA 5095 iQ
I installed it from hacs, setup as readme said. but i obtain a error in home assistant:

`Error while setting up iaqualinkRobots platform for sensor
Traceback (most recent call last):
File "/config/custom_components/iaqualinkRobots/sensor.py", line 154, in _update
self._temperature = data["state"]["reported"]["equipment"]["robot"]["sensors"]["sns_1"]["val"]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
TypeError: list indices must be integers or slices, not str

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/config/custom_components/iaqualinkRobots/sensor.py", line 157, in _update
self._temperature = data["state"]["reported"]["equipment"]["robot"]["sensors"]["sns_1"]["state"]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
TypeError: list indices must be integers or slices, not str

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 362, in _async_setup_platform
await asyncio.shield(task)
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/iaqualinkRobots/sensor.py", line 36, in setup_platform
add_devices([iaqualinkRobotSensor(config)])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/iaqualinkRobots/sensor.py", line 52, in init
self._update()
File "/config/custom_components/iaqualinkRobots/sensor.py", line 159, in _update
error = error + ' temparture mapping error'
^^^^^
UnboundLocalError: cannot access local variable 'error' where it is not associated with a value`

any idea or something i can test?

Added attributes to capture operational and canister state

Enhancement suggestion

I also added a few more attributes such as running state and canister empty/ok

I modified sensor.py in the section where the response from the API call is being mapped into attributes (I think) here
self._headers = {"Content-Type": "application/json; charset=utf-8", "Connection": "keep-alive", "Accept": "*/*", ``"Authorization" : self._id_token}
response = requests.get(url, headers = self._headers)
if response.status_code == 200:

and added the following lines;
self._canister = data["state"]["reported"]["equipment"]["robot"]["canister"]
self._attributes['canister'] = self._canister
self._running = data["state"]["reported"]["equipment"]["robot"]["state"]
self._attributes['running'] = self._running

Then I created template sensors in the config.yaml to map 0/1 to empty/full or running/Idle

Then in the card, I created badges and animations to show when running/idle or when the canister needs emptying.

poolrobot.1.HB_proc.mp4

HAC Support ??

It doesn't appear this integration is actually supported by HACs.. Its missing manifiest and hacs data so you cant even import it best I can tell.. I assume this is something ion the road map to address?

Since installing via HACS - ModelNumber no longer reported

I noticed recently that the model number was no longer being reported. When I traced it back , I noticed that it was no longer being reported once I reinstalled via HACS. Upon investigation, I realised that sensor.py is missing the following lines;

Line 11

URL_GET_DEVICE_FEATURES="https://prod.zodiac-io.com/devices/v2/"

and lines 134 -141

                    url = URL_GET_DEVICE_FEATURES + self._serial_number + "/features"
                    data = None
                    self._headers = {"Content-Type": "application/json; charset=utf-8", "Connection": "keep-alive", "Accept": "*/*", "Authorization" : self._id_token}
                    response = requests.get(url, headers = self._headers)
                    if response.status_code == 200:
                        data = response.json()
                        self._model = data["model"]
                        self._attributes['model'] = self._model

I manually added those lines into sensor.py and restarted HASS and the model number is now being reported. Would it cause an issue if we re-added that back in?

conflicts with official aqualink integration

this integration seems to conflict w/ the official Jandy / Hass one... Perhaps rename it to iaqualinkRobot ?

➜  ~ grep aqualink config/home-assistant.log
2023-05-31 12:27:23.781 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration iaqualink which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-05-31 12:29:29.452 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 2: {'cast', 'telegram_bot', 'script', 'ring', 'ui_lovelace_minimalist', 'nodered', 'repairs', 'hacs', 'energy', 'apple_tv', 'sonoff', 'zha', 'utility_meter', 'season', 'panel_custom', 'webrtc', 'rtsp_to_webrtc', 'system_health', 'discord', 'otbr', 'notify', 'onboarding', 'browser_mod', 'light', 'rflink', 'timer', 'sonos', 'map', 'history', 'shelly', 'input_datetime', 'influxdb', 'uptime', 'moon', 'mail_and_packages', 'persistent_notification', 'proxmoxve', 'image_processing', 'frigate', 'tuya', 'emulated_hue', 'tag', 'iperf3', 'glances', 'image_upload', 'media_source', 'ios', 'filesize', 'co2signal', 'tautulli', 'device_tracker', 'application_credentials', 'google', 'roku', 'huesyncbox', 'bluetooth_adapters', 'diagnostics', 'lovelace', 'switch', 'auto_backup', 'trace', 'group', 'default_config', 'lametric', 'alexa_media', 'opengarage', 'nextdns', 'template', 'withings', 'sonarr', 'file_upload', 'fully_kiosk', 'weatherflow', 'homeassistant_alerts', 'python_script', 'yeelight', 'lovelace_gen', 'zone', 'sun', 'sonos_cloud', 'wake_on_lan', 'xiaomi_miio', 'elgato', 'stream', 'device_automation', 'config', 'mobile_app', 'bond', 'integration', 'esphome', 'conversation', 'samsungtv_smart', 'delete', 'waste_management', 'switch_as_x', 'person', 'homekit_controller', 'homeassistant_sky_connect', 'ltss', 'zwave_js', 'fontawesome', 'cpuspeed', 'input_text', 'harmony', 'simpleicons', 'assist_pipeline', 'uptime_kuma', 'tasmota', 'navien_water_heater', 'hardware', 'spotify', 'local_ip', 'qss', 'icloud', 'homeassistant_hardware', 'thread', 'nut', 'input_boolean', 'peloton', 'sensor', 'airthings_ble', 'search', 'binary_sensor', 'counter', 'shell_command', 'tts', 'prometheus', 'logbook', 'emporia_vue', 'rest_command', 'webostv', 'alert', 'airvisual_pro', 'my', 'scene', 'hpprinter', 'tplink', 'blueprint', 'workday', 'healthchecksio', 'input_number', 'hue', 'automation', 'downloader', 'smartthings', 'plex', 'stt', 'rainmachine', 'auth', 'input_button', 'remote', 'pushover', 'schedule', 'octoprint', 'ffmpeg', 'spotcast', 'ecobee', 'govee', 'camera', 'mqtt', 'wirelesstag', 'cupertino', 'input_select', 'dnsip', 'analytics', 'watchman', 'iaqualink', 'airvisual'}
2023-05-31 12:29:30.068 INFO (MainThread) [homeassistant.setup] Setting up iaqualink
2023-05-31 12:29:30.068 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration iaqualink: No setup or config entry setup function defined.

242376089-2c3b4d1f-f5c4-4b52-9424-a124d15c0435

Zodiac CNX 30 iQ request

Hi,

Would there be any chance to extend the supported models list with additional robots?

As others mentioned, plugin works fine, connects, but that's about it.

Serial number: xxxxxxxxxxx
Robot name: Pool robot
Last online: 4 June 2024 at 11:12:03
Temperature: 0
Pressure: N/A
Total hours: 0
Error state: N/A
Lift control: N/A
Equipment ID: N/A
Cycle start time: 1 January 2000 at 09:00:00
Canister: N/A
Running: N/A
Model: CNX 30 iQ

Temperature not updating

This has been working for a while, but stopped seemingly when I updated to 480e9cd.

Something weird happened where it created a new robot entity, not sure if it is related. I have since uninstalled via HACS, deleted all robot entities, reinstalled and now have just the 1 entity. But the temperature value is not updating. Normally this would only update when the robot is running which is fine, but it's now no longer updating regardless of whether the robot is running or not.

Interestingly, in the iAqualink app there is a new notification saying that the robot temperature only updates when the robot is running which I don't recall seeing before, but either way I can't find anywhere which actually shows the temperature value in the app. Why is this relevant - suggests perhaps iAqualink may have made some recent changes to the temperature functionality.

These are the relevant errors in the logs:

Logger: homeassistant
Source: components/sensor/__init__.py:670
First occurred: 20:59:12 (1 occurrences)
Last logged: 20:59:12

Error doing job: Exception in callback <_OneTimeListener homeassistant.helpers.start:<function _async_at_core_state.<locals>._matched_event at 0x7f02b744a160>>(<Event homeassistant_start[L]>)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 663, in state
    numerical_value = int(value)
                      ^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 666, in state
    numerical_value = float(value)
                      ^^^^^^^^^^^^
ValueError: could not convert string to float: ''

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/src/homeassistant/homeassistant/core.py", line 1196, in __call__
    self.hass.async_run_job(self.listener, event)
  File "/usr/src/homeassistant/homeassistant/core.py", line 775, in async_run_job
    return self.async_run_hass_job(HassJob(target), *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 727, in async_run_hass_job
    hassjob.target(*args)
  File "/usr/src/homeassistant/homeassistant/helpers/start.py", line 40, in _matched_event
    hass.async_run_hass_job(at_start_job, hass)
  File "/usr/src/homeassistant/homeassistant/core.py", line 727, in async_run_hass_job
    hassjob.target(*args)
  File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 486, in _async_template_startup
    result_info.async_refresh()
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1076, in async_refresh
    self._refresh(None)
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1262, in _refresh
    self.hass.async_run_hass_job(self._job, event, updates)
  File "/usr/src/homeassistant/homeassistant/core.py", line 727, in async_run_hass_job
    hassjob.target(*args)
  File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 434, in _handle_results
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 992, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1113, in _async_write_ha_state
    state, attr, capabilities, shadowed_attr = self.__async_calculate_state()
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1050, in __async_calculate_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 998, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 670, in state
    raise ValueError(
ValueError: Sensor sensor.pool_temperature_robot_cleaner has device class 'temperature', state class 'measurement' unit '°C' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: '' (<class 'str'>)
Logger: homeassistant.helpers.template
Source: helpers/template.py:2377
First occurred: 20:59:12 (2 occurrences)
Last logged: 20:59:12

Template variable warning: 'homeassistant.util.read_only_dict.ReadOnlyDict object' has no attribute 'temperature' when rendering '{{ states.sensor.iaqualinkrobots_viron_qt1050_pool_cleaner_robot.attributes.temperature }}'

It's not possible to configure iaqualink sensor by adding platform: iaqualink

When adding the configuration like suggested I get this error message:

Unused YAML configuration for the iaqualink integration

It's not possible to configure iaqualink sensor by adding platform: iaqualink to the sensor configuration. Please check the documentation for more information on how to set up this integration.

To resolve this:

Remove platform: iaqualink occurences from the sensor: configuration in your YAML configuration file.
Restart Home Assistant.
Example that should be removed:

sensor:

  • platform: iaqualink

HACS install sensor.py mapping incorrect attributes

Reposting from #flz/iaqualink-py#23

HACS install works but there is an issue with mapping which prevents the sensor from loading in HASS

I managed to get it working by tweaking sensor.py

Here is what I changed:

line 110 is trying to map

self._temperature = data["state"]["reported"]["equipment"]["robot"]["sensors"]["sns_1"]["val"]
but it should be (in my case)
self._temperature = data["state"]["reported"]["equipment"]["robot"]["sensors"]["sns_1"]["state"]
as "val" doesn't exist

so now I get this

not sure if this is just specific to my device.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.