Skip to content

HormCodes/smart-home-talk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Smart Home Talk

Zdroje pro "live coding demo" v rámci přednášky "Smart Home Trochu jinak"...

Home Assistant

Pokud instalujete na Raspberry Pi, doporučuji jako hassbian image, ale je možný i Docker (ten lze nainstalovat podle tohoto návodu):

docker run -d --name="home-assistant" -v `pwd`/config:/config -e "TZ=Europe/Prague" -p 8123:8123 homeassistant/home-assistant

Tímto příkazem si vytvoříme docker container s prolinkovanou složkou konfigurace. Pokud vše proběhlo správně, měla by se vám vytvořit složka config a na localhost:8123 by platforma měla běžet.

Sensory

Světla

Pouze jako demo. Do configuration.yaml vložíme tyto řádky:

light:
  - platform: demo

Zkontrolujeme konfiguraci a restartujeme platformu...

Teplota, Termostat, Spínání kotle...

Pod sensor: přidáme:

  - platform: demo
  - platform: demo

Zkontrolujeme konfiguraci a restartujeme platformu...

Vytvoříme průměrnou teplotu. Opět pod sensor: přidáme:

  - platform: template
    sensors:
      average_temperature:
      unit_of_measurement: "°C"
      value_template: >-
        {{ (float(states.sensor.outside_temperature.state) + float(states.sensor.outside_temperature_2.state)) / 2 | round(2) }}

Zkontrolujeme konfiguraci a restartujeme platformu...

Zobrazila se vám chyba v konfiguraci? Pokud ano, opravíme a opět restartujeme...

Přidáme komponentu pro spínání kotle (normálně jako GPIO, nyní jako boolean komponentu):

input_boolean:
  heating_enabled:

Zkontrolujeme konfiguraci a restartujeme platformu...

Přidáme termostat:

climate:
  - platform: generic_thermostat
    name: Thermostat
    heater: input_boolean.heating_enabled
    target_sensor: sensor.average_temperature
    min_temp: 10
    target_temp: 26
    cold_tolerance: 0.5
    hot_tolerance: 0
    initial_operation_mode: "auto"

Jméno termostatu tvoří pak následně jeho entity_id.

Zkontrolujeme konfiguraci a restartujeme platformu...

Skupiny

Některé skupiny jsou v základu vytvořené nebo si můžeme vytvářet vlastní v souboru groups.yaml:

thermostats:
  view: false
  entities: 
    - climate.thermostat

Uživatelské rozhraní

Pro GUI využijeme modul Lovelace GUI. Ten nám dovolí GUI konfigurovat opět pomocí psané konfigurace...

Přidáme:

lovelace:
  mode: yaml

A vytvoříme nový soubor ui-lovelace.yml:

title: Our Home
views:
  - title: Home
    path: default
    cards: 
      - type: thermostat
        entity: climate.thermostat
        name: Bedroom
      - type: horizontal-stack
        cards:
          - type: light
            name: Bedroom
            entity: light.bed_light
          - type: light
            name: Kitchen
            entity: light.kitchen_lights
      - type: history-graph
        entities: 
          - entity: sensor.average_temperature
            name: Average Temperature
          - entity: sensor.outside_temperature
            name: Outside Temperature
        hours_to_show: 48
        title: Temperature last 2 days
  - title: Domov
    path: default
    cards: 
      - type: thermostat
        entity: climate.thermostat
        name: Ložnice
      - type: horizontal-stack
        cards:
          - type: light
            name: Ložnice
            entity: light.bed_light
          - type: light
            name: Kuchyně
            entity: light.kitchen_lights
      - type: history-graph
        entities: 
          - entity: sensor.average_temperature
            name: Průměrná teplota
          - entity: sensor.outside_temperature
            name: Venkovní teplota
        hours_to_show: 48
        title: Teploty za poslední 2 dny
        

Zkontrolujeme konfiguraci a restartujeme platformu (a možná budeme muset v nastavení Lovelace aktivovat)...

Automatizace

Spuštění na základě změny stavu

- alias: 'Light state change sets wanted temperature'
  trigger:
    platform: state
    entity_id: light.bed_light
  action: 
    - service: climate.set_temperature
      data_template:
        entity_id: 
          - group.thermostats
        temperature: 22

Spuštění na základě změny času...

- alias: 'Afternoon'
  trigger:
    platform: time_pattern
    hours: '/1'
  condition:
    condition: 'time'
    after: '16:00:00'
    before: '22:00:00'
  action: 
    - service: climate.set_temperature
      data_template:
        entity_id: 
          - group.thermostats
        temperature: 25

Export Dat

$ sqlite3 config/home-assistant_v2.db
select state,created from states where entity_id = "sensor.average_temperature";

About

Sources for "live coding demo" for talk about Smart Home

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published