Unable to load / install Rivian 1.0.0 integration on HA 2024.2.0b2 due to dependency conflicts
Closed this issue · 6 comments
Attempts to load an already existing Rivian config, or re-add the Rivian integration results in the following error in the Home Assistant logs:
2024-02-02 10:10:50.216 ERROR (SyncWorker_29) [homeassistant.util.package] Unable to install package rivian-python-client[ble]==1.1.1: ERROR: Cannot install rivian-python-client because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
2024-02-02 10:10:53.531 ERROR (SyncWorker_29) [homeassistant.util.package] Unable to install package rivian-python-client[ble]==1.1.1: ERROR: Cannot install rivian-python-client because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
2024-02-02 10:10:56.065 ERROR (SyncWorker_29) [homeassistant.util.package] Unable to install package rivian-python-client[ble]==1.1.1: ERROR: Cannot install rivian-python-client because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
2024-02-02 10:10:56.066 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 91, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 149, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 72, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 153, in post
return await super().post(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 71, in post
result = await self._flow_mgr.async_init(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 945, in async_init
flow, result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 963, in _async_init
flow = await self.async_create_flow(handler, context=context, data=data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1074, in async_create_flow
handler = await _async_get_flow_handler(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2266, in _async_get_flow_handler
await _load_integration(hass, domain, hass_config)
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2242, in _load_integration
await async_process_deps_reqs(hass, hass_config, integration)
File "/usr/src/homeassistant/homeassistant/setup.py", line 467, in async_process_deps_reqs
await requirements.async_get_integration_with_requirements(
File "/usr/src/homeassistant/homeassistant/requirements.py", line 52, in async_get_integration_with_requirements
return await manager.async_get_integration_with_requirements(domain)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/requirements.py", line 175, in async_get_integration_with_requirements
await self._async_process_integration(integration, done)
File "/usr/src/homeassistant/homeassistant/requirements.py", line 190, in _async_process_integration
await self.async_process_requirements(
File "/usr/src/homeassistant/homeassistant/requirements.py", line 255, in async_process_requirements
await self._async_process_requirements(name, missing)
File "/usr/src/homeassistant/homeassistant/requirements.py", line 293, in _async_process_requirements
raise RequirementsNotFound(name, list(failures))
homeassistant.requirements.RequirementsNotFound: Requirements for rivian not found: ['rivian-python-client[ble]==1.1.1'].
I'm guessing this is due to the 2024.2 release moving to Python 3.12.
Same here; I hadn't gotten around to creating an issue.
It looks like a dependency conflict with the cryptography
package.
rivian-python-client
appears to require cryptography = "^41.0.1"
whereas Core now requires cryptography==42.0.1
(will be cryptography==42.0.2
in the next version of the beta).
Thanks, we'll get this taken care of!
I'm sure you guys are already on it, but I thought I mention the issues I'm seeing after manually updating the rivian-python-client
package to newly released v1.1.2.
The dependency conflicts appear to have been resolved, but the integration still fails to load, and I am seeing the following errors in the log:
Logger: homeassistant
Source: custom_components/rivian/coordinator.py:65
Integration: Rivian (Unofficial) (documentation, issues)
First occurred: 6:11:34 PM (3 occurrences)
Last logged: 6:11:59 PM
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/rivian/ws_monitor.py", line 148, in _receiver
self._subscriptions[_id][0](data)
File "/config/custom_components/rivian/coordinator.py", line 281, in _process_new_data
vehicle_info = self._build_vehicle_info_dict(pdata.get(self.key, {}))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/rivian/coordinator.py", line 303, in _build_vehicle_info_dict
self.charging_coordinator.adjust_update_interval(
File "/config/custom_components/rivian/coordinator.py", line 139, in adjust_update_interval
self._set_update_interval(
File "/config/custom_components/rivian/coordinator.py", line 65, in _set_update_interval
refresh = self.update_interval and self.update_interval.seconds > seconds
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'int' object has no attribute 'seconds'
Logger: custom_components.rivian.coordinator
Source: helpers/update_coordinator.py:313
Integration: Rivian (Unofficial) (documentation, issues)
First occurred: 6:11:34 PM (3 occurrences)
Last logged: 6:11:59 PM
Unexpected error fetching rivian data: 'int' object has no attribute 'seconds'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 313, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/rivian/coordinator.py", line 259, in _async_update_data
return self._build_vehicle_info_dict(data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/rivian/coordinator.py", line 303, in _build_vehicle_info_dict
self.charging_coordinator.adjust_update_interval(
File "/config/custom_components/rivian/coordinator.py", line 139, in adjust_update_interval
self._set_update_interval(
File "/config/custom_components/rivian/coordinator.py", line 65, in _set_update_interval
refresh = self.update_interval and self.update_interval.seconds > seconds
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'int' object has no attribute 'seconds'
@krazos I've got two PRs ready to address this. A recent change in HA introduced a private field that we were previously using in our own code, so had to change this
@linuxkidd / @krazos 1.0.1 has been released to resolve these issues
Thanks @natekspencer ... I can confirm I was able to re-setup the Rivian integration with the 1.0.1 release! Closing the ticket. :)