Home AssistantHome AssistantContributors
On this page

Every integration talks to the same small set of building blocks: an event bus, a state machine, an action registry, and the configuration. They all hang off one object, hass, and they all run on one asyncio event loop. Once you know how those pieces behave, most of core stops being magic.

This part of the area is for developers who want to understand what happens under an integration, who work on core itself, or who build a client that talks to Home Assistant from the outside. For the big picture of how core, the frontend, the Supervisor, and the operating system fit together, see the Architecture area.

Where to start

If you are new to core, read these three first. They explain things you run into in every integration:

  1. The hass object: what hass is, and what hangs off it.
  2. Async in Home Assistant: why almost everything is async, and which functions you may call from where.
  3. Events and states: how things happen, and how Home Assistant remembers them.

The core

  • The hass object: the central object, and the core configuration on hass.config.
  • Events: firing and listening on the event bus.
  • States: the state machine and the state object.
  • Actions: the action registry, calling actions, and response data.

Async

Authentication

APIs

Voice and AI

Building a conversation agent, a speech-to-text provider, or a text-to-speech provider? Those are entities, see conversation, speech-to-text, and text-to-speech. Writing sentences so Assist understands your language is translation work: see translate voice commands.

Who to talk to

  • The #core channel on the Home Assistant Discord is the place for questions about core internals.
  • Much of the voice work, like the sentences and the wake word engines, happens in the OHF-Voice organization on GitHub. The integrations themselves, like conversation and assist_pipeline, live in core.
  • Proposals to change how core works start as a discussion in the architecture repository.
Was this page helpful?

Last updated on .