Tomas Lorinc

tomas.lorinc@gmail.com

IoT specialist

Programmer

Trainer

Rapid prototyper

if (!☕) cup.refill();

Role

Name

Motivation

HomeAssistant

HomeAssistant

Smart Home

Inteligent Home

uses computing power, machine learning and predictive technology to make complex decisions based on the data they gather   

uses internet connected devices to control and monitor appliances and systems like security, heating and lighting. Smart home technology, can help to make our homes more secure, comfortable and energy efficient

Smart Home

Basket of remotes

Tens of apps

Hub for everything

Data security

Lack of support

Price

problems

Inteligent Home

Inteligent Home

Designed as IH

Everything connected

Different wirings

Local server

One App

Open Source Home Automation

Home Assistant

BlackBox

BlackBox

BlackBox

BlackBox

Home Assistant

...

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

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

https://demo.home-assistant.io

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

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

Let's not forget our Brothers 

https://www.home-assistant.io

HomeAssistant Knowledge

10%

Thank
you

Home Assistant 2021

By tomaslorinc

Home Assistant 2021

  • 1,098