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

  1. Enable advanced mode
  2. Check configuration.yaml
  3. Restart core
  4. wait :)
  5. Update dashboard
  6. Create automation

Different Dashboards

https://www.home-assistant.io

HomeAssistant Knowledge

10%

Home Assistant 2021

By tomaslorinc

Home Assistant 2021

  • 380