This article covers the same ground as the video below, but in a format you can reference and bookmark. If you'd rather watch than read, hit play. If you want the written version with extra context, keep scrolling.
What we're working with
In the previous video, I covered the different ways to install Home Assistant — the pros and cons of each method — and landed on the one I recommend for most people starting out: a full install of Home Assistant OS on a Raspberry Pi 5. It gives you real processing power, room to grow, and the full feature set without limitations.
If you haven't installed it yet, start there first. This article picks up after the installation is done and you're looking at a running Home Assistant instance for the first time.
How Home Assistant is actually built
Before touching anything in the interface, it helps to know what you're dealing with architecturally. Home Assistant isn't just an app — it's a full technology stack, which is a fancy way of saying several layers of software working together. There are three primary components.
The Operating System is the foundation — a minimal Linux environment that handles hardware interaction, the bootloader, file systems, and a stable base that lets Home Assistant run on different machine architectures. You never interact with it directly, but it's what makes everything above it possible.
The Supervisor sits above the OS and manages Home Assistant from within Home Assistant itself. It runs the core software, handles updates to both the core and the OS, makes backups and restores possible, and manages any add-on software you want to run alongside your setup. It's the reason you can update or restore your system from within the UI rather than having to SSH in and run commands manually.
The Core is the main software you actually interact with day to day. It's made up of four distinct parts:
- Event Bus — listens for and fires off events throughout the system, like when a light turns on or a sensor changes state.
- State Machine — tracks the state of everything in your home (light on, motion detected, door open) and fires an event on the event bus when something changes.
- Service Registry — listens on the event bus and lets code register service actions. This is what allows external services like Amazon Alexa to interact with your local devices via webhooks — the cloud calls the service, the service controls the device.
- Timer — sends a time-changed event every second to the event bus, which is what makes schedules, timers, and countdowns work.
Understanding this architecture isn't just academic. When something breaks, knowing which layer is responsible tells you where to look. Automations not firing? That's the event bus. Service call not working? That's the service registry. Add-ons broken? That's the supervisor.
The terminology you have to understand first
Home Assistant has its own vocabulary, and the concepts don't map cleanly onto how most people think about smart home devices. Skipping this section and going straight to clicking is how you end up confused three hours later.
Entities are the hardest concept to grasp, and the most important. An entity is one specific thing a device can do or report — not the whole device, one piece of it. Entities fall into three types:
- Sensors — return information (temperature, battery level, motion state, power consumption)
- Actors — something external that interacts with the system (a webhook, a button press)
- Functions — actions the device itself can perform (turn on, set brightness, lock)
Here's what makes this real: I added my Samsung TV as a device in Home Assistant. You'd look at it and think: one TV, simple. But Home Assistant exposes around 80 entities for that single device. Every piece of information the TV can report or receive — volume level, current source, power state, media title, app name — is its own entity. You don't have to interact with any entity you don't care about. But every one of those 80 data points is available to trigger an automation, appear on a dashboard, or be used in a condition. That depth is what makes Home Assistant worth the learning curve.
Devices are simply a group of entities. Usually a device maps to a real physical device, but not always. An HVAC unit that handles both heating and cooling might be represented as two separate devices in Home Assistant — one for heating, one for cooling — each with their own entities. Home Assistant represents things the way they function, not necessarily the way they look on a shelf.
Integrations are pieces of software you plug into Home Assistant to let it communicate with something else. Each integration provides some combination of devices, entities, and services. For example, I have a Dexcom integration in my Home Assistant — Dexcom is a continuous glucose monitor for diabetics. The integration gives me one device (the user account for the service) and two entities: glucose value and glucose trend. That's it. Simple integration, specific data.
A few important caveats about integrations:
- Some depend on the cloud. If the cloud service goes down, the integration breaks. Know this before you build a critical automation around a cloud-dependent device.
- Some can't be configured in the UI and require manual YAML configuration.
- Some are community-created and not officially supported. If the developer stops maintaining it, it can break when Home Assistant updates. Check before you commit.
Before buying any new smart device, look it up in the Home Assistant integrations directory. Finding out a device doesn't integrate well after you've bought it is an expensive lesson.
Automations are repeatable sets of actions that run automatically based on what's happening in your home. Every automation has three parts:
- Trigger — the event that starts the automation: a motion sensor activates, a door opens, the sun sets, the clock hits 10pm.
- Condition — an optional check that must be true before the action runs. The motion sensor triggers, but only run the action if it's after sunset.
- Action — what actually happens: turn on a light, send a notification, lock the front door, run a script.
The logic is: when this happens → if this is true → do this. Home Assistant has a built-in automation wizard that walks you through building these step by step.
Scripts look similar to automations but serve a different
purpose. They're a set of repeatable actions with no trigger — they can only be run
manually or called by an automation. The value is reusability. Say you want to set
up movie night: dim the lights, turn the TV on, set the surround sound. You could
build all of those steps into every automation that needs them, or you could write
one script — movie_night — and call it wherever it's needed. When you
want to change how movie night works, you update one script instead of five
automations.
Scenes are a simpler version of scripts focused specifically on setting devices to a predefined state. You're not running a sequence of actions — you're saving a snapshot of what you want things to look like and restoring it on demand. The lights at 40% warm white, the TV on input 2, the thermostat at 68°F. One action, everything goes to that state.
Adding your first integration
Navigate to Settings → Devices & Services. The integrations page shows everything you've added, and Home Assistant may have already discovered some devices on your network automatically during setup. If anything is waiting in a discovered state, you'll see it here — click Add and follow the prompts.
To add a new integration manually, hit the Add Integration button in the bottom right corner. Integrations are organised alphabetically by brand. Some brands have a single integration; others (Amazon, Google) have several. I'd suggest doing an inventory of the smart devices you already own and looking up the integration for each one before you start.
For this walkthrough, I added the Synology NAS integration — it was already discovered on my network, so it was just a matter of clicking through the confirmation. Once it's connected, selecting the integration shows you the devices, services, and entities it provides, the documentation link, and any known issues. Clicking into a specific device shows the log book of recent state changes, and which automations, scenes, and scripts are currently using it — genuinely useful for debugging when something isn't behaving as expected.
HACS: the community integration store
Beyond the official integrations, there's a parallel ecosystem called HACS — the Home Assistant Community Store. It's a curated repository of community-built integrations, dashboard cards, and themes that extend what Home Assistant can do significantly. Setting it up takes a few steps, so I'll link the official HACS documentation rather than rush through it here. Get the basics working first, add HACS when you're comfortable.
Creating your first automation
Go to Settings → Automations & Scenes, then click Create Automation and choose Create from scratch.
Here's the automation I built in the video as a concrete example. The goal: when motion is detected on the back porch, send a notification to my phone.
- Trigger: Back porch motion detection turns on
- Condition: None — any motion, any time
- Action: Send notification via mobile app, to my specific device, with a message and title
Once saved, you don't have to wait for actual motion to test it. Go back to the automations list, find the automation, click the ellipsis (…), and hit Run Action. The notification fires immediately. You've confirmed the whole pipeline works before relying on it for anything real.
This is a deliberately simple automation. A more useful version might add a condition — only notify me if it's after sunset, or if the back door is closed so I'm not notified when I'm already outside. Start simple and add complexity once the basics work. A dedicated video on automations and complex logic is coming — there's enough to fill an entire episode.
Building your first dashboard
The dashboard is your day-to-day interface once everything is set up. By default, Home Assistant generates one automatically, pulling in pretty much every device and entity it knows about. This is useful for a quick look at everything, but it becomes unusable fast once you have more than a handful of devices.
My recommendation: leave the autogenerated dashboard in place and start a new one.
Go to Settings → Dashboards → Add Dashboard. Give it a title. Home Assistant will auto-populate a URL slug — you can change it, but it needs to be unique. Two options worth noting: Admin only limits visibility to admin users, and Show in sidebar (on by default) can be unchecked to create hidden dashboards accessible only by direct URL — useful for dashboards you want to share via a link without cluttering the sidebar for every household member.
Once the dashboard is created, open it from the sidebar and click the pencil icon in the top right to enter edit mode. Here's how the structure works:
- Views work like browser tabs — each view is its own page within the dashboard, with its own layout and its own cards. Views can also have subviews, which don't appear in the tab bar but have a back button. Useful when you want a card to open into an expanded control panel on tap.
- Sections live within a view — one or more columns of cards that you can organise into logical groups.
- Cards are the individual display elements: status displays, buttons, sliders, media players, camera feeds, weather widgets, navigation buttons. Cards display entity states, group multiple entities, or trigger actions.
When adding a card, you can select a type and configure it manually, or use the entity tab — pick the entities you want to display and Home Assistant will suggest an appropriate card type. The latter is faster when you're just getting started.
The built-in card library handles everyday use well. If you want to go further — custom gauges, animated displays, room cards with floor plan overlays — HACS has a large library of community-created cards. I'll do a full dashboard deep-dive in a later video.
What's next
At this point you have a running Home Assistant installation, a grasp of the core concepts, at least one integration connected, your first automation working, and a dashboard started. That's the foundation. Here's where to go from here:
- Inventory your devices and check the integrations directory for each one. Add them methodically, verify each is working before moving to the next.
- Build automations that solve real problems in your house — not demo automations. Start with one or two things that would genuinely make your day easier.
- Learn HACS when the standard integrations don't cover something you need.
- Don't over-engineer the dashboard early. A simple, useful dashboard beats a beautiful one that takes three taps to find anything.
Upcoming videos will go deeper on automations and complex logic, and do a proper walkthrough of building dashboards that work for a real household. If there's a specific part of Home Assistant you want covered, drop it in the comments on the video.