Home Assistant i powiadamianie o statusie urządzeń w domu

 W Domoticz stworzyłem sobie w dzVents mały automat, który o wschodzie słońca informował mnie o 'statusie domu’. Jaka temperatura na dole, jaka w pokojach dzieciaków, itp. itd.

Aby zrealizować to samo w Home Assistant zrobiłem to na podstawie prostej automatyzacji i powiadamianiem na e-mail.

W Service data wstawiłem:

message: >-

  HA – temperatura w salonie: {{ states(’sensor.temperature_158d0001b95f89′) }}

  , w ogrodzie: {{ states(’sensor.temperatura_ogrod’) }}, u Zosi: {{

  states(’sensor.temperature_158d00019c915b’) }}, u Stasia {{

  states(’sensor.temperatura_staszek’) }}. Prognoza mówi: {{

  states(’sensor.dark_sky_summary_1d’) }} Moja kochana żona pojedzie do pracy {{

  states(’sensor.dorota’) }} minut.

Mała aktualizacja. Aby skonfigurować wysyłanie e-maili trzeba uzupełnić sekcję 'notify’ w configuration.yaml.

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

Home Assistant i Template – potężne narzędzie

Dobry wieczór. 

Funkcjonalnością, którą coraz bardziej w Home Assistant lubię jest template. Dokładniej platforma template (platform: template), bo tak jest nazywana w systemie.

To co w Domoticz osiągałem czasem za pomocą dzVents (czyli skryptów) tutaj mogę zrobić template. Czyli na przykład zmiana danych wyjściowych z czujnika (zamiast wartości zwracanej z angielskiego na polski), zmiana jednostek danych (Watt na KWatt), zmiana ikon przy zmianie statusu encji, itp. itd. 

Do tego również inne, jak 'wyciąganie’ atrybutów z niektórych czujników (bo jak inaczej przetłumaczyć sensor?).  Na zrzucie poniżej widać integrację z AccuWeather stworzoną przez naszego kolegę z Polski – https://github.com/bieniu (polecam również sprawdzenie jego konfiguracji Home Assistant – https://github.com/bieniu/home-assistant-config, BTW swoją też lada chwilę będę tak udostępniał).

Dla wyjaśnienia, te elementy znajdziecie w Developer Tools -> States, po wpisaniu filtra w Current entities. 

Co ciekawe – udostępnia ona procentowe prawdopodobieństwo wystąpienia opadów. Jak jednak to cholerstwo stamtąd wyciągnąć? Dane z pierwszego 'akapitu’ (temperature, humidity) są proste – state_attr i z głowy. Ale dalej? Chwilę nad tym siedziałem, musiałem finalnie poprosić autora o pomoc w rozwiązaniu zagadki. Dzielę się nią dalej z Wami. Kolejne elementy są tablicą danych na kolejne dni (zaznajomieni z programowaniem będą od razu wiedzieli o co chodzi). Sposób ich pozyskania do innego czujnika Home Assistant nie jest taki oczywisty, ale jak się zastanowić to logiczny.


– platform: template
  sensors:
    rain_precipitation:
    value_template: '{{ state_attr(„weather.home_2”, „forecast”)[1][„precipitation_probability”] }}’
    friendly_name: 'Rain precipitation for the next day’


Czyli: dla encji weather.home_2, sekcji forecast, mamy podane kolejne dni prognozy. Aby dostać się do dnia dzisiejszego musimy podać element tablicy o koordynacie [0], drugi dzień to [1] i tak dalej, pięć dni. 

Później wystarczy dodać do ui-lovelace.yaml.


Kolejna misja zakończona 🙂

Pierwsze efekty Buy My a Coffee – gniazdka BlitzWolf BW-SHP6

Dzień dobry! Jako że pierwsze osoby były na tyle miłe, że kupiły mi kawę, postanowiłem, że jednak ich nie 'przepiję’, tylko kupię coś, co się przyda do recenzji i integracji.
Przed chwilą dostarczone – śliczne, zgrabne gniazdka. Model w którym możemy skorzystać ze sprzętów potrzebujących więcej mocy – do 3450W. 
Cel – wgranie Tasmota poprzez Tuya Convert, później integracja i automatyzacje po podłączeniu pralki oraz zmywarki do naczyń.

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

