home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
74k stars 31.05k forks source link

Jandy IAqualink intergration issue #108204

Closed Jpgentz1 closed 9 months ago

Jpgentz1 commented 10 months ago

The problem

Failed to setup, no devices or entities Thanks ahead of time, for your assistance

What version of Home Assistant Core has the issue?

core-2024.1.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Iaqualink jandy

Link to integration documentation on our website

https://www.home-assistant.io/integrations/iaqualink

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Logger: homeassistant.config_entries
Source: config_entries.py:406
First occurred: 7:35:17 PM (2 occurrences)
Last logged: 7:44:45 PM

Error setting up entry vda4service@gmail.com for iaqualink
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 104, in async_setup_entry
    devices = await system.get_devices()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/system.py", line 62, in get_devices
    await self.update()
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 99, in update
    self._parse_devices_response(r2)
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 160, in _parse_devices_response
    self.devices[k] = IaquaDevice.from_data(self, v)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/device.py", line 94, in from_data
    class_ = light_subtype_to_class[data["subtype"]]
             ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: '3'

Additional information

No response

home-assistant[bot] commented 10 months ago

Hey there @flz, mind taking a look at this issue as it has been labeled with an integration (iaqualink) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `iaqualink` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign iaqualink` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


iaqualink documentation iaqualink source (message by IssueLinks)

KozmokAllDay commented 10 months ago

Same Issue - here is my debug log. I think its failing on light subclass type 3

2024-01-29 20:27:34.799 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry myEmail for iaqualink Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup result = await component.async_setup_entry(hass, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/iaqualink/init.py", line 104, in async_setup_entry devices = await system.get_devices() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iaqualink/system.py", line 62, in get_devices await self.update() File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 99, in update self._parse_devices_response(r2) File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 160, in _parse_devices_response self.devices[k] = IaquaDevice.from_data(self, v) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/device.py", line 94, in fromdata class = light_subtype_to_class[data["subtype"]]


KeyError: '3'
2024-01-29 20:30:32.116 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry myEmail for iaqualink
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 104, in async_setup_entry
    devices = await system.get_devices()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/system.py", line 62, in get_devices
    await self.update()
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 99, in update
    self._parse_devices_response(r2)
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 160, in _parse_devices_response
    self.devices[k] = IaquaDevice.from_data(self, v)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/device.py", line 94, in from_data
    class_ = light_subtype_to_class[data["subtype"]]
             ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: '3'
2024-01-29 20:32:34.756 DEBUG (MainThread) [iaqualink] -> POST https://prod.zodiac-io.com/users/v1/login {'json': {'api_key': 'myAPIKey', 'email': 'myEmail', 'password': 'myPassword'}}
2024-01-29 20:32:36.630 DEBUG (MainThread) [iaqualink] <- 200 OK - https://prod.zodiac-io.com/users/v1/login
2024-01-29 20:32:36.630 DEBUG (MainThread) [iaqualink] -> GET https://r-api.iaqualink.net/devices.json?api_key=myAPIKey&authentication_token=_4pwqWfE6pT090JLI4Mf&user_id=1471 {}
2024-01-29 20:32:36.910 DEBUG (MainThread) [iaqualink] <- 200 OK - https://r-api.iaqualink.net/devices.json?api_key=myAPIKey&authentication_token=_4pwqWfE6pT090JLI4Mf&user_id=1471
2024-01-29 20:32:36.911 DEBUG (MainThread) [iaqualink] -> GET https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_home&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06 {}
2024-01-29 20:32:38.093 DEBUG (MainThread) [iaqualink] <- 200 OK - https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_home&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06
2024-01-29 20:32:38.093 DEBUG (MainThread) [iaqualink] -> GET https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_devices&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06 {}
2024-01-29 20:32:38.989 DEBUG (MainThread) [iaqualink] <- 200 OK - https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_devices&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06
2024-01-29 20:32:38.989 DEBUG (MainThread) [iaqualink] Home response: {'message': '', 'serial': 'QRV2CSHYZVH6', 'home_screen': [{'status': 'Online'}, {'response': "AQU='70','09 00 01 02 03 05 06 07 0E 0F 00 00 00 00 00 3C 00 68 00 40 00 00'"}, {'system_type': '0'}, {'temp_scale': 'F'}, {'spa_temp': ''}, {'pool_temp': ''}, {'air_temp': '64'}, {'spa_set_point': '104'}, {'pool_set_point': '60'}, {'cover_pool': ''}, {'freeze_protection': ''}, {'spa_pump': '0'}, {'pool_pump': '0'}, {'spa_heater': '0'}, {'pool_heater': '0'}, {'solar_heater': ''}, {'spa_salinity': ''}, {'pool_salinity': ''}, {'orp': ''}, {'ph': ''}, {'is_icl_present': 'absent'}, {'icl_custom_color_info': []}, {'heatpump_info': {}}, {'pool_chill_set_point': ''}, {'swc_info': {'isswcPresent': False}}, {'relay_count': ''}]}
2024-01-29 20:32:38.989 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'icl_custom_color_info', 'state': []}
2024-01-29 20:32:38.990 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'heatpump_info', 'state': {}}
2024-01-29 20:32:38.990 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'pool_chill_set_point', 'state': ''}
2024-01-29 20:32:38.990 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'swc_info', 'state': {'isswcPresent': False}}
2024-01-29 20:32:38.990 DEBUG (MainThread) [iaqualink] Devices response: {'message': '', 'devices_screen': [{'status': 'Online'}, {'response': "AQU='72','8|1|2|3|4|5|6|7|32|0|1|0|0|AIR BLOWER|0|1|0|0|WATERFALL|0|1|0|0|SPILLOVER|0|7|2|4|SPA LIGHT|1|7|2|3|POOL LIGHT|0|1|0|0|WHIRLPOOL|0|1|0|0|AUX7|0|1|0|0|EXTRA AUX'"}, {'group': '1'}, {'aux_1': [{'state': '0'}, {'label': 'AIR BLOWER'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_2': [{'state': '0'}, {'label': 'WATERFALL'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_3': [{'state': '0'}, {'label': 'SPILLOVER'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_4': [{'state': '0'}, {'label': 'SPA LIGHT'}, {'icon': 'aux_7_0.png'}, {'type': '2'}, {'subtype': '4'}]}, {'aux_5': [{'state': '1'}, {'label': 'POOL LIGHT'}, {'icon': 'aux_7_1.png'}, {'type': '2'}, {'subtype': '3'}]}, {'aux_6': [{'state': '0'}, {'label': 'WHIRLPOOL'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_7': [{'state': '0'}, {'label': 'AUX7'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_EA': [{'state': '0'}, {'label': 'EXTRA AUX'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}], 'icl_info_list': []}
2024-01-29 20:32:38.990 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry myEmail for iaqualink
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 104, in async_setup_entry
    devices = await system.get_devices()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/system.py", line 62, in get_devices
    await self.update()
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 99, in update
    self._parse_devices_response(r2)
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 160, in _parse_devices_response
    self.devices[k] = IaquaDevice.from_data(self, v)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/device.py", line 94, in from_data
    class_ = light_subtype_to_class[data["subtype"]]
             ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: '3'
2024-01-29 20:45:05.971 DEBUG (MainThread) [iaqualink] -> POST https://prod.zodiac-io.com/users/v1/login {'json': {'api_key': 'myAPIKey', 'email': 'myEmail', 'password': 'myPassword'}}
2024-01-29 20:45:07.349 DEBUG (MainThread) [iaqualink] <- 200 OK - https://prod.zodiac-io.com/users/v1/login
2024-01-29 20:45:07.376 DEBUG (MainThread) [iaqualink] -> POST https://prod.zodiac-io.com/users/v1/login {'json': {'api_key': 'myAPIKey', 'email': 'myEmail', 'password': 'myPassword'}}
2024-01-29 20:45:08.363 DEBUG (MainThread) [iaqualink] <- 200 OK - https://prod.zodiac-io.com/users/v1/login
2024-01-29 20:45:08.363 DEBUG (MainThread) [iaqualink] -> GET https://r-api.iaqualink.net/devices.json?api_key=myAPIKey&authentication_token=_4pwqWfE6pT090JLI4Mf&user_id=1471 {}
2024-01-29 20:45:09.050 DEBUG (MainThread) [iaqualink] <- 200 OK - https://r-api.iaqualink.net/devices.json?api_key=myAPIKey&authentication_token=_4pwqWfE6pT090JLI4Mf&user_id=1471
2024-01-29 20:45:09.050 DEBUG (MainThread) [iaqualink] -> GET https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_home&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06 {}
2024-01-29 20:45:09.905 DEBUG (MainThread) [iaqualink] <- 200 OK - https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_home&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06
2024-01-29 20:45:09.906 DEBUG (MainThread) [iaqualink] -> GET https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_devices&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06 {}
2024-01-29 20:45:10.812 DEBUG (MainThread) [iaqualink] <- 200 OK - https://p-api.iaqualink.net/v1/mobile/session.json?actionID=command&command=get_devices&serial=QRV2CSHYZVH6&sessionID=GBR119XDVK7OW12YSJ7M91EKA4AFZQ06
2024-01-29 20:45:10.812 DEBUG (MainThread) [iaqualink] Home response: {'message': '', 'serial': 'QRV2CSHYZVH6', 'home_screen': [{'status': 'Online'}, {'response': "AQU='70','09 00 01 02 03 05 06 07 0E 0F 00 00 00 00 00 3C 00 68 00 40 00 00'"}, {'system_type': '0'}, {'temp_scale': 'F'}, {'spa_temp': ''}, {'pool_temp': ''}, {'air_temp': '64'}, {'spa_set_point': '104'}, {'pool_set_point': '60'}, {'cover_pool': ''}, {'freeze_protection': ''}, {'spa_pump': '0'}, {'pool_pump': '0'}, {'spa_heater': '0'}, {'pool_heater': '0'}, {'solar_heater': ''}, {'spa_salinity': ''}, {'pool_salinity': ''}, {'orp': ''}, {'ph': ''}, {'is_icl_present': 'absent'}, {'icl_custom_color_info': []}, {'heatpump_info': {}}, {'pool_chill_set_point': ''}, {'swc_info': {'isswcPresent': False}}, {'relay_count': ''}]}
2024-01-29 20:45:10.812 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'icl_custom_color_info', 'state': []}
2024-01-29 20:45:10.812 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'heatpump_info', 'state': {}}
2024-01-29 20:45:10.812 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'pool_chill_set_point', 'state': ''}
2024-01-29 20:45:10.812 INFO (MainThread) [iaqualink] Device found was ignored: {'name': 'swc_info', 'state': {'isswcPresent': False}}
2024-01-29 20:45:10.812 DEBUG (MainThread) [iaqualink] Devices response: {'message': '', 'devices_screen': [{'status': 'Online'}, {'response': "AQU='72','8|1|2|3|4|5|6|7|32|0|1|0|0|AIR BLOWER|0|1|0|0|WATERFALL|0|1|0|0|SPILLOVER|0|7|2|4|SPA LIGHT|1|7|2|3|POOL LIGHT|0|1|0|0|WHIRLPOOL|0|1|0|0|AUX7|0|1|0|0|EXTRA AUX'"}, {'group': '1'}, {'aux_1': [{'state': '0'}, {'label': 'AIR BLOWER'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_2': [{'state': '0'}, {'label': 'WATERFALL'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_3': [{'state': '0'}, {'label': 'SPILLOVER'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_4': [{'state': '0'}, {'label': 'SPA LIGHT'}, {'icon': 'aux_7_0.png'}, {'type': '2'}, {'subtype': '4'}]}, {'aux_5': [{'state': '1'}, {'label': 'POOL LIGHT'}, {'icon': 'aux_7_1.png'}, {'type': '2'}, {'subtype': '3'}]}, {'aux_6': [{'state': '0'}, {'label': 'WHIRLPOOL'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_7': [{'state': '0'}, {'label': 'AUX7'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}, {'aux_EA': [{'state': '0'}, {'label': 'EXTRA AUX'}, {'icon': 'aux_1_0.png'}, {'type': '0'}, {'subtype': '0'}]}], 'icl_info_list': []}
2024-01-29 20:45:10.812 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry myEmail for iaqualink
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/iaqualink/__init__.py", line 104, in async_setup_entry
    devices = await system.get_devices()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/system.py", line 62, in get_devices
    await self.update()
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 99, in update
    self._parse_devices_response(r2)
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/system.py", line 160, in _parse_devices_response
    self.devices[k] = IaquaDevice.from_data(self, v)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/iaqualink/systems/iaqua/device.py", line 94, in from_data
    class_ = light_subtype_to_class[data["subtype"]]
             ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: '3'
flz commented 10 months ago

Yeah, this type of light isn't implemented in the library. Unclear why there's support for 1-6 but not 3. Can't recall where I got those values from.

KozmokAllDay commented 10 months ago

Yeah, this type of light isn't implemented in the library. Unclear why there's support for 1-6 but not 3. Can't recall where I got those values from.

I switched mine from Pentair lights to Jandy lights 'JL' and it works fine now.

J-Fads commented 9 months ago

Apologies for my ignorance... I have the same problem but I don't understand the fix. Just a user that has my Aqualink integrated into HA - not a real power user...

J-Fads commented 9 months ago

Well, the software healed itself. HA is seeing the aqualink. I don't know what changed, but it decided to work

Jpgentz1 commented 9 months ago

I changed the lights in the jandy web interface and t as mentioned above and the integration now runs