How to disable integrations which run even without being in config?

After an update to 2024.6.1 I was facing a problem with suddenly missing ffmpeg, in order to move on (I did not want to pull in the whole ffmpeg package on my install, because I did not need it) I had to add

ffmpeg:
  ffmpeg_bin: /bin/true

to my configuration.yaml.

Which did “work”. I did not realize however at that time that ffmpeg should not have been sought by HA in the first place as it was nowhere in my config.

After updating to 2024.10.1 I experienced something even more strange.
The HA log reported that integration conversation is dead locking in its main loop.

2024-10-07 01:27:53.143 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to read_text with args (PosixPath('/srv/hass312/lib/python3.12/site-packages/unicode_rbnf/VERSION'),) inside the event loop by integration 'conversation' at homeassistant/components/conversation/default_agent.py, line 15: from hassil.expression import Expression, ListReference, Sequence (offender: /srv/hass312/lib/python3.12/site-packages/unicode_rbnf/__init__.py, line 7: __version__ = (_DIR / "VERSION").read_text(encoding="utf-8").strip()), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+conversation%22
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#read_text

and

2024-10-07 01:27:53.159 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to open with args (PosixPath('/srv/hass312/lib/python3.12/site-packages/unicode_rbnf/VERSION'),) inside the event loop by integration 'conversation' at homeassistant/components/conversation/default_agent.py, line 15: from hassil.expression import Expression, ListReference, Sequence (offender: /usr/local/lib/python3.12/pathlib.py, line 1027: with self.open(mode='r', encoding=encoding, errors=errors) as f:), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+conversation%22 
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#open

After some time trying to find conversation anywhere in the config or UI I realized that this integration is nowhere mentioned.

NOTE: I do not use default_config either!

So I wonder why is conversation integration starting (and possibly the ffmpeg one too), where is it defined, why, and how to disable it?

This might be related to voice assistants, but it is just a guess.

I do not think I have anything related to “voice” in my config. This the list of top level sections (possibly integrations) from my configuration.yaml:

ffmpeg:
system_health:
logger:
frontend:
config:
http:
history:
logbook:
recorder:
sun:
command_line:
shell_command: 
notify:

I guess the last three are “services” and ffmpeg part is there only to fake the existence of the binary.

ffmpeg can be related to video and picture too.
Conversion can be related to the help function as well as the text based assistant.

What integrations do you have installed? One of those has to have a dependency on conversation.

Good question. How do I find out?

The list I posted above is filtered from my configuration.yaml, but clearly these are not all the integrations I have.

I have also integration for ZWave, MQTT, BLE, Xiaomi BT, Philips Hue, but these seem no longer live in the configuration.yaml.

Is there another file/database, which defines that?

Conversation is part of default_config. If you have that in your configuration.yaml, it’s being loaded.

EDIT: Ignore the above. Missed the part where you said you’re not loading default_config

What about integrations that are in the GUI, but loaded from configuration.yaml?

These is what I see in GUI. Clearly, some of them are “services” (Command Line, Shell Command, File), the others (ZWave, Bluetooth, iBeacon Tracker, MQTT, Philips Hue, Xiaomi BLE) do not have a direct counterpart in the configuration.yaml.

None of them looks like they would need Conversion, so I am blank on that on.