HomeAssistant



Open Source Home Automation
Home Assistant
HomeAssistant
Open source home automation that puts local control and privacy first.
Free
Open Source
Portable
Local
Python
Unified access
...
Companion App
HomeAssistant
Operating System
HomeAssistant
HomeAssistant
Core
- Raspberry Pi
- TinkerBoard
- Odroid
- Virtual appliance
- Docker
- venv (Python >3.8)
core is already built in OS

https://demo.home-assistant.io

BlackBox
BlackBox
BlackBox
BlackBox




Home Assistant



...


https://www.home-assistant.io/integrations/#all


45EF903DA8
192.168.1.23:443
Mobile App
Home Assistant

light.hue.living_room
state
color
brightness
saturation

10 bulbs + 1 bridge = 550 EUR

zigbee


45EF903DA8
192.168.1.23:443
Mobile App
Home Assistant

light.hue.living_room
state
color
brightness
saturation

10 bulbs + 1 bridge = 160 EUR



currently not possible
zigbee

45EF903DA8
Home Assistant

light.lidl.living_room
state
color
brightness
saturation

10 bulbs + 1 bridge = 170 EUR


Conbee II
zigbee

45EF903DA8
Home Assistant

light.lidl.living_room
10 bulbs + 1 bridge = 170 EUR 550EUR


Conbee II

Mobile App
EMULATED
light.hue.living_room
zigbee



Home Assistant

light.lidl.living_room


Conbee II

Mobile App
light.hue.living_room



light.hue.kitchen
light.hue.kitchen
zigbee
zigbee
EMULATED

Installation
configuration.yaml
OS | Path |
---|---|
Home Assistant OS | /config |
Docker | /config |
OS X | ~/.homeassistant |
Linux | ~/.homeassistant |
Windows | %APPDATA%/.homeassistant |
The configuration.yaml file is the main YAML file used by Home Assistant to gather all of the information about the users desired configuration.
Visual Studio Code addon
HomeAssistant OS extensions are called addons
light:
- platform: mqtt
name: "Ziarovka 1"
command_topic: "namakana_domacnost/ziarovka_1"
- platform: mqtt
name: "Ziarovka 2"
command_topic: "namakana_domacnost/ziarovka_2"


ziarovka_1
ziarovka_2

HomeAssistant
configuration.yaml
Namakana Domacnost
MQTT








23°
23°
73%
73%
light:
- platform: mqtt
name: "Ziarovka 1"
command_topic: "namakana_domacnost/ziarovka_1"
- platform: mqtt
name: "Ziarovka 2"
command_topic: "namakana_domacnost/ziarovka_2"


ziarovka_1
ziarovka_2

HomeAssistant
configuration.yaml
Namakana Domacnost
light:
- platform: mqtt
name: "Ziarovka 1"
command_topic: "namakana_domacnost/ziarovka_1"
- platform: mqtt
name: "Ziarovka 2"
state_topic: "namakana_domacnost/ziarovka_2"
command_topic: "namakana_domacnost/ziarovka_2/set"
light:
- platform: mqtt
name: "Ziarovka 1"
command_topic: "namakana_domacnost/ziarovka_1"
- platform: mqtt
name: "Ziarovka 2"
state_topic: "namakana_domacnost/ziarovka_2"
command_topic: "namakana_domacnost/ziarovka_2/set"
qos: 2
payload_on: "zapni_sa"
payload_off: "vypni_sa"
configuration.yaml
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
light:
- platform: mqtt
name: "Master Bedroom Ceiling Light Spot"
command_topic: "namakany_den/home/bedroom/light/ceiling_light_spot/set"
state_topic: "namakany_den/home/bedroom/light/ceiling_light_spot"
- platform: mqtt
name: "Master Bedroom Ceiling Light 1"
command_topic: "namakany_den/home/bedroom/light/ceiling_light_1/set"
state_topic: "namakany_den/home/bedroom/light/ceiling_light_1"
brightness_command_topic: "namakany_den/home/bedroom/light/ceiling_light_1/brightness/set"
brightness_state_topic: "namakany_den/home/bedroom/light/ceiling_light_1/brightness"
- platform: mqtt
unique_id: "NEURON-1_3.07"
name: "Master Bedroom Ceiling Light 2"
command_topic: "namakany_den/home/bedroom/light/ceiling_light_2/set"
state_topic: "namakany_den/home/bedroom/light/ceiling_light_2"
payload_on: "1"
payload_off: "0"
qos: 2
- platform: group
name: All lights
entities:
- light.master_bedroom_ceiling_light_1
- light.master_bedroom_ceiling_light_2
- light.master_bedroom_ceiling_light_spot
binary_sensor:
- platform: mqtt
unique_id: NEURON-1_1.01_input"
name: Bedroom motion
state_topic: "namakany_den/home/bedroom/motion"
qos: 2
device_class: motion
Documentation
MQTT
integration
HomeAssistant Core extensions are called integrations
configuration.yaml
- don't be scared, many things will be done automatically
- USE ctrl+c and ctrl+v
- beware on syntax !!!
- check YAML before restarting core
- consider splitting


