Home Assistant – Jak ułożyć dane w kartach aby były tak jak chcemy – tips and tricks

Powitać.
Jednym z potężnych i niezaprzeczalnych plusów Home Assistant jest możliwość jego dostosowania do naszych potrzeb.

Mam sobie kod jak poniżej:

      – entity: weather.dark_sky
        type: weather-forecast
      – entity: weather.home
        type: weather-forecast
      – entities:
          – entity: binary_sensor.burze_dzis_net_frost_warning
          – entity: binary_sensor.burze_dzis_net_heat_warning
          – entity: binary_sensor.burze_dzis_net_precipitation_warning
          – entity: binary_sensor.burze_dzis_net_storm_warning
          – entity: binary_sensor.burze_dzis_net_storms_nearby
          – entity: binary_sensor.burze_dzis_net_tornado_warning
          – entity: binary_sensor.burze_dzis_net_wind_warning
        type: entities
który wygląda tak:
Używając dodatku Vertical stack https://www.home-assistant.io/lovelace/vertical-stack/ możemy te karty połączyć ze sobą. Oczywiście jest to jeden z przykładów, bo można łączyć różne elementy i encje w jeden pionowy zestaw.
      – type: vertical-stack
        in_card: true
        cards:
          – entity: weather.dark_sky
            type: weather-forecast
          – entity: weather.home
            type: weather-forecast
          – entities:
              – entity: binary_sensor.burze_dzis_net_frost_warning
              – entity: binary_sensor.burze_dzis_net_heat_warning
              – entity: binary_sensor.burze_dzis_net_precipitation_warning
              – entity: binary_sensor.burze_dzis_net_storm_warning
              – entity: binary_sensor.burze_dzis_net_storms_nearby
              – entity: binary_sensor.burze_dzis_net_tornado_warning
              – entity: binary_sensor.burze_dzis_net_wind_warning
            type: entities
Aby połączyć je natomiast poziomo możemy skorzystać z Glance https://www.home-assistant.io/lovelace/glance/ :
        – type: glance
          no_card: true
          title: „Salon”
          show_name: false
          entities:
            – sensor.salon_flora_temperature
            – sensor.humidity_158d000163e802
            – sensor.salon_flora_light_intensity
            – sensor.salon_flora_moisture
Z kolei menu 'Drop down' jest już trochę bardziej czasochłonne, ale również proste.
W configuration.yaml zdefiniowałem sobie plik dla takich właśnie przełączników:
input_select: !include input_select.yaml
W tym oto pliku:
light_scenes_tv:
  name: „LED za TV”
  icon: mdi:palette
  options:
    – „ledzatvonwhite”
    – „ledzatvonblue”
    – „ledzatvonfade”
    – „ledzatvoff”
W ui-lovelace.yaml
– input_select.light_scenes_tv
A pod konkretne nazwy podpiąłem Automatyzacje:
– id: '1589838898697′
  alias: LED za TV white
  description: ”
  trigger:
  – entity_id: input_select.light_scenes_tv
    platform: state
    to: ledzatvonwhite
  condition: []
  action:
  – scene: scene.led_za_tv_white
I scena:
– id: ledzatvonwhite
  name: LED za TV white
  entities:
    switch.ledzatv: on
    switch.ledzatvwhite: on
Oraz, żeby było śmieszniej, to wywołuje kody IrDA w Broadlink 🙂
  – platform: broadlink
    host: 192.168.1.119
    mac: 34:EA:34:CE:00:CC
    switches:
      ledzatv:
        friendly_name: „LED za TV”
        command_on: 'JgBQAAABR5QXERYRFxEWERYRFxEWERYRFjcWNxY2FzYWNxY2FzYXNhY3FhEXNhc2FhEWEhYRFhEWERc2FhEXERY2FjcWNhc2FgAFFAABR0oVAA0FAAAAAAAAAAA='
        command_off: 'JgBYAAABUZMXERYRFxEWERcRFhIWERcRFjcXNhc2FzcXNhc2FzYYNhY3FzYXNhg2FzYXEhcRFxEWEhcRFxEXERgRFzYXNhg2FwAFFQABU0oXAAxdAAFSSRcADQU='
  – platform: broadlink
    host: 192.168.1.119
    mac: 34:EA:34:CE:00:CC
    switches:
      ledzatvwhite:
        friendly_name: „LED za TV white”
        command_on: 'JgBYAAABTJUVERUVExMVExUSFRUTExQTFTgVOBU3FjgWNhc2FjgRPRU3FhQTORUbDDkUExUUExQVFhE3FhMUOBcSFDkUOBU4FgAFGAABS0oWAAxgAAFOSRcADQU='
        command_off: 'JgBYAAABTJUVERUVExMVExUSFRUTExQTFTgVOBU3FjgWNhc2FjgRPRU3FhQTORUbDDkUExUUExQVFhE3FhMUOBcSFDkUOBU4FgAFGAABS0oWAAxgAAFOSRcADQU='