Home Assistant i aktualizacje dodatków

Jedna z rzeczy, która mnie niezmiernie drażniła w Domoticz to brak informacji o aktualizacjach komponentów. Jeżeli nawet coś się udało dowiedzieć, to konia z rzędem temu, kto wiedział co zaktualizowano… 

Jakże inaczej wygląda to w Home Assistant.
Po pierwsze, w jednym miejscu zebrane wszystkie aktualizacje, które możemy pobrać:
Po drugie każda z nich ma dokładny changelog i releasenotes:
Gdzie możemy się dowiedzieć co zostało zaktualizowane i kiedy. Ułatwia to niesamowicie zorientowanie się w problemie, jeżeli takowy wystąpi po aktualizacji dodatku. Na przykład gdy zostaną dodane/usunięte parametry.
Uwielbiam taki sposób podawania informacji i szanowania użytkownika. Czytelne, proste, działające.

Home assistant i dodanie nowego, niestandardowego repozytorium. Z przykładem :)

Bam. Dzień dobry. Home Assistant jest dla mnie coraz bardziej czytelny i potężny. Do tego, jak już pisałem, ilość oficjalnych dodatków powala na kolana. Ale są też te mniej oficjalne, które nie weszły jeszcze do HACS (Home Assistant Community Store) i można je dodać ręcznie. Poniżej przykład takiego właśnie dodatku, który wpadł mi w oko i spodobał się: Simple Scheduler. Pod adresem https://github.com/arthurdent75/SimpleScheduler macie dokładną instrukcję, ale przedstawia się ona jak poniżej:

Przechodzimy do Supervisor -> Add-on Store. W prawym górnym rogu wybieramy Repositories:

Dodajemy link, zamykamy. Pojawi się na naszej liście.

Przechodzimy na ten dodatek, instalujemy,

Po instalacji uruchamiamy.

Po tym procesie możemy przejść na stronę dodatku i przeprowadzić konfigurację.

Tak dla zasady dodałem uruchamianie światła o zachodzie słońca i wyłączenie o 23, tylko w weekendy.

Oczywiście można to zrobić w Automatyzacjach, ale dla samej zasady warto było zaprezentować.
Nie gwarantuję, że za tydzień, dwa ten dodatek nie wskoczy do HACS z którego będzie można go pobrać w jeszcze prostszy sposób.

Raspberry Pi 3 i start z dysku/pendrive USB

