mitch-dc / volkswagen_we_connect_id

Apache License 2.0
195 stars 52 forks source link

Dependency error after 0.1.4 upgrade #149

Closed whohencode closed 1 year ago

whohencode commented 1 year ago

Version of the custom_component

0.1.4

Installation method (hacs / manual)

Hacs

Installation method of hass (venv, docker, hassio,...)

Hass in docker

Configuration

No config changed, only upgradeed to 0.1.4

Describe the bug

Dependency error after upgrading from 0.1.3 to 0.1.4 with ha 2023.2.5

Requirements for volkswagen_we_connect_id not found: ['weconnect==0.54.1'].

Debug log

Debugging gave no more than the log.

2023-02-28 20:48:44.924 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration volkswagen_we_connect_id: Requirements for volkswagen_we_connect_id not found: ['weconnect==0.54.1'].
Enough64 commented 1 year ago

Me too. However I get

2023-02-28 20:53:17.074 ERROR (SyncWorker_3) [homeassistant.util.package] Unable to install package weconnect==0.54.1: ERROR: Cannot install weconnect==0.54.1 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 [notice] A new release of pip available: 22.3 -> 23.0.1 [notice] To update, run: pip install --upgrade pip

aveXcaesar commented 1 year ago

Same for me in HA installed on a RaspberryPi with latest update

mitch-dc commented 1 year ago

I know. Got the same issue, not sure why this happens.

Need more time to investigate, hope i can find someone with more python knowledge.

sttaelma commented 1 year ago

i had to manually run command "pip install weconnect --upgrade" from within the homeassistant docker to get the python library "weconnect" to be upgraded to v0.54.1 - v0.51.0 was still installed. https://pypi.org/project/weconnect/ i'm unsure how to manage these python libraries from within the homeassistant gui

i did a test after, but seems to api is not responding (configuration keeps running) image

tillstaff commented 1 year ago

I know. Got the same issue, not sure why this happens.

Need more time to investigate, hope i can find someone with more python knowledge.

There is a problem with the new library requirements of weconnect 0.54.1.

homeassistant 2023.2.5 requires requests==2.28.1, but weconnect requires requests 2.28.2 which is incompatible.

bash-5.1# pip3 install weconnect==0.54.1
Collecting weconnect==0.54.1
  Downloading weconnect-0.54.1-py3-none-any.whl (156 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 156.7/156.7 kB 3.0 MB/s eta 0:00:00
Collecting requests~=2.28.2
  Downloading requests-2.28.2-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 1.8 MB/s eta 0:00:00
Requirement already satisfied: oauthlib~=3.2.2 in /usr/local/lib/python3.10/site-packages (from weconnect==0.54.1) (3.2.2)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests~=2.28.2->weconnect==0.54.1) (2.1.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests~=2.28.2->weconnect==0.54.1) (1.26.14)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests~=2.28.2->weconnect==0.54.1) (2022.12.7)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests~=2.28.2->weconnect==0.54.1) (3.4)
Installing collected packages: requests, weconnect
  Attempting uninstall: requests
    Found existing installation: requests 2.28.1
    Uninstalling requests-2.28.1:
      Successfully uninstalled requests-2.28.1
  Attempting uninstall: weconnect
    Found existing installation: weconnect 0.51.0
    Uninstalling weconnect-0.51.0:
      Successfully uninstalled weconnect-0.51.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
nuheat 1.0.0 requires requests==2.28.1, but you have requests 2.28.2 which is incompatible.
ibm-watson 5.2.2 requires websocket-client==1.1.0, but you have websocket-client 1.5.1 which is incompatible.
homeassistant 2023.2.5 requires requests==2.28.1, but you have requests 2.28.2 which is incompatible.
Successfully installed requests-2.28.2 weconnect-0.54.1
mitch-dc commented 1 year ago

Fixed in https://github.com/mitch-dc/volkswagen_we_connect_id/releases/tag/v0.1.4 but you also need to update Homeassistant to at least version 2023.3.0.

firefox159 commented 1 year ago

Just wondering - 2023.3 does not show to be available on my HA yet...

TravisWilder commented 1 year ago

Home Assistant 2023.3.0 Supervisor 2023.01.1 Operating System 9.5 Frontend 20230301.0 - latest

