Disable Bluetooth for HA

So as expected for a VM: No WiFi or Bluetooth kernel module is loaded. No idea what HA is checking then.

So this is about a HA Voice Assistant? Do you have a link of the integration/addon? And why does it bother whether Bluetooth is enabled or not? I remember some BLE integration needed bluez (Linux Bluetooth userland tools and services) to be removed, but an adapter/driver enabled, since it wants to do raw device access. But that should be unrelated, and would require a Bluetooth adapter, of course.

Lemmie try and add it again, and I’ll take screenshots.

This is the link I am using:

https://support.nabucasa.com/hc/en-us/articles/25918770371229-Getting-started-with-Home-Assistant-Voice-Preview-Edition

Step 6 is where it blows up. Setting it up on my iphone with the HA app and when I go to add the ESPHome Node it says:
Error: Config flow could not be loaded: Failed Dependencies bluetooth

Isn’t this about failing Bluetooth access on the phone rather than enabled Bluetooth on the HA server?

Just to preserve context: The Voice Assistant device (button, microphone, …) is added via Bluetooth. In that setup, where the server itself has no Bluetooth, the HA companion mobile app is used, so data goes from HA server through phone to Voice Assistant vice versa.

I know on macOS, permissions to access things like Bluetooth almost always needs to be granted explicitely, and there rarely is a prompt to just grant it right away when the app “asks”, like on Android. I guess on iOS it is similar, and you need to manually grant the HA app access.

EDIT: Or the HA Bluetooth component is missing :thinking:.

Yessir, I do have bluetooth enabled on my phone and I am setting it up via Bluetooth. But I think I am reading this all wrong. I think it needs bluetooth to setup the ESPHome node and it doesn’t see it on the DietPi HA server.

I just tried to add ESPHome to my HA through the GUI and it gave me the same error:

The setup with the HA companion app explicitly is for cases where the HA server itself has no Bluetooth adapter. So it makes use of the phone to connect the voice assistant. For a Proxmox VM pretty reasonable. Of course if you have a chance to pass through a USB WiFi/BT adapter to the Proxmox VM, that may be an alternative. In that case the phone and HA companion app are not needed. Then indeed HA’s BLE integration seems to be used. So Bluetooth in dietpi-config should stay disabled to avoid bluez interfering.

Again, I really appericeate you looking into this for me, sir. I’ll throw something your way via PayPal because I love the idea of DietPi and how easy it is.

I moved over to my HAOS, and double verified that it does work on a VM with no apparent BT connection. Maybe file this away as a foot note, that HA on a Diet Pi does not support the Voice speaker.

Would be interesting to find out the reason: Bluetooth on the HA server hence is irrelevant for this path, so anything related to that should not affect whether the voice assistant speaker works or not.

And it is indeed a HA-internal dependency. The error is emitted here: core/homeassistant/components/config/config_entries.py at 20f40a1d7c7b67def111f6aa86bd43f2f21f181b · home-assistant/core · GitHub
Probably a bootstrapping issue, with some of its Python dependencies missing: core/homeassistant/components/bluetooth/manifest.json at 20f40a1d7c7b67def111f6aa86bd43f2f21f181b · home-assistant/core · GitHub

HAOS comes with all dependencies for all (bundled) integrations pre-installed, while on DietPi, the HA core installation pulls only the core dependencies. So when an integration is added, HA installs their additional dependencies, as defined in above manifest (for the “bluetooth” component) on demand. But this does not always succeed, as there are sometimes dependency cycles, which do not appear to HA developers, since they focus on the all pre-installed HAOS.

If you want to debug it with the DietPi HA installation, the service logs should reveal some related error:

journalctl -u home-assistant

Be happy to help!

journalctl.txt (14.1 KB)

