sobota, 16 listopada 2019

Home Assistant - pierwsze konfiguracje i plik secrets.yaml

Dzisiaj przybliżę podstawową konfigurację komponentów w Hass.io.


Przy okazji zaznajomimy się z funkcjonalnością pliku secrets.yaml, który to umożliwia na przykład dzielenie się konfiguracją z innymi użytkownikami bez konieczności ciągłego zastępowania swoich haseł innymi tekstami.

Po pierwsze, tak jak opisałem na dole strony http://cezarowy.blogspot.com/2019/05/home-assistant-zaczynamy-instalacja-za.html - musimy edytować plik configuration.yaml.

Zawartość tego pliku (configuration.yaml) u mnie aktualnie wygląda tak jak poniżej, coraz więcej ciekawych rzeczy się pojawia.

Pozwolę sobie opisać kolejne sekcje. Nie jest to zbyt czytelne na początek, ale konieczne aby zrozumieć zasadę działania Home Assistant. Przesiadając się z Domoticz trzeba zmienić podejście, dość radykalnie. Domoticz ma 'niższy próg wejścia', bez dwóch zdań, ale gdy już 'zaskoczyłem' jak i co zrobić w Home Assistant - jestem pewien, że nie wrócę i powoli przepisuję wszystkie elementy i umieszczam je w HA. Niewiele już zostało.

W niedalekiej przyszłości moja konfiguracja znajdzie się na github, skąd będziecie mogli ją pobrać, sprawdzać, edytować i dostosować do swoich potrzeb.

Każda deklaracja 'elementu' HA, encji, integracji, itp. musi kończyć się znakiem ':'. Uważajcie na wcięcia i przed każdym restartem serwera sprawdzajcie poprawność pliku konfiguracyjnego!

homeassistant:
  # Nazwa naszej lokalizacji
  name: Dom
  # Poniżej koordynaty naszego domu, aby poprawnie odczytywać wschód/zachód słońca
  latitude: !secret home_lat
  longitude: !secret home_long
  # Poniższe mam również wpływ na zachody słońca - położenie nad poziomem morza
  elevation: 466
  # System metryczny?
  unit_system: metric
  # Strefa czasowa: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  time_zone: Europe/Warsaw

# Plik mogący zawierać dane dotyczące wyglądu ikon, polskich nazw elementów, etc.
  customize: !include customize.yaml

# Włączamy możliwość konfiguracji i wykrywania użytkowników systemu
person:

# Configure a default setup of Home Assistant (frontend, api, etc)
#default_config:
config:

# Czy włączyć automatyczne wykrywanie urządzeń? Jakie ignorować?
discovery:
  ignore:
  - philips_hue

# Deklaracja dotycząca komponentu dającego informacje o systemie na którym działa HA
https://www.home-assistant.io/integrations/system_health/  
system_health:

# Jeżeli chcecie używać aplikacji mobilnej:
https://www.home-assistant.io/integrations/mobile_app/
mobile_app:

# Aby plik był bardziej estetyczny i czytelny dobrze jest podzielić integracje na grupy.
# Do każdego z plików można dodać elementy, który mogłyby się znaleźć w głównej konfiguracji, 
# na dłuższą metę jednak będzie to 'nie do ogarnięcia'
history: !include history.yaml
logger: !include logger.yaml
sensor: !include sensors.yaml
binary_sensor: !include binary_sensors.yaml
device_tracker: !include device_tracker.yaml
media_player: !include media_player.yaml
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
switch: !include switches.yaml

# System notyfikacji. Ja postawiłem na e-maile
notify:
  - name: Cezar
    platform: smtp
    server: !secret email_server
    port: 587
    timeout: 15
    sender: !secret email_sender
    encryption: starttls
    username: !secret email_username
    password: !secret email_password
    recipient:
      - !secret email_cezar
    sender_name: My Home Assistant