Still get the error Setup failed for custom integration volkswagen_we_connect_id: Requirements for volkswagen_we_connect_id not found: ['weconnect==0.54.1'].

Does this need to be installed manually?

gapthorpe commented 1 year ago

I’m also still seeing an error unfortunately after HA and integration updated

svenkessler commented 1 year ago

Also updated to Home Assistant 2023.3.0 and 0.1.4 Got the same error mentioned here, so tried to delete the integration and re-added it. Now I got this error when trying to activate:

Unable to install package weconnect==0.54.1: ERROR: Cannot install weconnect==0.54.1 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 [notice] A new release of pip is available: 23.0 -> 23.0.1 [notice] To update, run: pip install --upgrade pip

EDIT: Ok, seems a manual weconnect 0.54.1 installation (pip3 install weconnect==0.54.1 on the console) did the trick for me. However, only 20 entities are discovered. Get this error in the log: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/loader.py", line 779, in get_platform cache[full_name] = self._import_platform(platform_name) File "/usr/src/homeassistant/homeassistant/loader.py", line 796, in _import_platform return importlib.import_module(f"{self.pkg_path}.{platform_name}") File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/config/custom_components/volkswagen_we_connect_id/sensor.py", line 100, in <module> device_class=SensorDeviceClass.energy, File "/usr/local/lib/python3.10/enum.py", line 437, in __getattr__ raise AttributeError(name) from None AttributeError: energy

PaulProjects commented 1 year ago

Setup failed for custom integration volkswagen_we_connect_id: Requirements for volkswagen_we_connect_id not found: ['weconnect==0.54.1']

Edit:

Hacked a temporary fix together till the HA patch is out:

  1. Make sure you are on the newest HomeAssistant (2023.3.0) and volkswagen_we_connect_id (0.1.4) version
  2. Install the Portainer Addon repo
  3. Start Portainer
  4. In Portainer Containers -> homeassistant (Page 2 for me) -> Console -> Connect -> type "pip3 install weconnect==0.54.1"

Reboot and it should work again (It is "just" missing everything that isnt a boolean, climate configuration or tracker)

robinostlund commented 1 year ago

Found a solution for the sensor issue.

This:

    VolkswagenIdEntityDescription(
        key="chargePower_kW",
        name="Charge Power",
        native_unit_of_measurement=UnitOfPower.KILO_WATT,
        device_class=SensorDeviceClass.energy,
        state_class=measurement,
        value=lambda data: data["charging"]["chargingStatus"].chargePower_kW.value,
    ),

Needs to be this:

    VolkswagenIdEntityDescription(
        key="chargePower_kW",
        name="Charge Power",
        native_unit_of_measurement=UnitOfPower.KILO_WATT,
        device_class=SensorDeviceClass.ENERGY,
        value=lambda data: data["charging"]["chargingStatus"].chargePower_kW.value,
    ),
PaulProjects commented 1 year ago

hm I dont know much about HA but that got changed with https://github.com/mitch-dc/volkswagen_we_connect_id/commit/163adbcce7205b5083b17fa0ca5968605b3d9cfd

jonasbkarlsson commented 1 year ago

@mitch-dc, your PR to update HA with requests==2.28.2 did not make it into the 2023.3.0 release. https://github.com/home-assistant/core/blob/2023.3.0/requirements.txt

robinostlund commented 1 year ago

I created this pull request to see if it would be possible to downgrade requests version for weconnect library: https://github.com/tillsteinbach/WeConnect-python/pull/109

mtjoernelund commented 1 year ago

While waiting for either dependency requirements for WeConnect to be downgraded or HA Core to be updated, I just wanted to confirm that manually updating WeConnect to 0.54.1 and making the changes to sensor.py outlined by @robinostlund above seems to be a viable workaround. I have sensors back in HA and so far I have seen no adverse consequences to HA Core.

svenkessler commented 1 year ago

While waiting for either dependency requirements for WeConnect to be downgraded or HA Core to be updated, I just wanted to confirm that manually updating WeConnect to 0.54.1 and making the changes to sensor.py outlined by @robinostlund above seems to be a viable workaround. I have sensors back in HA and so far I have seen no adverse consequences to HA Core.

Thanks for clarification. Did now the same and can confirm, that everything is working now and can't see any downside now.