Może da się łatwiej, ale na ten moment inaczej nie potrafię 😉
Dwie rzeczy:
– ja uwielbiam 'babrać się' w skryptach i plikach konfiguracyjnych. To mi daje poczucie pełnej kontroli
– uważajcie na wcięcia w tekście! To jest YAML i bardzo ważne są odstępy, odpowiednie marginesy

Instalujemy Home Assistant na Intel NUC i Ubuntu

Dzień dobry.
Jakoś tak się złożyło, że wpadł w moje ręce Intel NUC NUC7CJYH z 4GB RAM oraz 120 GB dyskiem SSD. Nie mogąc się oprzeć urokowi tego sprzętu musiałem go sprawdzić i do tego wykorzystać przy instalacji Home Assistant. Zdecydowanie było warto – to sprzęt bardzo mocny, w dobrej konfiguracji, cichy, ładnie wyglądający i do tego niewielki.
Korzystając ze strony https://ubuntu.com/download/intel-nuc-desktop pobrałem wersję, którą następnie trzeba zgrać na przykład na pendrive według instrukcji (https://ubuntu.com/tutorials/tutorial-create-a-usb-stick-on-ubuntu#1-overview). Proste na tyle, że i bez niej można sobie poradzić korzystając z programu Rufus, który stworzy dla nas uruchamialny pendrive. 
Uruchamiamy go,
Wskazujemy plik naszego systemu,

Zatwierdzamy,

Pendrive wkładamy do Intel NUC, włączamy, 

Wybieramy Restore entire hard drive,

I, voila, po chwili jesteśmy w systemie.

WAŻNE! 
Aby Intel NUC włączył się sam po zaniku napięcia, trzeba włączyć tę opcję w BIOS – 
F2 przy starcie -> Advanced -> Power -> Secondary Power Settings -> After Power Failure -> Power On.
Warto również włączyć Bluetooth, może się przydać do Xiaomi Mi Flora 😉
Później już z poziomu terminala kilka instrukcji, instalacja według standardu dostępnego w sieci, u mnie wersja Home Assistant Supervised – czyli jak nazwa wskazuje z Supervisor’em. Doinstalowałem sobie od razu server SSH aby łączyć się już później bezpośrednio z terminalem.
sudo apt update
sudo apt install openssh-server
sudo add-apt-repository universe
sudo -i
apt-get update
apt-get upgrade
apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat 
systemctl disable ModemManager
systemctl stop ModemManager 
curl -fsSL get.docker.com | sh 
curl -sL „https://raw.githubusercontent.com/home-assistant/supervised-installer/c674830d8ddc6af9d618755a7995af939dd73fde/installer.sh” | bash -s
Po chwili mamy dostęp do Home Assistant! Logowanie błyskawiczne, dociągnięcie potrzebnych komponentów jest natychmiastowe, czuć moc Intel NUC w stosunku nawet Raspberry Pi 4, nie mówiąc już o RPi3.
Odzyskanie bazy było formalnością dzięki zapisowi poprzednich kopii w chmurze Google: http://blog.asobczak.pl/2019/11/23/hass-io-i-google-drive-backup/

Smart home, Domoticz, Raspberry – z czym się to je

Czytając swojego bloga (serio – czytam czasem co naskrobałem dwa lata temu, aby poprawiać 'warsztat') doszedłem do wniosku, że nie zrobiłem nawet małego wstępu dla amatorów tematów Smart house i Raspberry Pi. Odgórnie przyjąłem, że wszyscy już wiedzą o co chodzi i od razu, 'z grubej rury' przystąpiłem do opisywania tematów. Czasem dość trudnych.