root@DietPi:~# journalctl -u home-assistant
Jul 20 05:09:21 DietPi systemd[1]: Started home-assistant.service - Home Assistant (DietPi).
Jul 20 05:09:23 DietPi Home Assistant[569]: 2026-07-20 05:09:23.711 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs 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
Jul 20 05:09:23 DietPi Home Assistant[569]: 2026-07-20 05:09:23.946 WARNING (MainThread) [zeroconf] Address not available when binding to ('fd18:c91e:498e:a9da:be24:11ff:feb0:16e4', 5353, 0, 0), it is expected to happen on some systems
Jul 20 05:09:23 DietPi Home Assistant[569]: 2026-07-20 05:09:23.989 ERROR (MainThread) [haffmpeg.core] FFmpeg fails [Errno 2] No such file or directory: 'ffmpeg'
Jul 20 05:09:23 DietPi Home Assistant[569]: Traceback (most recent call last):
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/haffmpeg/core.py", line 130, in open
Jul 20 05:09:23 DietPi Home Assistant[569]:     self._proc = await asyncio.create_subprocess_exec(
Jul 20 05:09:23 DietPi Home Assistant[569]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:     ...<6 lines>...
Jul 20 05:09:23 DietPi Home Assistant[569]:     )
Jul 20 05:09:23 DietPi Home Assistant[569]:     ^
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/asyncio/subprocess.py", line 224, in create_subprocess_exec
Jul 20 05:09:23 DietPi Home Assistant[569]:     transport, protocol = await loop.subprocess_exec(
Jul 20 05:09:23 DietPi Home Assistant[569]:                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:     ...<3 lines>...
Jul 20 05:09:23 DietPi Home Assistant[569]:         stderr=stderr, **kwds)
Jul 20 05:09:23 DietPi Home Assistant[569]:         ^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/asyncio/base_events.py", line 1808, in subprocess_exec
Jul 20 05:09:23 DietPi Home Assistant[569]:     transport = await self._make_subprocess_transport(
Jul 20 05:09:23 DietPi Home Assistant[569]:                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:         protocol, popen_args, False, stdin, stdout, stderr,
Jul 20 05:09:23 DietPi Home Assistant[569]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:         bufsize, **kwargs)
Jul 20 05:09:23 DietPi Home Assistant[569]:         ^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/asyncio/unix_events.py", line 203, in _make_subprocess_transport
Jul 20 05:09:23 DietPi Home Assistant[569]:     transp = _UnixSubprocessTransport(self, protocol, args, shell,
Jul 20 05:09:23 DietPi Home Assistant[569]:                                     stdin, stdout, stderr, bufsize,
Jul 20 05:09:23 DietPi Home Assistant[569]:                                     waiter=waiter, extra=extra,
Jul 20 05:09:23 DietPi Home Assistant[569]:                                     **kwargs)
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/asyncio/base_subprocess.py", line 40, in __init__
Jul 20 05:09:23 DietPi Home Assistant[569]:     self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
Jul 20 05:09:23 DietPi Home Assistant[569]:     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:                 stderr=stderr, bufsize=bufsize, **kwargs)
Jul 20 05:09:23 DietPi Home Assistant[569]:                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/asyncio/unix_events.py", line 845, in _start
Jul 20 05:09:23 DietPi Home Assistant[569]:     self._proc = subprocess.Popen(
Jul 20 05:09:23 DietPi Home Assistant[569]:                  ~~~~~~~~~~~~~~~~^
Jul 20 05:09:23 DietPi Home Assistant[569]:         args, shell=shell, stdin=stdin, stdout=stdout, stderr=stderr,
Jul 20 05:09:23 DietPi Home Assistant[569]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:         universal_newlines=False, bufsize=bufsize, **kwargs)
Jul 20 05:09:23 DietPi Home Assistant[569]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/subprocess.py", line 1039, in __init__
Jul 20 05:09:23 DietPi Home Assistant[569]:     self._execute_child(args, executable, preexec_fn, close_fds,
Jul 20 05:09:23 DietPi Home Assistant[569]:     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:                         pass_fds, cwd, env,
Jul 20 05:09:23 DietPi Home Assistant[569]:                         ^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:     ...<5 lines>...
Jul 20 05:09:23 DietPi Home Assistant[569]:                         gid, gids, uid, umask,
Jul 20 05:09:23 DietPi Home Assistant[569]:                         ^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:                         start_new_session, process_group)
Jul 20 05:09:23 DietPi Home Assistant[569]:                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:23 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/subprocess.py", line 1990, in _execute_child
Jul 20 05:09:23 DietPi Home Assistant[569]:     raise child_exception_type(errno_num, err_msg, err_filename)
Jul 20 05:09:23 DietPi Home Assistant[569]: FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'
Jul 20 05:09:23 DietPi Home Assistant[569]: 2026-07-20 05:09:23.995 WARNING (MainThread) [haffmpeg.tools] Error starting FFmpeg.
Jul 20 05:09:24 DietPi Home Assistant[569]: 2026-07-20 05:09:24.031 ERROR (MainThread) [homeassistant.setup] Setup failed for 'usb': Unable to import component: No module named 'aioesphomeapi'
Jul 20 05:09:24 DietPi Home Assistant[569]: Traceback (most recent call last):
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/setup.py", line 341, in _async_setup_component
Jul 20 05:09:24 DietPi Home Assistant[569]:     component = await integration.async_get_component()
Jul 20 05:09:24 DietPi Home Assistant[569]:                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/loader.py", line 1042, in async_get_component
Jul 20 05:09:24 DietPi Home Assistant[569]:     self._component_future.result()
Jul 20 05:09:24 DietPi Home Assistant[569]:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/loader.py", line 1022, in async_get_component
Jul 20 05:09:24 DietPi Home Assistant[569]:     comp = await self.hass.async_add_import_executor_job(
Jul 20 05:09:24 DietPi Home Assistant[569]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:24 DietPi Home Assistant[569]:         self._get_component, True
Jul 20 05:09:24 DietPi Home Assistant[569]:         ^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:24 DietPi Home Assistant[569]:     )
Jul 20 05:09:24 DietPi Home Assistant[569]:     ^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 86, in run
Jul 20 05:09:24 DietPi Home Assistant[569]:     result = ctx.run(self.task)
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 73, in run
Jul 20 05:09:24 DietPi Home Assistant[569]:     return fn(*args, **kwargs)
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/loader.py", line 1082, in _get_component
Jul 20 05:09:24 DietPi Home Assistant[569]:     ComponentProtocol, importlib.import_module(self.pkg_path)
Jul 20 05:09:24 DietPi Home Assistant[569]:                        ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/util/loop.py", line 201, in protected_loop_func
Jul 20 05:09:24 DietPi Home Assistant[569]:     return func(*args, **kwargs)
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
Jul 20 05:09:24 DietPi Home Assistant[569]:     return _bootstrap._gcd_import(name[level:], package, level)
Jul 20 05:09:24 DietPi Home Assistant[569]:            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "<frozen importlib._bootstrap>", line 1342, in _find_and_load_unlocked
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "<frozen importlib._bootstrap>", line 938, in _load_unlocked
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "<frozen importlib._bootstrap_external>", line 759, in exec_module
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/components/usb/__init__.py", line 36, in <module>
Jul 20 05:09:24 DietPi Home Assistant[569]:     from .serial_proxy_stub import register_serialx_transport
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/components/usb/serial_proxy_stub.py", line 6, in <module>
Jul 20 05:09:24 DietPi Home Assistant[569]:     from serialx.platforms.serial_esphome import ESPHomeSerial, ESPHomeSerialTransport
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/serialx/platforms/serial_esphome.py", line 36, in <module>
Jul 20 05:09:24 DietPi Home Assistant[569]:     from aioesphomeapi.client import APIClient
Jul 20 05:09:24 DietPi Home Assistant[569]: ModuleNotFoundError: No module named 'aioesphomeapi'
Jul 20 05:09:24 DietPi Home Assistant[569]: 2026-07-20 05:09:24.038 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'bluetooth'. Setup failed for dependencies: ['usb']
Jul 20 05:09:24 DietPi Home Assistant[569]: 2026-07-20 05:09:24.038 ERROR (MainThread) [homeassistant.setup] Setup failed for 'bluetooth': Could not setup dependencies: usb
Jul 20 05:09:24 DietPi Home Assistant[569]: 2026-07-20 05:09:24.657 ERROR (ImportExecutor_0) [homeassistant.components.camera.img_util] Error loading libturbojpeg; Camera snapshot performance will be sub-optimal
Jul 20 05:09:24 DietPi Home Assistant[569]: Traceback (most recent call last):
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/homeassistant/components/camera/img_util.py", line 91, in __init__
Jul 20 05:09:24 DietPi Home Assistant[569]:     TurboJPEGSingleton.__instance = TurboJPEG()
Jul 20 05:09:24 DietPi Home Assistant[569]:                                     ~~~~~~~~~^^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/turbojpeg.py", line 301, in __init__
Jul 20 05:09:24 DietPi Home Assistant[569]:     self.__find_turbojpeg() if lib_path is None else lib_path)
Jul 20 05:09:24 DietPi Home Assistant[569]:     ~~~~~~~~~~~~~~~~~~~~~^^
Jul 20 05:09:24 DietPi Home Assistant[569]:   File "/opt/homeassistant/.venv/lib/python3.14/site-packages/turbojpeg.py", line 996, in __find_turbojpeg
Jul 20 05:09:24 DietPi Home Assistant[569]:     raise RuntimeError(
Jul 20 05:09:24 DietPi Home Assistant[569]:     ...<2 lines>...
Jul 20 05:09:24 DietPi Home Assistant[569]:         'e.g. jpeg = TurboJPEG(lib_path)')
Jul 20 05:09:24 DietPi Home Assistant[569]: RuntimeError: Unable to locate turbojpeg library automatically. You may specify the turbojpeg library path manually.
Jul 20 05:09:24 DietPi Home Assistant[569]: e.g. jpeg = TurboJPEG(lib_path)
Jul 20 05:09:26 DietPi Home Assistant[569]: 2026-07-20 05:09:26.731 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'default_config'. Setup failed for dependencies: ['bluetooth', 'usb']
Jul 20 05:09:26 DietPi Home Assistant[569]: 2026-07-20 05:09:26.731 ERROR (MainThread) [homeassistant.setup] Setup failed for 'default_config': Could not setup dependencies: bluetooth, usb
Jul 20 05:09:33 DietPi Home Assistant[569]: 2026-07-20 05:09:33.659 ERROR (MainThread) [homeassistant.components.homeassistant_alerts.coordinator] Error requesting homeassistant_alerts data: Cannot connect to host alerts.home-assistant.io:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1082)')]
Jul 20 05:09:33 DietPi Home Assistant[569]: 2026-07-20 05:09:33.785 ERROR (SyncWorker_0) [aiodhcpwatcher] Cannot watch for dhcp packets without a functional packet filter: libpcap is not available. Cannot compile filter !
Jul 25 07:14:37 DietPi Home Assistant[569]: 2026-07-25 07:14:37.957 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'esphome'. Setup failed for dependencies: ['bluetooth']
root@DietPi:~#

