Before we dive into the Home Assistant architecture, let’s get a clear overview of the home automation landscape as a whole. This way, we can show how the different parts of Home Assistant fit into the picture.

For more information about each part in this overview, check out our blog. Here’s the tl;dr version of the blog:

  • Home Control is responsible for collecting information and controlling devices.
  • Home Automation triggers command based on user configurations.
  • Smart Home triggers commands based on previous behaviour.

Home Automation landscape Overview of the home automation landscape

The Home Assistant core is responsible for Home Control. Home Assistant has four parts to make this possible:

  • Event Bus: facilitates the firing and listening of events–the beating heart of Home Assistant.
  • State Machine: keeps track of the states of things and fires a state_changed event when a state has been changed.
  • Service Registry: listens on the event bus for call_service events and allows other code to register services.
  • Timer: sends a time_changed event every 1 second on the event bus.

Overview of the Home Assistant core architecture