Przy okazji rozpoczęcia strony na Facebook, dotarło do mnie, że nie mam co wrzucić jako początek, jak zainteresować ludzi, wytłumaczyć podstawy. Temu właśnie posłuży ten wpis.

Zaczynamy!

Designed by Freepik

Smart home, smart home, IoT, IoT. Bardzo głośne ostatnio tematy. Czyli tak zwane 'Inteligentne domy'. Osobiście wolę termin 'Sterowane', 'Odpowiednio sterowane' lub 'Automatyczne'. Inteligencję rezerwuję dla tworów żywych.

Dom taki na podstawie czujników czy też informacji z zewnątrz (na przykład pogodowych) potrafi odpowiednio się 'dostosować' do naszych potrzeb.

Dość często wymienia się tutaj przykłady:
– uruchomienia podlewania gdy prognozowany jest brak opadów przez kilka dni,
– automatyczne otwieranie rolet/markiz o poranku
– czy też domykanie ich, gdy słońce świeci akurat w konkretne okno,
– sterowanie ogrzewaniem w domu gdy nas nie ma
– lub ustawianie zadanej temperatury, bo akurat wcześniej wracamy z pracy/wyjazdu,
– inteligentne monitorowanie posesji – jeżeli kurier dzwoni wideofonem przy bramie – wyślij zdjęcie i jeżeli potrzeba – otwórz mu furtkę aby nie bawił się w ogrodową koszykówkę przesyłką,
– ustawianie natężenia świateł w zależności od potrzeb – czytanie/oglądanie filmu/pełna jasność
– łączenie powyższych elementów w sceny – jeżeli wybieram tryb Kino – rozwiń ekran, włącz amplituner, wyłącz światła
– sterowanie głosowe
– powiadamianie głosowe/sms/e-mail

Wszystkie te elementy można zrealizować 'na bogato' zlecając je wyspecjalizowanej firmie, lub hobbystycznie. Temu drugiemu podejściu dedykowany jest blog. Niestety, podczas budowy domu popełniłem kilka błędów, jednym z nich było pociągnięcie zbyt małej ilości kabli do przesyłania danych, 'bo przecież teraz wszystko po WiFi'. Wymusiło to (na ponowne kucie ścian i remonty nie mam ochoty) ustawienie zainteresowania na transmisję bezprzewodową.

Nie jestem profesjonalistą w tym temacie. Cały czas mnóstwo się uczę i wiele tematów jeszcze przede mną. Jeżeli coś jednak zaczynam i mnie wciągnie – 'nie ma zmiłuj' – nie będę spał, ale temat muszę rozgryźć a problemy usunąć. Kropka.

Dlatego zainteresowały mnie platformy Raspberry Pi, Wemos, Arduino. Stąd już krok do komunikacji 433MHz, WiFi, ZigBee, Z-Wave. Czujniki temperatury, wilgotności, zalania, dymu, monitorowanie zużycia energii. Internetowe prognozy pogody, dane w formacie JSON. Temat jest niesamowicie rozległy i ciężko powiedzieć: 'To jest jedyne dobre rozwiązanie'.

Są systemy płatne, kompleksowo zamykające temat przez autoryzowanych instalatorów – Fibaro, Grenton to tylko przykłady polskich rozwiązań, na rynku jest ich mnóstwo. Oferują sterowanie światłem, ogrzewaniem, bezpieczeństwem, czujnikami. Są jednak relatywnie drogie (oczywiście punkt widzenia każdej osoby będzie się różnił) oraz zamknięte, jeżeli chodzi o sposób zaimplementowanych rozwiązań.

Osobiście szukałem systemu darmowego aby sprawdzić, czy Smart home się w ogóle u mnie przyjmie, czy jest sensowny. Patrząc z perspektywy czasu – jak najbardziej tak! Do tego przydałoby się oprogramowanie, które to wszystko zepnie, odczyta dane z czujników, prześle do przekaźników, zapisze do bazy danych, umożliwi analizy, reakcję.

Mój wybór padł na Domoticz. Trzy lata temu 'próg wejścia' w jego przypadku był niższy niż w Home assistant. Aktualnie coraz częściej rozważam opuszczenie Domoticz, albo chociaż na pewien czas równoległe sprawdzenie Home assistant. Wydaje się platformą stabilniejszą, bardziej rozwojową ze względu na sposób jego budowy. Aktualnie jednak – Domoticz!

Dla osób początkujących ważna jest również kolejna informacja – oba systemy są darmowe, możliwe do zainstalowania na Raspberry Pi, komputerach/serwerach obsługujących Linux, Windows, MacOS. Nie nie ryzykujecie zaczynając przygodę ze Smart home.

Dlaczego akurat on?
– po zainstalowaniu na Raspberry Pi (i nie tylko) można go od razu używać, bez dodatkowych skryptów
– dla początkujących praktycznie wszystko da się wyklikać
– bogaty zbiór urządzeń, które są obsługiwane
– na tamten czas dość ładny interface użytkownika

Porównując koszty, są od 5 do 10 razy mniejsze niż przy rozwiązaniach dedykowanych, nadmieniam jednak, że spędziłem mnóstwo czasu ucząc się, dostrajając elementy do swoich potrzeb, instalując, testując. Nie każdy ma ochotę na takie hobby. Mnie akurat wciągnęło.

Kilka przykładów:

Dashboard (czyli główny pulpit). Z tego miejsca mogę sprawdzić status tego co się dzieje w domu – kamery, gniazdka, włączone urządzenia.

Przełączniki – światła, sterowanie IR (TV, wzmacniacz), gniazdka zdalnie włączane, LEDy, system audio multi room

Sceny – połączenie kilku elementów w łańcuch zdarzeń. Jeżeli oglądamy film, to wyłącz światła, włącz amplituner, subwoofer…

Temperatura – dane z każdego z czujników. Łącznie z wilgotnością.

Elementy użytkowe – status użycia Raspberry Pi, szybkość łącza internetowego, nawodnienie kwiatów, pobór prądu w domu

Domoticz umożliwia również robienie raportów w formie graficznej. Tutaj – wykres temperatury na zewnątrz

Ustawianie warunków włączenia/wyłączenia. Tutaj – Włącz światła przed domem godzinę po zachodzie słońca i wyłącz zawsze o 22:00.

Warunki powiadamiania. Tutaj – Jeżeli włączy się światło przed domem – wyślij e-mail na żądany adres

Jeżeli prezentacja danych w Domoticz nam nie odpowiada, zawsze można doinstalować dodatkowe systemy zbierające i prezentujące dane. Na przykład InfluxDB i Grafana.

Zachęcam do przeczytania poprzednich wpisów, postarałem się ułożyć opisane już tematy w pewne pakiety tematyczne:

– Przede wszystkim – Domoticz
– Systemy audio multi-room – Logitech media server, Max2Play
– Zdalny dostęp do Raspberry i Domoticz – Dataplicity
– Czujniki otwarcia/zamknięcia drzwi – Kerui
– Centralki obsługujące różne transmisje: RFLink, Xiaomi Mijia Smart Home
– Prezentacja danych/sterowania elementami domu: Dashticz, aplikacja Pilot, aplikacja MiHome
– Monitorowania zużycia energii: Owl Micro +
– Sterowanie głosem – Amazon Alexa – Echo Dot, Skille, Kalendarze
– Chipy ESP8266 – Wemos D1 Mini
– Instalacja, konfiguracja: Raspberry, Domoticz
– BLE – Bluetooth Low Energy – Mi flora
– Przełączniki Sonoff – Basic, POW, S20
– Sterowanie oświetleniem – włączniki Xiaomi, Milight
– Piloty uniwersalne IR – Broadlink
czujnik smogu
– Zdarzenia, powiadamianie – bezpośrednio w interface Domoticz, skrypty
pourlopowe wnioski

Nie twierdzę, że moja ścieżka jest jedyną dobrą. Ile osób, tyle możliwych rozwiązań, pomysłów, różnorakich podejść. Eksperymentujcie, sprawdzajcie!

Pozdrawiam, życząc miłej i przyjemnej lektury
Cezar

P.S. Życzę również dużo myślenia, potu, zastanawiania się czemu nie działa, szukania rozwiązań problemów.