ziarovka_1
ziarovka_3

HomeAssistant
Namakana Domacnost

ziarovka_2

pir_1




Virtual House
HomeAssistant
test.mosquitto.org:1883
MQTT
3x light
1x motion sensor
3x light
1x light group
1x motion sensor
1x automation
[
{
"id": "f64da792.f41b08",
"type": "ui_switch",
"z": "f646ebb8.6f3998",
"name": "",
"label": "Ceiling light 2",
"tooltip": "",
"group": "4690d742.c49a28",
"order": 2,
"width": 0,
"height": 0,
"passthru": true,
"decouple": "false",
"topic": "",
"style": "",
"onvalue": "1",
"onvalueType": "str",
"onicon": "",
"oncolor": "",
"offvalue": "0",
"offvalueType": "str",
"officon": "",
"offcolor": "",
"x": 600,
"y": 140,
"wires": [
[
"638bafde.eb8ae8"
]
]
},
{
"id": "66342f6f.e37c28",
"type": "ui_switch",
"z": "f646ebb8.6f3998",
"name": "",
"label": "Spot Light",
"tooltip": "",
"group": "4690d742.c49a28",
"order": 1,
"width": 0,
"height": 0,
"passthru": true,
"decouple": "false",
"topic": "",
"style": "",
"onvalue": "ON",
"onvalueType": "str",
"onicon": "",
"oncolor": "",
"offvalue": "OFF",
"offvalueType": "str",
"officon": "",
"offcolor": "",
"x": 590,
"y": 180,
"wires": [
[
"b909abfe.03b0f8"
]
]
},
{
"id": "666f43ba.898a64",
"type": "ui_switch",
"z": "f646ebb8.6f3998",
"name": "",
"label": "Ceiling light 1",
"tooltip": "",
"group": "4690d742.c49a28",
"order": 5,
"width": 0,
"height": 0,
"passthru": true,
"decouple": "false",
"topic": "",
"style": "",
"onvalue": "ON",
"onvalueType": "str",
"onicon": "",
"oncolor": "",
"offvalue": "OFF",
"offvalueType": "str",
"officon": "",
"offcolor": "",
"x": 600,
"y": 100,
"wires": [
[
"37d63375.8386b4"
]
]
},
{
"id": "1a132084.6088d7",
"type": "mqtt in",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_1/set",
"qos": "0",
"datatype": "auto",
"broker": "630b9a9e.ae7fdc",
"x": 240,
"y": 100,
"wires": [
[
"666f43ba.898a64"
]
]
},
{
"id": "4b1a4dde.3afd8c",
"type": "mqtt in",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_2/set",
"qos": "0",
"datatype": "auto",
"broker": "630b9a9e.ae7fdc",
"x": 240,
"y": 140,
"wires": [
[
"f64da792.f41b08"
]
]
},
{
"id": "e17d4cbb.8c802",
"type": "mqtt in",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_spot/set",
"qos": "0",
"datatype": "auto",
"broker": "630b9a9e.ae7fdc",
"x": 250,
"y": 180,
"wires": [
[
"66342f6f.e37c28"
]
]
},
{
"id": "37d63375.8386b4",
"type": "mqtt out",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_1",
"qos": "0",
"retain": "",
"broker": "630b9a9e.ae7fdc",
"x": 1150,
"y": 100,
"wires": []
},
{
"id": "638bafde.eb8ae8",
"type": "mqtt out",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_2",
"qos": "2",
"retain": "",
"broker": "630b9a9e.ae7fdc",
"x": 1150,
"y": 140,
"wires": []
},
{
"id": "b909abfe.03b0f8",
"type": "mqtt out",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_spot",
"qos": "0",
"retain": "",
"broker": "630b9a9e.ae7fdc",
"x": 1160,
"y": 180,
"wires": []
},
{
"id": "88d35466.420068",
"type": "ui_button",
"z": "f646ebb8.6f3998",
"name": "",
"group": "4690d742.c49a28",
"order": 6,
"width": 0,
"height": 0,
"passthru": false,
"label": "Motion sensor",
"tooltip": "",
"color": "",
"bgcolor": "",
"icon": "directions_walk",
"payload": "",
"payloadType": "str",
"topic": "",
"x": 600,
"y": 240,
"wires": [
[
"d75e845f.259018"
]
]
},
{
"id": "866b8ec3.b5c53",
"type": "mqtt out",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/motion",
"qos": "2",
"retain": "",
"broker": "630b9a9e.ae7fdc",
"x": 1120,
"y": 240,
"wires": []
},
{
"id": "d75e845f.259018",
"type": "trigger",
"z": "f646ebb8.6f3998",
"name": "",
"op1": "ON",
"op2": "OFF",
"op1type": "str",
"op2type": "str",
"duration": "3",
"extend": false,
"overrideDelay": false,
"units": "s",
"reset": "",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 800,
"y": 240,
"wires": [
[
"866b8ec3.b5c53"
]
]
},
{
"id": "e0567db8.f116b",
"type": "ui_gauge",
"z": "f646ebb8.6f3998",
"name": "",
"group": "4690d742.c49a28",
"order": 3,
"width": 0,
"height": 0,
"gtype": "gage",
"title": "Brightness",
"label": "units",
"format": "{{value}}",
"min": 0,
"max": "255",
"colors": [
"#ffffff",
"#e6e600",
"#ffaa00"
],
"seg1": "",
"seg2": "",
"x": 970,
"y": 300,
"wires": []
},
{
"id": "a1c0dd65.c287e8",
"type": "mqtt in",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_1/brightness/set",
"qos": "0",
"datatype": "auto",
"broker": "630b9a9e.ae7fdc",
"x": 280,
"y": 300,
"wires": [
[
"e37360da.c91918"
]
]
},
{
"id": "e37360da.c91918",
"type": "ui_slider",
"z": "f646ebb8.6f3998",
"name": "",
"label": "Ceiling 1 Light Brightness",
"tooltip": "",
"group": "4690d742.c49a28",
"order": 4,
"width": 0,
"height": 0,
"passthru": true,
"outs": "all",
"topic": "",
"min": 0,
"max": "255",
"step": "10",
"x": 710,
"y": 300,
"wires": [
[
"e0567db8.f116b",
"cd0f393b.ff9dd8"
]
]
},
{
"id": "cd0f393b.ff9dd8",
"type": "mqtt out",
"z": "f646ebb8.6f3998",
"name": "",
"topic": "namakany_den/home/bedroom/light/ceiling_light_1/brightness",
"qos": "",
"retain": "",
"broker": "630b9a9e.ae7fdc",
"x": 1130,
"y": 340,
"wires": []
},
{
"id": "4690d742.c49a28",
"type": "ui_group",
"name": "Virtual House",
"tab": "29d862c5.7c4876",
"order": 1,
"disp": true,
"width": "6",
"collapse": false
},
{
"id": "630b9a9e.ae7fdc",
"type": "mqtt-broker",
"name": "",
"broker": "test.mosquitto.org",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": false,
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthRetain": "false",
"birthPayload": "",
"closeTopic": "",
"closeQos": "0",
"closeRetain": "false",
"closePayload": "",
"willTopic": "",
"willQos": "0",
"willRetain": "false",
"willPayload": ""
},
{
"id": "29d862c5.7c4876",
"type": "ui_tab",
"name": "Bedroom",
"icon": "dashboard",
"disabled": false,
"hidden": false
}
]
NodeRED
configuration.yaml
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
light:
- platform: mqtt
name: "Master Bedroom Ceiling Light Spot"
command_topic: "namakany_den/home/bedroom/light/ceiling_light_spot/set"
state_topic: "namakany_den/home/bedroom/light/ceiling_light_spot"
- platform: mqtt
name: "Master Bedroom Ceiling Light 1"
command_topic: "namakany_den/home/bedroom/light/ceiling_light_1/set"
state_topic: "namakany_den/home/bedroom/light/ceiling_light_1"
brightness_command_topic: "namakany_den/home/bedroom/light/ceiling_light_1/brightness/set"
brightness_state_topic: "namakany_den/home/bedroom/light/ceiling_light_1/brightness"
- platform: mqtt
unique_id: "NEURON-1_3.07"
name: "Master Bedroom Ceiling Light 2"
command_topic: "namakany_den/home/bedroom/light/ceiling_light_2/set"
state_topic: "namakany_den/home/bedroom/light/ceiling_light_2"
payload_on: "1"
payload_off: "0"
qos: 2
- platform: group
name: All lights
entities:
- light.master_bedroom_ceiling_light_1
- light.master_bedroom_ceiling_light_2
- light.master_bedroom_ceiling_light_spot
binary_sensor:
- platform: mqtt
unique_id: NEURON-1_1.01_input"
name: Bedroom motion
state_topic: "namakany_den/home/bedroom/motion"
qos: 2
device_class: motion
Entity
abstract representation of physical device
Component
pointer to the physical device
Thing
physical device
- light
- binary_sensor
- fan
- climate
- sensor
CookBook
- Enable advanced mode
- Check configuration.yaml
- Restart core
- wait :)
- Update dashboard
- Create automation

Different Dashboards
https://www.home-assistant.io
HomeAssistant Knowledge
10%
Home Assistant 2021
By tomaslorinc
Home Assistant 2021
- 597