Home Assistant 101 - Home Automation for Beginners
Oct 25, 2024
Home Assistant 101 Guide
Home Assistant 101
Installation Options
- Plug and Play - Home Assistant Green: https://geni.us/XF8r7AH
- Raspberry Pi Install: https://geni.us/z0BVIc
- Virtual Machine (hardware varies)
Supplies List
- Raspberry Pi 5 (kit): https://geni.us/z0BVIc
- Raspberry Pi 4 (kit): https://geni.us/mzJF55
- Zigbee Adapter (Ethernet): https://geni.us/ufDk8
- Zigbee Adapter (USB): https://geni.us/HfPvU
IoT Devices (recommended)
- Light Bulbs (Zigbee): https://geni.us/pjr0BB
- Contact Sensor (Zigbee): https://geni.us/ufdgFx
- Proximity (motion) Sensor (Zigbee): https://geni.us/GPfLHN
- Phillips Hue: https://geni.us/x4PERqP
Raspberry Pi Install
Step 1
- Download Raspberry Pi Imager: https://www.raspberrypi.com/software/
- Image your SD card using the Home Assistant OS option in the imager.
Step 2
- Insert the SD card, power it up, and connect your Ethernet cable.
Virtual Machine Install (Proxmox)
Follow this link to install Home Assistant on a VM: https://forum.proxmox.com/threads/guide-install-home-assistant-os-in-a-vm.143251/
The Setup
Once powered on, Home Assistant should automatically be accessible at homeassistant.local:8123 via mDNS. If this doesn’t work, check your router for the assigned IP address and access Home Assistant at ipaddress:8123
.
Adding IoT Devices
To get started with automating your home, you'll want to add some IoT devices through integrations. Integrations are what make it possible for Home Assistant to communicate with your devices, giving you centralized control over everything.
What Are Integrations?
Integrations are the link between Home Assistant and your IoT devices, services, or protocols. For example, an integration can connect Home Assistant to your Zigbee network, letting you control lights, plugs, and other smart devices.
Here’s how you add an integration:
- From your Home Assistant dashboard, navigate to Settings.
- Select Devices & Services.
- Click the Add Integration button and search for the device type or brand you want to add.
If you're using Philips Hue lights, you can use the Philips Hue integration for added convenience. Simply search for 'Philips Hue' in the integrations list, and follow the prompts to connect your lights. This method allows for seamless control of your Philips Hue lights directly within Home Assistant.
Devices, Entities, and Helpers
Home Assistant’s structure can be broken down into devices, entities, and helpers. Here’s what they mean:
- Devices: Physical hardware added to Home Assistant, like light switches, thermostats, or smart plugs.
- Entities: Individual controllable features of a device. For instance, a smart bulb might have entities for brightness, color, and power state.
- Helpers: Tools to enhance control and automation. For example, a helper can be a slider for adjusting brightness or a toggle for setting modes. Helpers make automation more flexible and dynamic.
Automations
Automations let you create rules for how your devices should react to various events. For example, you can make your lights turn on when motion is detected or set your thermostat to adjust based on the time of day.
Automations in Home Assistant have three key components:
- Trigger: What starts the automation (e.g., a sensor detecting movement).
- Condition: Conditions that must be met before the action occurs (e.g., only after sunset).
- Action: What happens when the automation is triggered (e.g., lights turn on).
To create an automation:
- Go to Settings > Automations & Scenes.
- Click Add Automation.
- Use the wizard to select your triggers, conditions, and actions.
Scenes
Scenes allow you to control multiple devices with one command, setting them to specific states simultaneously. For instance, a "Movie Night" scene could dim your lights, lower the blinds, and set your thermostat—all at once.
To create a scene:
- Navigate to Settings > Automations & Scenes.
- Select Scenes and click Add Scene.
- Set the desired states for each device in the scene.
Dashboards and Customization
Your dashboard is what you see when you log into Home Assistant. It provides a snapshot of all your devices and allows you to control them. You can fully customize this dashboard to suit your needs.
To customize your dashboard:
- From the Home Assistant main screen, click the Edit Dashboard button.
- Add cards to represent your devices, entities, or scenes.
- Rearrange the layout to match your preferences.
With Home Assistant, you have complete control over how your smart home functions. From integrations and automations to custom scenes and dashboards, it’s all about building an experience that suits you.
Automation Examples
alias: opt_detect
description: Detecting if there is a compromised bathroom.
triggers:
- trigger: state
entity_id:
- binary_sensor.guest_bathroom_proximity_motion
from: "on"
to: "off"
conditions:
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.guest_bathroom_door_opening
state: "on"
actions:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.opt_switch
mode: single
alias: opt_detect_off
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.toilet_lid_opening
from: "off"
to: "on"
- trigger: state
entity_id:
- binary_sensor.guest_bathroom_door_opening
from: "on"
to: "off"
conditions:
- condition: state
entity_id: binary_sensor.toilet_lid_opening
state: "on"
enabled: false
- condition: state
entity_id: binary_sensor.guest_bathroom_door_opening
state: "off"
- condition: state
entity_id: input_boolean.opt_switch
state: "on"
actions:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.opt_switch
mode: single
alias: opt_run
description: This automation runs Operation Toilet when the opt_switch is on.
triggers:
- trigger: state
entity_id:
- input_boolean.opt_switch
from: "off"
to: "on"
conditions: []
actions:
- action: media_player.turn_on
metadata: {}
data: {}
target:
entity_id:
- media_player.living_room1225
- media_player.g
- action: media_player.select_source
metadata: {}
data:
source: Plex
target:
entity_id:
- media_player.living_room1225
- media_player.g
- action: light.turn_on
metadata: {}
data:
rgb_color:
- 245
- 0
- 0
brightness_pct: 100
target:
entity_id:
- light.master_lights
- light.the_downstairs
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.unifi_network_operation_toilet
- parallel:
- repeat:
sequence:
- action: media_player.play_media
metadata:
title: ALERT - Toilet Message (2024)
thumbnail: >-
https://10-7-1-21.ed7aa413e3314a13881f5073b93f4030.plex.direct:32400/library/metadata/9971/thumb/1728925664?X-Plex-Token=o-7nQbcnLs9H2gtmEA8c
media_class: movie
children_media_class: null
navigateIds:
- {}
- media_content_type: library
media_content_id: plex://71fbca2a8bf590614f63142155d1be9ae7a762b5/11
data:
media_content_id: plex://71fbca2a8bf590614f63142155d1be9ae7a762b5/9971
media_content_type: movie
target:
entity_id: media_player.master_bedroom_plex
- action: media_player.play_media
metadata:
title: ALERT - Toilet Message (2024)
thumbnail: >-
https://10-7-1-21.ed7aa413e3314a13881f5073b93f4030.plex.direct:32400/library/metadata/9971/thumb/1728925664?X-Plex-Token=o-7nQbcnLs9H2gtmEA8c
media_class: movie
children_media_class: null
navigateIds:
- {}
- media_content_type: library
media_content_id: plex://71fbca2a8bf590614f63142155d1be9ae7a762b5/11
data:
media_content_id: plex://71fbca2a8bf590614f63142155d1be9ae7a762b5/9971
media_content_type: movie
target:
entity_id: media_player.living_room_plex_2
enabled: true
- wait_for_trigger:
- trigger: state
entity_id:
- media_player.master_bedroom_plex
from: null
to: idle
- trigger: state
entity_id:
- media_player.living_room_plex_2
from: null
to: idle
while:
- condition: state
entity_id: input_boolean.opt_switch
state: "on"
- alias: Flash Lights Red
repeat:
sequence:
- action: light.turn_on
metadata: {}
data:
flash: short
target:
entity_id:
- light.master_lights
- light.downstairs_ceiling
- delay:
hours: 0
minutes: 0
seconds: 2
milliseconds: 0
while:
- condition: state
entity_id: input_boolean.opt_switch
state: "on"
mode: single
alias: opt_return_to_normal
description: Returns everything to normal when opt switch is turned off.
triggers:
- trigger: state
entity_id:
- input_boolean.opt_switch
from: "on"
to: "off"
conditions: []
actions:
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.unifi_network_operation_toilet
- action: media_player.turn_off
metadata: {}
data: {}
target:
entity_id:
- media_player.living_room1225
- media_player.g
- action: light.turn_on
metadata: {}
data:
kelvin: 2298
target:
entity_id:
- light.master_lights
- light.downstairs_ceiling
mode: single