Home Assistant Basics: Entities, Devices & Integrations
The mental model behind Home Assistant – integrations, devices, entities and areas
This article is part of the Home Assistant Guide – the curated learning path for your smart home.
You've installed Home Assistant (if not: pick the right variant here) and now face a UI full of terms. Before you build automations or dashboards, it's worth understanding the mental model behind it – it makes everything else logical.
The four levels
Home Assistant organizes everything in a clear hierarchy:
Integration → Device → Entity, with the Area cutting across.
Understand these four and you understand Home Assistant.
The integration is the translator to a vendor/protocol, the device is the physical thing, the entity is a single value or switch on it, the area is the room it sits in.
Integration: the connection to the outside world
An integration is the code that lets Home Assistant talk to a device, service or protocol – e.g. Zigbee (ZHA), MQTT, Hue, or the weather API. You add it once (“Settings → Devices & Services”); after that it brings its own devices.
Device: the physical thing
A device is a concrete piece of hardware an integration discovered – say a Zigbee thermostat or a plug. It's mainly an organizational bracket: a device bundles several entities and can be assigned to an area.
Entity: the heart of it
The entity is the most important term. It's a single state or function: the temperature, the battery level, the on/off switch. A device often has several entities. Each has an entity_id in the pattern domain.name – the domain says what it is:
sensor.living_room_temperature– a measured valuelight.desk– a switchable lampbinary_sensor.front_door– open/closed
An entity has a state (e.g. 21.4) and attributes (unit, brightness, …). These states are later the building blocks of your automations.
Area: order by room
An area groups devices by room – “Living room”, “Office”. That later enables commands like “turn everything in the living room off” and sorts dashboards automatically. Optionally there are labels for cross-cuts (“all batteries”).
For devices and entities to exist at all, you need a source. In my setup a Zigbee coordinator on the server provides most of the sensors – a USB dongle bound in via an integration (ZHA or Zigbee2MQTT):
Ad · Affiliate link – if you buy through it, I may earn a commission. It doesn’t change the price for you.
How it all fits together
Concretely, top to bottom: the Zigbee dongle is bound in via the ZHA integration. You pair a thermostat – Home Assistant creates a device for it. That device brings several entities: sensor.thermostat_temperature, sensor.thermostat_battery, climate.thermostat. You put the device into the area “Living room” – done. From now on you can use the temperature entity in automations and dashboards.
What I left out
- Helpers (input_boolean, counters, schedules) – your own “entities by hand”, relevant once you build automations.
- Templates – calculated entities; powerful, but not for the start.
Conclusion & outlook
Integration brings devices, devices bundle entities, areas sort by room – and the entity with its state is what you actually work with. With this model in mind, the next step is logical: your first automation made of trigger, condition and action. That's exactly what we'll build in the next article.
Ad · Affiliate link – if you buy through it, I may earn a commission. It doesn’t change the price for you.