Home Assistant basics – what the heck are devices, entities, integrations and services?
Home Assistant is maybe the best open smart home controller out there but if you are new to it some of the terms can be a bit confusing. As a first step towards Home Assistant basics, here is what devices, entities, integrations, services and helpers are.
Home Assistant basics – terminology
Home Assistant is an awesome system for automating your home. It is open source and also open to all kinds of devices and services from many different manufacturers. There are thousands of supported devices currently. You can use it to automate your lights, heating, 3D printer and more. You can find all my smart home devices here.
To support all these different devices Home Assistant uses some abstractions, mainly devices, entities and integrations. Services and helpers can also be very useful. They are all connected together as you can see in this overview and will be explained further in the following article.
What are Home Assistant devices?
Devices in Home Assistant represent physical (smart) devices. A device could be a motion sensor for example, a light switch, a robot vacuum or much more. They have a name and can be assigned to a room for easier management.
A device in Home Assistant includes one or many entities, which is different data or control options belonging to this device. That could be motion/no motion, brightness and battery power for a motion sensor for example.
You can find all your devices in Home Assistant via Settings -> Devices & Services -> Devices tab.
Support for new device types from different manufacturers is provided via integrations.
A device in Home Assistant usually also includes a log which lists all the recent status changes of the device. New devices types can be added by installing more integrations.
What are Home Assistant entities?
Entities in Home Assistant are single data series or controls. They are usually grouped together with (potential other) entities in a device if they belong to the same physical device. An example could be the brightness measured by a sensor over time but also its remaining battery power. Both would be individual entities that belong to the same device. Entities can also be controls like the on/off switch of a light switch.
Each entity has a entity id (that should be unique but is not the same as “unique id” in Home Assistant as I recently learned) that is usually automatically assigned upon creation and used to point to this entity e.g. during automations, a more human readable name you can provide and an icon.
You can find all your entities in Home Assistant via Settings -> Devices & Services -> Entities tab.
By default the history tab in the entity overview screen will show you the past values of this entity, e.g. temperature over time for a temperature sensors entity. The related tab will show you other entities belonging to the same device.
What are Home Assistant integrations?
Integrations tell Home Assistant how to connect to devices (and services) from other vendors. The big advantage of Home Assistant over vendor specific systems is that it supports all kinds of devices – integrations are what makes this possible.
If you want to teach Home Assistant how to talk to Hue devices for example or how to download a weather forecast you need to install the matching integration. You can find them on the Home Assistant website and in your Home Assistant instance via Settings -> Devices & Services -> Integration tab.
Integrations get their data by either polling (repeatedly asking for updates) or waiting for updates to be pushed to them (push) from local or remote sources. This is indicated via small icons at the top of the integration card. Its a good idea to use local push integrations wherever possible for the best experience.
Each integration also links to the devices and entities created via this integration and can be restarted or (temporarily) disabled. You can get more (less well screened) integrations via the HACS store but the official Home Assistant repository already contains thousands.
What are Home Assistant services?
Services are small pieces of functionality provided by either Home Assistant core itself or an integration. They can do one thing like send a notification or toggle a (or multiple) light(s). To do that they will manipulate the status of devices or entities – often for actions that are a bit more involved than a simple state change.
You can find a list of all installed services by using the developer tools in Home Assistant. Click on Developer Tools in the sidebar and go to the Services tab. Here you can select any service and provide any inputs. Run it by clicking the “call service” button.
Services are usually used in automations to create the desired behavior in a specific situation.
What are Home Assistant helpers?
Helpers in Home Assistant are small variables that help you retain state/data outside of devices or entities. They can often help you (hence the name) build more complicated calculations or automations. There are many different types like a date (e.g. used to trigger some reminder), a number (e.g. for saving the energy price to calculate costs) or a group (used to control multiple devices together at the same time).
Helpers can be found via Settings -> Devices & Services -> Helpers tab. Here you can find a list of all your helpers with the name and icon you assigned it as well as the type. You can find an example usage in a reminder here and some more detailed description with another example here.
The second article in this series will explain the terms around automating your devices – the part that really makes a home smart.