# Youtube pořad
Opravdu chytrá domácnost
# Každá deklarace může být v
konfiguračním souboru pouze jednou, uvnitř pak odsazením lze
přidávat další stejného typu.
# Sonoff LAN integrace HACS
#
video jak přidat HACS
sonoff:
# deklarace sonoff
username: !secret_email
password: !secret_heslo
sensors: [power]
# typ senzorů, co chci najít a přidat
force_update: [power] # typ senzorů,
co chci donutit častěji aktualizovat
scan_interval: '00:00:05' # aktualizovat stavy každých 5
vteřin
reload: always
# aktualizovat zařízení z eWeLink každý restart
mode: local
# LAN mód, ale nemusí v něm fungovat všechna zařízení
# přetypování entit na jiný typ (device_class)
devices:
10008c8efa:
# označení senzoru ze .sonoff.json souboru v adresáři HA
device_class: [light, fan] #
dvojspínač - první bude světlo a druhý větrák
name: Koupelna
# nové jméno spínače
10007558d4:
device_class: light
name: Kuchyně
# Sonoff Bridge
fbridge:
Chodba:
# jméno senzoru v eWeLink aplikaci
device_class: motion # typ sensoru:
door, window nebo motion
timeout: 120
# doba ve vteřinách, po které se sám přepne stav na OFF
# Tasmota integrace
# přetypování entit na světlo
light: # deklarace světla
- platform: switch
# původní typ
name: "Koupelna"
# nový název entity bude "light.koupelna"
entity_id: switch.koupelna_svetlo # původní entita
# přetypování entit na větrák
fan:
# deklarace větráku
- platform: template # lze jen za pomoci šablony
fans: # přidáme více větráků dle šablony
koupelna:
# nový název entity bude "fan.koupelna"
friendly_name: "Záchod" # uživatelsky přívětivější název jen pro
zobrazování
value_template: "{{ states('switch.zachod_vetrak') }}" # stav
entity přes šablonu hodnoty
turn_on:
# co představuje stav zapnutý
service: switch.turn_on
# služba zapni spínač
entity_id: switch.koupelna_vetrak # entita větrák
turn_off:
# co představuje stav vypnutý
service: switch.turn_off
# služba vypni spínač
entity_id: switch.koupelna_vetrak # entita větrák
# Tasmota Bridge (Sonoff původně)
binary_sensor:
# deklarace binárního senzoru
- platform: mqtt
# typ komunikace
device_class: motion # typ
sensoru: motion, door, window
name: 'pohyb_chodba' #
pojmenujte entitu
payload_on: "EC2D2E" # kód
sensoru pro zapnutí
payload_off: "EC2D2Eoff" # kód sensoru pro vypnutí
(nepovinný)
off_delay: 20
# doba do autovypnutí ve vteřinách; 0 zůstane zapnuto
state_topic: "tele/bridge/RESULT"
# konstanta
value_template: '{{ value_json.RfReceived.Data }}' #
konstanta
# Variable proměnné integrace HACS
var: # deklarace proměnné
window_left: # jméno proměnné
value: false # výchozí hodnota
window_right:
value: false
volume_last:
value: 4
volume_mute
value: false
video_id:
value: ''
video_position:
value: 0
mirror_program:
value: 1
mirror_youtube:
value: 1
input_number:
# Posuvník hlasitosti
volume_now:
name: Hlasitost
initial: 4
min: 1
max: 7
step: 1
icon: mdi:volume-high
# Telegram komunikace
#
video jak vytvořit bota
telegram_bot:
# deklarace robota telegramu
- platform: polling
api_key: !secret_key
# vygenerovaný api klíč
allowed_chat_ids: 123456789 # přidělené komunikační
ID
notify:
# deklarace komunikačního klienta
- name: telegram
# jméno klienta
platform: telegram
# služba klienta
chat_id: 123456789
# id pro klienta
climate:
# deklarace termostatu
# Termostat
- platform: generic_thermostat
# softwarový termostat
name: Obývák
# jméno místnost termostatu
heater: switch.topeni
# spínač hlavice topného tělesa
target_sensor: sensor.air98_temperature # senzor
teploty stejné místnosti
min_temp: 20
# minimální teplota na termostatu
max_temp: 24
# maximální teplota na termostatu
# target_temp: 23
# požadovaná teplota nastavená po restartu HA
cold_tolerance: 0.5
# topit jakmile teplota klesne o 0,5°C pod požadovanou
hot_tolerance: 0
# při dosáhnutí požadované teploty přestat topit
min_cycle_duration:
# pokud bylo topení např. zapnuto, tak nemůže být
seconds: 30
# dalších 30 sekund vypnuto - přepnuto
initial_hvac_mode: "off" # co má termostat dělat
po restartu - topit "heat"
away_temp: 15
# mód Pryč(Away) požadovaná teplota, když nejste doma
precision: 0.1
# zohlednit nepřesnost měření teploty
ac_mode: false
# zařízení je klimatizace, netopí, ale chladí
sensor:
# deklarace senzoru
# Youtube kanál integrace HACS
- platform: youtube
# senzor youtube kanálu
channel_id: UC-DzNfMTLCmUTXfKdNb5mzQ
# adresu kanálu zkopírujte z konce webové adresy youtube kanálu
- platform: template
# za základě šablony
sensors: # přidáme více senzorů dle
šablony
# Denní doba template sensor
period_of_day:
# jméno senzoru
friendly_name: "Denní doba" # uživatelsky přívětivější
název
value_template: >-
# stav entity přes šablonu hodnoty
{% if
(as_timestamp(states.sun.sun.attributes.next_dusk)) -
(as_timestamp(states.sun.sun.attributes.next_setting)) < 0 %}
dusk
{% elif (as_timestamp(states.sun.sun.attributes.next_rising)) -
(as_timestamp(states.sun.sun.attributes.next_dawn)) < 0 %}
dawn
{% elif (states.sun.sun.attributes.elevation) < -4 %}
night
{% else %}
day
{% endif %}
icon_template: >-
# určení ikony na základě stavu entity přes šablonu hodnoty
{% if (as_timestamp(states.sun.sun.attributes.next_dusk)) -
(as_timestamp(states.sun.sun.attributes.next_setting)) < 0 %}
mdi:weather-sunset-down
{% elif (as_timestamp(states.sun.sun.attributes.next_rising)) -
(as_timestamp(states.sun.sun.attributes.next_dawn)) < 0 %}
mdi:weather-sunset-up
{% elif (states.sun.sun.attributes.elevation) < -4 %}
mdi:weather-night
{% else %}
mdi:weather-sunny
{% endif %}
# Semafor ovzduší venku
air_color:
friendly_name: "Semafor ovzduší"
value_template: >-
{% if states('sensor.castice_1')|float > 55 or
states('sensor.castice_25')|float > 70 or
states('sensor.castice_10')|float > 100 %}
red
{% elif states('sensor.castice_1')|float > 25 or
states('sensor.castice_25')|float > 35 or
states('sensor.castice_10')|float > 45 %}
yellow
{% elif states('sensor.castice_1')|float > 0 and
states('sensor.castice_25')|float > 0 and
states('sensor.castice_10')|float > 0 %}
green
{% else %}
{% endif %}
icon_template: mdi:traffic-light
# Tlak přepočtený na hladinu moře
tlak_venku:
device_class: pressure
#unit_of_measurement: 'hPa' # jednotka míry zmenšuje písmo a
čitelnost hodnoty, často je lepší ji neuvádět
friendly_name: "Tlak přepočtený na hladinu moře"
value_template: "{{ ( states('sensor.tlak')|float /
(1-0.0065*360/ (states('sensor.teplota_venku')|float + 273.15) )
** (5.255) )|round(0) }}"
# uRADMonitor senzory SMOGGIE-PM
- platform: rest
# typ komunikace
device_class: temperature
# typ senzoru
resource: http://192.168.0.177/j # IP adresa senzoru
name: Teplota uRadMonitor
# jméno senzoru
unit_of_measurement: "°C"
# jednotka míry
value_template: '{{ (value_json.data.temperature -
3.7)|round(1) }}'
# od hodnoty senzoru odečtena kalibrační hodnota 3,7 a to
celé round(1): zaokrouhleno na jedno desetinné místo
- platform: rest
device_class: humidity
resource: http://192.168.0.177/j
name: Vlhkost
unit_of_measurement: "%"
value_template: '{{ value_json.data.humidity|float|round(2) +
9.45 }}'
# float: hodnota přetypována na číslo s desetinnou čárkou
- platform: rest
device_class: pressure
resource: http://192.168.0.177/j
name: Tlak
unit_of_measurement: "Pa"
value_template: '{{ ((value_json.data.pressure|float - 360) /
100) }}'
- platform: rest
resource: http://192.168.0.177/j
name: Částice 1
unit_of_measurement: "µg/m³"
value_template: '{{ value_json.data.pm1 }}'
- platform: rest
resource: http://192.168.0.177/j
name: Částice 25
unit_of_measurement: "µg/m³"
value_template: '{{ value_json.data.pm25 }}'
- platform: rest
resource: http://192.168.0.177/j
name: Částice 10
unit_of_measurement: "µg/m³"
value_template: '{{ value_json.data.pm10 }}'
rest_command:
# Vektiva Smarwi
window_open: # otevření ventilace
url: 'http://192.168.0.199/cmd/open'
window_close: # zavření ventilace
url: 'http://192.168.0.199/cmd/close'
window_stop: # zastavení pohybu
url: 'http://192.168.0.199/cmd/stop'
window_fix: # odblokování okna pro manuální
otevření; zablokujete zavřením
url: 'http://192.168.0.199/cmd/fix'
switch:
# deklarace spínače
- platform: template # na základě šablony
switches:
# přidáme více spínačů šablony
# okno Vektiva
smarwi:
# jméno vlastního spínače
friendly_name: "Okno otevřít"
value_template: "{{ is_state('var.window_right', 'True')
}}" # stav pro turn_on
turn_on:
# co se stane při sepnutí
- condition: state # vždy zabraňte opakovanému spuštění,
nemusíte to pak dělat v automatizacích
entity_id: var.window_right
state: 'False'
- service: var.set
data:
entity_id: var.window_right
value: True
- service: rest_command.window_open # otevření okna
- service: climate.set_preset_mode # přerušení
topení - využijte preset_mode
entity_id: climate.obyvak
# spínání si pak nechte pro časovou logiku
data:
preset_mode: "away"
turn_off:
# co se stane při vypnutí
- condition: state
entity_id: var.window_right
state: 'True'
- service: var.set
data:
entity_id: var.window_right
value: False
- service: rest_command.window_close
- service: climate.set_preset_mode
entity_id: climate.obyvak
data:
preset_mode: "none"
icon_template: >-
{% if is_state('var.window_right', 'True') %}
mdi:window-open-variant
{% else %}
mdi:window-closed-variant
{% endif %}
# zvuk Windows
volume_mute:
friendly_name: "Zvuk vypnut"
value_template: "{{
is_state('var.volume_mute', 'True') }}"
turn_on:
- condition: state
entity_id: var.volume_mute
state: 'False'
- service: var.set
data:
entity_id: var.volume_mute
value: True
- service: mqtt.publish
data:
topic: pc/mute
turn_off:
- condition: state
entity_id: var.volume_mute
state: 'True'
- service: var.set
data:
entity_id: var.volume_mute
value: False
- service: mqtt.publish
data:
topic: pc/mute
icon_template: >-
{% if is_state('var.volume_mute',
'True') %}
mdi:volume-mute
{% else %}
mdi:volume-low
{% endif %}
# PC vypínač
computer:
friendly_name: "Počítač"
value_template: "{{
states('sensor.zasuvka_pc_energy_power')|int > 10 }}"
turn_on:
- condition: state
entity_id: switch.computer
state: 'off'
- service: switch.turn_on
entity_id: switch.pc
turn_off:
- condition: state
entity_id: switch.computer
state: 'on'
- service: switch.turn_on
entity_id: switch.pc
icon_template: >-
{% if
states('sensor.zasuvka_pc_energy_power')|int > 10 %}
mdi:monitor-dashboard
{% else %}
mdi:monitor-off
{% endif %}
# Deklarujte pouze pokud je třeba auto-login. Pokud
nevíte, co děláte, nedělejte to.
homeassistant:
auth_providers:
- type: trusted_networks
# Schválené IP adresy
trusted_networks:
- 192.168.0.111
# IP adresa Chromecastu
trusted_users:
192.168.0.111: bb4013f64d8s4e90bcg25316h4sxc257 # ID vašeho
uživatele, ne jméno uživatel
allow_bypass_login: true # Přístup
bez potřeby loginu (auto-login)
- type: homeassistant
# Nutnost nakonci schválit přístup pro HA (jinak user error)