wtorek, 26 maja 2020

Home Assistant, Alexa oraz HABridge. Ufff - uruchomiłem!

Dzień dobry. 

Dylematów przy rezygnacji z Domoticz było kilka. Między innymi RFLink (to już się udało zrobić) oraz integracja z Amazon Alexa. Mam ją zrobioną w dość prosty, ale w zupełności wystarczający sposób - przy pomocy HABridge - http://cezarowy.blogspot.com/2017/11/serwis-alexa-integracja-z-domoticz.html

Tak przy okazji - to już prawie trzy lata, ależ ten czas leci...

Zasada jest ta sama - HABridge emuluje Hue Lights firmy Philips, pozwalając sterować włącznikami światła, gniazdkami, itp.

Zmienił się sposób instalacji JDK i teraz wygląda to tak:

sudo apt install default-jdk


Hint: na Ubuntu na Intel NUC plik konfiguracyjny wygląda tak:
[Unit]
Description=HA Bridge
Wants=network.target
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/cezar/habridge
ExecStart=/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar -Dconfig.file=/home/cezar/habridge/data/habridge.config /home/cezar/habridge/ha-bridge.jar

[Install]
WantedBy=multi-user.target

Pierwsza sprawa do zrobienia - wygenerowanie klucza w Home Assistant, który można później używać w HABridge. Taki uniwersalny, coś w stylu tokenów Google App. Ten to wygenerowany klucz wstawiamy w sekcję konfiguracji HABridge.


Następnie, po restarcie HABridge będziemy mieli dostęp do urządzeń Home Assistant:



Wybieramy Build Item i urządzenia z Home Assistant pojawiają się w HABridge.

Co ważne, można przez https://github.com/custom-components/alexa_media_player (dostępny w HACS) zmusić Alexę do przekazywania nam głosowych komunikatów systemowych. Niestety, da się zrobić wyłącznie przez notyfikacje, ale coś za coś. W sumie to wystarczające do większości zastosowań.

notify:
  - platform: alexa_media
    name: alexa_media


Podczas konfigurowania integracji trzeba podać namiary na konto amazon.

Przykładowe automatyzacje:

- id: '1588278306126'
  alias: Światła - Wyłącz przed domem o 22
  description: ''
  trigger:
  - at: '22:00'
    platform: time
  condition:
  - condition: state
    entity_id: switch.sonoff_power
    state: 'on'
  action:
  - data: {}
    entity_id: switch.sonoff_power
    service: switch.turn_off
  - data:
      message: HA - wyłączyłem światła przed domem
    service: notify.cezar
  - data:
      data:
        method: all
        type: announce
      message: <amazon:effect name='whispered'>Lights outside are off</amazon:effect>
      title: Lights outisde
    service: notify.alexa_media_adam_s_echo_dot

- id: light_turn_on_lights_outside
  alias: Światła - Włącz godzinę po zachodzie słońca
  description: Włącz światło przed domem godzinę po zachodzie słońca i powiadom mnie
  trigger:
  - event: sunset
    offset: +01:00
    platform: sun
  condition:
  - condition: state
    entity_id: switch.sonoff_power
    state: 'off'
  action:
  - entity_id: switch.sonoff_power
    service: switch.turn_on
  - data:
      message: HA - światła przed domem włączone
    service: notify.cezar
  - data:
      data:
        method: all
        type: announce
      message: Lights outside are on
      title: Lights outisde
    service: notify.alexa_media_adam_s_echo_dot

Dla dzieci, żeby się trochę pośmiały i zobaczyły na żywym przykładzie te całe automatyzacje stworzyłem jeszcze jedną - po włączeniu światła Alexa wydaje ryk lwa :D

- id: '1588281346963'
  alias: AleJaja
  description: ''
  trigger:
  - entity_id: switch.wall_switch_right_158d0001dbe288
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data: {}
    service: script.roar_alexa

9 komentarzy:

  1. Pokusiłbyś się o napisanie tekstu porównującego Domoticz i Home Assistant? Ewentualnie może czytałeś jakiś dobry tekst tego typu? Obecnie siedzę na Domoticzu, ale niektóre rzeczy trochę denerwują, wiele jest ok, ale teraz by aktualizować do najnowszej wersji muszę zaktualizować również Raspbiana, więc nie jest to parę kliknięć. Może warto rozpocząć zabawę z HA..

    OdpowiedzUsuń
    Odpowiedzi
    1. Z przyjemnością zrobię to, jak tylko znajdę chwilę czasu. Niestety teraz jakoś bardzo skurczyła ilość godzin na cokolwiek. Muszę wybierać - albo coś się uda napisać, albo coś zrobię w HA.

      Miałem podobnie jak Ty - w Domoticz zrobiłem sobie już dużo skryptów, dodatków, itp. I teraz gdy miałem się przesiąść na Bustera, to powiedziałem sobie - No way! Gdy już zacząłem się zapoznawać z HA, poraziło mnie jak ociężały i przestarzały w założeniach jest Domoticz - to jest jeden wielki kolos, który może się cały przewrócić w przypadku jednego błędu.

      Owszem, Domoticz na początku jest prosty w zapoznaniu się, ale ilość dodatków/integracji/komponentów do HA jest niesamowita. Do tego - każda, KAŻDA aktualizacja jakiegokolwiek komponentu jest dokładnie opisana, z dokumentacją i przykładami.

      Ostatnie miesiące wprowadziły również mnóstwo ułatwień dla początkujących, w sumie wystarczy go uruchomić i większość urządzeń wykryje Ci sam.

      Kończę, bo zaczynam się rozpędzać i lepiej poświęcić ten czas na napisanie artykułu ;)

      Usuń
  2. Jestem w tym samym miejscu co kolega. Poległem na aktualizacji do bustera, uratował mnie backup bo w nowym Domoticzu przestało działać sporo rzeczy i zaginęła baza danych. Poza tym podejście twórców Domoticza stało się dość dziwne. Więc też zastanawiam się nad migracją do HA. Zastanawia mnie temat nietypowych urządzeń - w Domoticzu wystarczyło dodać dummy device, napisać skrypt np. w pythonie, odpalić go w tle lub za pomocą crona i miałeś obsługę własnych urządzeń, domyślnie nie obsługiwanych. Jak to wygląda w HA? Czy ten system może współpracować np. z duetem influxdb/grafana?

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak, HA współpracuje z influxDB/Grafana, właśnie staram się je powiązać ze sobą, żeby było tak jak w Domoticz. Z przyjemnością to opiszę jak skończę.

      Usuń
  3. Ok
    Znalazłem.
    Chyba dam radę.
    https://esphome.io/

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzięki za ten link. Bardzo fajna sprawa, nie trafiłem na to wcześniej. Pobieżnie patrząc wygląda mi to trochę jak MySensors, ale dla ESP zamiast Arduino.

      Usuń
    2. W jednym z Sonoff Basic zmieniłem sobie opogramowanie na esphome, od razu został rozpoznany przez HA.

      Usuń
  4. Bardzo interesujący wpis

    OdpowiedzUsuń