--- layout: page title: "Architecture" description: "Overview of the Home Assistant architecture." date: 2014-12-18 21:49 sidebar: true comments: false sharing: true footer: true --- Before we dive into the Home Assistant architecture, it is important to get a clear overview of the home automation landscape as a whole. This will allow us to show how the different parts of Home Assistant fit in the picture. For a more lengthy discussion about what each part in this overview is responsible for, check out our blog. A tl;dr version of the blog: * Home Control is responsible for collecting information on- and controlling devices. * Home Automation triggers commands based on user configurations. * Smart Home triggers commands based on previous behavior.

Home Automation landscape Overview of the home automation landscape.

The Home Assistant core is responsible for Home Control. It has four parts to make this possible: * The **Event Bus** facilitates the firing and listening of events. This is the beating heart of Home Assistant. * The **State Machine** keeps track of the states of things. Fires a `state_changed` event when a state has been changed. * The **Service Registry** listens on the event bus for `call_service` events and allows other code to register services. * The **Timer** will send a `time_changed` event every 1 second on the event bus.

Overview of the Home Assistant core architecture