Dzień dobry.
’Do odważnych świat należy’, jak to mówią.
Do tej pory Raspberry startowałem z karty SD, później system był już ładowany z dysku HDD (http://blog.asobczak.pl/2018/01/31/przechodzimy-na-malinie-z-karty-sd-na-dysk-hdd-ssd/). Skoro jednak podjąłem decyzję o przejściu z Domoticz na Home Assistant, a po zmianie w bartopie na Raspberry Pi 4 została mi jedna wolna malinka w wersji trzeciej – 'raz kozie śmierć!’ pomyślałem i wykonałem jeden wpis w /boot/config.txt. Znamienny. 
Oczywiście żarty żartami, żadnych poważnych reperkusji to nie powoduje. Priorytetem jest zawsze karta SD i jeżeli znajdzie się w gnieździe – Raspberry wystartuje najpierw z niej.
Jak wcześniej napisałem – w /boot/config.txt dopisujemy jedną linię:
program_usb_boot_mode=1
i to w zasadzie cała filozofia. Przestawiany jest bit tak zwany OTP – One-time programmable, czyli taki, którego zawartość można zmienić wyłącznie raz. Nie można operacji odwrócić. Z tego co pamiętam w Raspberry Pi 3b+ jest już ustawiany domyślnie, fabrycznie.

Po wykonaniu komendy
vcgencmd otp_dump | grep 17:
ujrzymy informację po 17:. Jeżeli jest inna niż 3020000a znaczy to, że bit nie jest przestawiony. Czyli tak jak poniżej, przed restartem.

Ok, wpis w config.txt mamy, sprawdziliśmy czy już nie był ustawiony, robimy restart.
Bang, po chwili możemy sprawdzić, czy udało się poprawnie to zrobić:

3020000a jest zapisane, można wyjąć kartę i startować z SSD/USB/HDD. Działa, sprawdzałem. Tak przez pewien czas miałem uruchomiony Home Assistant. Aż do momentu gdy przeszedłem na Intel NUC 😉

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/

Migracja z Domoticz do Home Assistant – jak to zrobić, żeby się wyrobić…

Dzień dobry.
Niespokojnym duchem będąc i uwielbiając zmieniać, próbować, usprawniać – musiałem przejść na Home Assistant. Było kilka powodów, niektóre mniej, niektóre bardziej ważne.
1. Aby zaktualizować wersję Domoticz którą mam aktualnie (3.8153 – relikt, ale działa) musiałbym przejść z Raspbian Jessie na Raspbian Buster. Jeżeli miałbym to zrobić – czekałaby mnie reinstalacja części komponentów, zapewne problemy z Broadlink (z tego co raportowali czytelnicy jakimś cudem mi się udało, ale wiele osób miało z tym problemy w Domoticz) oraz innymi komponentami. Niestety, w Domoticz nie jest to łatwe.
2. Niestety sprawdziłem jak prosta była i jest konfiguracja Home Assistant – po tym już Domoticz nie był taki sam. Osobiście lubię się bawić w konfiguracje w plikach tekstowych i możliwość dostosowania dzięki temu systemu do moich potrzeb. Teraz w większości przypadków nie trzeba znać YAML – pozostał dla takich świrów jak ja. HA niesamowicie szybko się rozwija.
3. KAŻDY, absolutnie KAŻDY dodatek, integracja, tapeta jest dokładnie opisana. Każda aktualizacja jest dokładnie udokumentowana w sposób jednakowy dla całego systemu. To samo tyczy się aktualizacji samego systemu HA. Bo trzeba wiedzieć, że są one rozłączne, to my decydujemy co ładujemy, na czym się opieramy, w jaki sposób dodajemy.
Niniejszym zaczynam ciąg artykułów o przejściu z Domoticz na Home Assistant! 
Część już opisałem wcześniej, postaram się aktualizować ten artykuł i kolejne sukcesy. A udało mi się w sumie przenieść już prawie wszystko.
Do przeniesienia miałem:
    – gniazdka Xiaomi
    – włączniki ścienne Xiaomi
    – Miilight LED 
    – Yeelight
    – światło przed domem – Sonoff na Tasmota (przy okazji zmiana oprogramowania na najnowsze przez OTA)
    – czujnik smogu – ESPEasy
    – Owl (RFLink)
    – UPS
    – oczyszczacz powietrza
    – MiFlora
    – kamery
    – Xiaomi Gateway
    – Logitech Media Server
    – Broadlink
    – NC+
    – aktywności sprzętów IP, zliczenie czasu używania
    – Sonoff POW
    – Sceny
    – pogoda/Airly
    – internet – raportowanie
    – System
    – skrypty
        – drzwi otwarte
        – emulator obecności
        – powiadamianie o temperaturze
        – poranne news o domu
        – zużycie energii

Alexa i problem z odczytywaniem zmian po stronie HABridge

Usssss… 

Ostatnie godziny spędzone z Alexą i HABridge były bardzo stresujące…
Przeniosłem cały system Home Assistant w nowe miejsce, na nowej instalacji DietPi, w kontenerze Dockerowym. Chciałem dodać nowe elementy w HABridge, trochę porządku zrobić. I zaciąłem się na dwa dni :/
Skasowałem listę przystkich urządzeń, wybrałem Discover zaczęły się cuda. Czego bym nie robił, jak nie kombinował – Alexa ciągle odczytywała mi poprzednie urządzenia, podpinała dziwne ID pod nie – ogólnie dramat. Poprosiłem nawet mojego dobrego kolegę (pozdrawiam Arka), speca od sieci i Linuxa aby pomógł mi zidentyfikować problem, bo myślałem, że gdzieś, jakimś cudem zainstalowałem osobną instancję, albo konfiguracja HABridge jest odczytywana ze złego miejsca. Sprawdziliśmy każde IP w moim domu – nic.
Bliski rozpaczy wpadłem na pomysł, aby ręcznie skasować te kilka starych urządzeń przypisanych w konfiguracji Alexy jedno po drugim i nagle pomogło! Poprawnie zaczytała kilka testowych urządzeń dodanych do HABridge.

Mission accomplished. Dziękuję Arkowi za pomoc!