So it is indeed a missing Python module: aioesphomeapi is needed for usb is needed for bluetooth:

sudo -u homeassistant uv pip install --directory /opt/homeassistant aioesphomeapi
systemctl restart home-assistant

This fixes the issue in Home Assistant itself. It is supposed to install Python dependencies automatically. In this case the needed optional dependencies were missing: components: usb: complement serialx[esphome] dependency by MichaIng · Pull Request #177267 · home-assistant/core · GitHub

Well, getting a different error now. Says the encryption key is wrong and the Voice assistant can’t talk to ESPHome. But… ESPHome did install.

Attached the new journal.

journalctl 2.txt (66.2 KB)

Jul 26 13:35:09 DietPi Home Assistant[730]: 2026-07-26 13:35:09.751 WARNING (MainThread) [aioesphomeapi.connection] 192.168.1.119: Connection error occurred: Error while finishing connection: '__reduce_cython__'
Jul 26 13:35:09 DietPi Home Assistant[730]: Traceback (most recent call last):
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 866, in aioesphomeapi.connection.APIConnection.finish_connection
Jul 26 13:35:09 DietPi Home Assistant[730]:     ]
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 869, in aioesphomeapi.connection.APIConnection.finish_connection
Jul 26 13:35:09 DietPi Home Assistant[730]:     _LOGGER.debug(
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 851, in _do_finish_connect
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 560, in _connect_init_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:     tuple(msg_types),
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 108, in _async_load_noise_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:     # because on ESP8266 with power_save_mode: LIGHT and weak WiFi (-70 dBm+),
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 112, in aioesphomeapi.connection._async_load_noise_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:     # See https://github.com/esphome/esphome/issues/14999
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 86, in run
Jul 26 13:35:09 DietPi Home Assistant[730]:     result = ctx.run(self.task)
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 73, in run
Jul 26 13:35:09 DietPi Home Assistant[730]:     return fn(*args, **kwargs)
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 85, in aioesphomeapi.connection._import_noise_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/_frame_helper/noise.py", line 1, in init aioesphomeapi._frame_helper.noise
Jul 26 13:35:09 DietPi Home Assistant[730]: KeyError: '__reduce_cython__'
Jul 26 13:35:09 DietPi Home Assistant[730]: 2026-07-26 13:35:09.757 WARNING (MainThread) [aioesphomeapi.connection] 192.168.1.119: Connection error occurred: Error while finishing connection: '__reduce_cython__'
Jul 26 13:35:09 DietPi Home Assistant[730]: Traceback (most recent call last):
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 866, in aioesphomeapi.connection.APIConnection.finish_connection
Jul 26 13:35:09 DietPi Home Assistant[730]:     ]
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 869, in aioesphomeapi.connection.APIConnection.finish_connection
Jul 26 13:35:09 DietPi Home Assistant[730]:     _LOGGER.debug(
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 851, in _do_finish_connect
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 560, in _connect_init_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:     tuple(msg_types),
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 108, in _async_load_noise_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:     # because on ESP8266 with power_save_mode: LIGHT and weak WiFi (-70 dBm+),
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 112, in aioesphomeapi.connection._async_load_noise_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:     # See https://github.com/esphome/esphome/issues/14999
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 86, in run
Jul 26 13:35:09 DietPi Home Assistant[730]:     result = ctx.run(self.task)
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 73, in run
Jul 26 13:35:09 DietPi Home Assistant[730]:     return fn(*args, **kwargs)
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 85, in aioesphomeapi.connection._import_noise_frame_helper
Jul 26 13:35:09 DietPi Home Assistant[730]:   File "aioesphomeapi/_frame_helper/noise.py", line 1, in init aioesphomeapi._frame_helper.noise
Jul 26 13:35:09 DietPi Home Assistant[730]: KeyError: '__reduce_cython__'

This one is relevant:

Jul 26 13:29:45 DietPi Home Assistant[730]: 2026-07-26 13:29:45.890 WARNING (MainThread) [aioesphomeapi.connection] 192.168.1.XXX: Connection error occurred: 192.168.1.XXX: Connection requires encryption
Jul 26 13:29:45 DietPi Home Assistant[730]: 2026-07-26 13:29:45.901 WARNING (SyncWorker_1) [py.warnings] <frozen importlib._bootstrap>:491: RuntimeWarning: aioesphomeapi.connection.APIConnection size changed, may indicate binary incompatibility. Expected 224 from C header, got 232 from PyObject
Jul 26 13:29:45 DietPi Home Assistant[730]: 2026-07-26 13:29:45.920 WARNING (MainThread) [aioesphomeapi.connection] 192.168.1.XXX: Connection error occurred: Error while finishing connection: aioesphomeapi._frame_helper.packets does not export expected C function make_noise_packets
Jul 26 13:29:45 DietPi Home Assistant[730]: Traceback (most recent call last):
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 866, in aioesphomeapi.connection.APIConnection.finish_connection
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 869, in aioesphomeapi.connection.APIConnection.finish_connection
Jul 26 13:29:45 DietPi Home Assistant[730]:     _LOGGER.debug(
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 851, in _do_finish_connect
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 560, in _connect_init_frame_helper
Jul 26 13:29:45 DietPi Home Assistant[730]:     tuple(msg_types),
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 108, in _async_load_noise_frame_helper
Jul 26 13:29:45 DietPi Home Assistant[730]:     # because on ESP8266 with power_save_mode: LIGHT and weak WiFi (-70 dBm+),
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 112, in aioesphomeapi.connection._async_load_noise_frame_helper
Jul 26 13:29:45 DietPi Home Assistant[730]:     # See https://github.com/esphome/esphome/issues/14999
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 86, in run
Jul 26 13:29:45 DietPi Home Assistant[730]:     result = ctx.run(self.task)
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "/opt/homeassistant/.local/share/uv/python/cpython-3.14.6-linux-x86_64-gnu/lib/python3.14/concurrent/futures/thread.py", line 73, in run
Jul 26 13:29:45 DietPi Home Assistant[730]:     return fn(*args, **kwargs)
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/connection.py", line 85, in aioesphomeapi.connection._import_noise_frame_helper
Jul 26 13:29:45 DietPi Home Assistant[730]:   File "aioesphomeapi/_frame_helper/noise.py", line 1, in init aioesphomeapi._frame_helper.noise
Jul 26 13:29:45 DietPi Home Assistant[730]: ImportError: aioesphomeapi._frame_helper.packets does not export expected C function make_noise_packets

There is a mismatch between the expected and present ABI in the compiled C extension.

Not sure how this can happen, the wheel from PyPI should contain the C extensions compiled against the same headers, of course. Maybe try to reinstall it:

sudo -u homeassistant uv pip install --directory /opt/homeassistant uv pip uninstall aioesphomeapi
sudo -u homeassistant uv pip install --directory /opt/homeassistant uv pip install --no-cache aioesphomeapi

But the package won’t be needed anymore with next HA release. There was an even better solution up already, and got merged 2 hours ago: usb: Avoid importing aioesphomeapi in serial proxy stub by AlD · Pull Request #174181 · home-assistant/core · GitHub
This makes the generic usb component to not depend on aioesphomeapi anymore. Only the actual ESPHome component does, which makes a lot more sense.

I can more than happily wait and try it again in a month, sir. Not a problem at all!

You could also test the beta that was released 6 hours ago, which contains the fix: Releases · home-assistant/core · GitHub

sudo -u homeassistant uv pip install -U --directory /opt/homeassistant homeassistant
sudo systemctl restart home-assistant

I see all kinds of errors in the Journal… But Success!!! It installed with no issues on the GUI.

journalctl3.txt (9.2 KB)

Great.

The other errors are expected. Actually they are of similar kind, HA attempting to load features that are not needed for any active integration: FFmpeg despite no active video/camera-related integration, TurboJPEG via camera component, despite no camera-related integration active, libpcap via aiodhcpwatcher component, despite no integration/addon active to manage DHCP, or require DHCP functionality for a direct device connection (some do).

You could mute those via

apt install libturbojpeg0 libpcap0.8t64 ffmpeg

But the components remain unused (unless you install/enable certain integrations), so you trade some disk space and I/O for visual-only logs cleanup.

Nah, I’ll just leave the errors there.

Again, Appreciate the help sir!