# Tutaj konfiguracja kamer i podobnych elementów - na przykład wykresów pogody
camera:
  - platform: generic
    name: Weather
    still_image_url: https://www.yr.no/place/Poland/Lesser_Poland/Klucze/meteogram.svg
    content_type: 'image/svg+xml'

  - platform: mjpeg
    name: Salon
    still_image_url: http://192.168.1.155/cgi/jpg/image.cgi
    mjpeg_url: http://192.168.1.155/cgi/jpg/image.cgi
    username: admin
    password: !secret my_password
    
  - platform: mjpeg
    name: PrzedDomem
    still_image_url: http://192.168.1.156/image/jpeg.cgi
    mjpeg_url: http://192.168.1.156/image/jpeg.cgi
    username: admin
    password: !secret my_password

# Tu sobie zostawiłem konfigurację Xiaomi Air Purifier
fan:
  - platform: xiaomi_miio
    host: 192.168.1.115
    token: !secret airpurifier
    model: zhimi.airpurifier.v2

# Konfiguracja związana z iPhone
ios:

# Klient Transmission, które mam na swoim NAS postawionym na OMV  
transmission:
  host: 192.168.1.124
  username: admin
  password: !secret my_password

# System Xiaomi - dane to centralki
xiaomi_aqara:
  discovery_retry: 5
  gateways:
    - key: !secret xiaomi_gw_key

# Informacja o połączeniu internetowym    
speedtestdotnet:
  manual: false
  monitored_conditions:
    - download
    - upload
    - ping

# Pogoda    
weather:
  - platform: darksky
    api_key: !secret dark_sky_api

# Token github to Home Assistant Community Store
hacs:
  token: !secret github

Zawartość pliku secrets.yaml:

home_lat: xx.xxxx
home_long: xx.xxxx
my_password: xxxx
xiaomi_gw_key: xxxx
dark_sky_api: xxxxx
mqtt_broker_ip: xxxx
mqtt_user: xxx
mqtt_pass: xxxx
airpurifier: xxx
github: xxxxxx
airly_api_key: xxxx
burze_dzis_net.api_key: xxxx
malina3_ip: xxx.xxx.xxx.xxx
iphone_adam: xxx.xxx.xxx.xxx
mibox_ip: xxx.xxx.xxx.xxx
email_password: xxxxx
email_cezar: xxxxxx@gmail.com
email_server: mail.xxxxxxx.pl
email_sender: xxxx@xxxxx.pl
email_username: xxxxxxx

A history.yaml wygląda z kolei na przykład tak:

include:
  entities:
    - sensor.speedtest_download
    - sensor.speedtest_ping
    - sensor.speedtest_upload
    - person.Cezar

Plik binary_sensors:

- platform: ping
  host: 192.168.1.200
  name: raspberry_status
  count: 2
  scan_interval: 180

- platform: workday
  country: "PL"

- platform: template
  sensors:
    playstation_status:
      value_template: "{{ is_state('device_tracker.PS4', 'home') }}"
      friendly_name: "PlayStation 4"
    tv_status:
      value_template: "{{ is_state('device_tracker.SamsungTV', 'home') }}"
      friendly_name: "Telewizor"
    nas_status:
      value_template: "{{ is_state('device_tracker.OMVCezar', 'home') }}"
      friendly_name: "NAS"

4 komentarze:

  1. Pilnie śledzę wszystkie Twoje wpisy i chwała Ci za to. Sam właśnie się przesiadam z Domoticza i jak na razie to doznałem szoku, ale powoli się ogarniam. Zejdzie jeszcze pewnie długo, ale dzięki Tobie początki są łatwiejsze.
    Pozdrawiam
    Sebastian

    OdpowiedzUsuń
    Odpowiedzi
    1. Proza życia i chwilowy przeskok na konsole retro trochę mnie odciągnęły od Home Assistant, ale kilka tygodni temu wróciłem do pracy nad nim i szlifuję swój system. Jestem z niego już bardzo zadowolony, co będę opisał.

      Usuń
  2. Jak uruchomiłeś burze na dziś? Udało mi się je dodać ale mam ich status jako wyłączone

    OdpowiedzUsuń
    Odpowiedzi
    1. Hmmm, może nic się nie dzieje? Piszesz o statusach czujników?

      Usuń