Skip to content

HA OS (Pi 5, Py 3.13) can’t install boschshcpy==0.2.107 → RequirementsNotFound; manual vendor works but conflicts with HA-pinned cryptography #262

@FlyingPlayer

Description

@FlyingPlayer

Describe the issue
When installing the HACS integration (tschamm/boschshc-hass) on Home Assistant OS (Raspberry Pi 5), the config flow fails to load because HA cannot install the Python requirement boschshcpy==0.2.107. HA raises RequirementsNotFound and shows “Unable to install package boschshcpy==0.2.107” with no further detail.

Installing the requirement manually into /config/deps makes the integration work, but pip pulls cryptography 45.0.6, which conflicts with HA Core’s pin to cryptography==45.0.3. Deleting cryptography/cffi/pycparser from /config/deps resolves the conflict and the integration works.

This seems related to the combination of Python 3.13 + aarch64 + HA’s pinned cryptography wheels availability, but I’m opening here first in case there’s an integration-side note/workaround (docs or manifest guidance) you’d like to add for users on Py 3.13.

Environment

  • Home Assistant: 2025.8.2 (logs say: homeassistant 2025.8.2 requires cryptography==45.0.3)
  • Install type: Home Assistant OS
  • Hardware: Raspberry Pi 5 (aarch64)
  • Python: 3.13 (path in logs: /usr/local/lib/python3.13/...)
  • HACS integration: boschshc-hass 0.4.99 (installed from release zip)
  • Bosch SHC: SHC 2, firmware 10.29.4802-3520
  • Network: no proxy; DNS fine; PyPI reachable

Steps to reproduce

  1. Install boschshc-hass 0.4.99 via HACS (or unzip to /config/custom_components/bosch_shc).
  2. Restart HA.
  3. Go to Settings → Devices & Services → Add Integration → Bosch SHC.
  4. Observe: Config flow fails; logs show requirement install failure.

What happened
HA logs:

RequirementsNotFound: Requirements for bosch_shc not found: ['boschshcpy==0.2.107'].
Unable to install package boschshcpy==0.2.107:

(No additional pip error details emitted by HA.)

What I expected to happen

  • HA should install boschshcpy==0.2.107 automatically and load the config flow.

Diagnostics / extra info

  • Running pip inside the Home Assistant Core container with a targeted install succeeds but pulls a newer cryptography:
python -m pip install --no-cache-dir --target /config/deps/lib/python3.13/site-packages boschshcpy==0.2.107
...
ERROR: ... dependency conflicts.
homeassistant 2025.8.2 requires cryptography==45.0.3, but you have cryptography 45.0.6 which is incompatible.
Successfully installed boschshcpy-0.2.107 ... cryptography-45.0.6 ...
  • Workaround that makes the integration work:
  1. Install as above into /config/deps/lib/python3.13/site-packages.
  2. Delete these from /config/deps so HA uses its own pins:
rm -rf /config/deps/lib/python3.13/site-packages/cryptography*
rm -rf /config/deps/lib/python3.13/site-packages/cffi*
rm -rf /config/deps/lib/python3.13/site-packages/pycparser*
  1. Restart HA → config flow works.

Notes
This looks like HA’s requirement manager is trying to satisfy boschshcpy under HA’s pinned constraints (cryptography==45.0.3), but for Py 3.13 / aarch64 there may be no matching wheel in HA’s wheel index, so the install fails with a generic “Unable to install package” and the integration can’t import.

Manually installing boschshcpy fetches cryptography 45.0.6 (a wheel that does exist for Py 3.13 / aarch64), which then conflicts with HA’s pin if left in /config/deps.

Questions / requests

  • Can you confirm that boschshcpy==0.2.107 + boschshc-hass 0.4.99 are expected to work on HA 2025.8.x + Python 3.13?

  • If this is purely an upstream HA wheel/pinning issue, would you accept a short README note for users on Py 3.13 explaining the manual /config/deps workaround?

  • Alternatively, if there’s a recommended integration-side tweak (e.g., relaxing/pinning sub-deps or guidance), happy to test.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions