Home Assistant - bezpłatna integracja z Google Asystent

Home Assistant - bezpłatna integracja z Google Asystent

Czym byłby nasz Home Assistant bez integracji z usługą Google Home i Asystentem! W tym artykule, pokażę krok po kroku jak to skonfigurować bez płacenia miesięcznego abonamentu.

O tym jak zrobić to przy wykorzystaniu wbudowanej integracji opisuję w tym artykule: Home Assistant - Google Asystent - konfiguracja płatna (miesiąc za darmo) - jednak nie byłbym sobą, gdybym nie mógł na czymś przycebulić a 5$ miesięcznie to ponownie jakiś gadżet za darmo ;) 

Home Assistant - dostęp zdalny SSL - DuckDNS / Let's Encrypt

Aby wszystko co opisuję w tym artykule było możliwe, w pierwszej kolejności musisz wykonać wszystko z tego artykułu: Home Assistant - dostęp zdalny SSL - DuckDNS / Let's Encrypt - jak już mamy to gotowe, to działamy dalej!

Google Cloud API Console

Wchodzimy na stronę: Google Cloud API Console - klikamy i tworzymy New project - ja swój nazwałem Hassio. Docelowo musimy stworzyć API Key aby bez problemu móc używać google_assistant.request_sync czyli frazy “Ok Google, sync my devices” - to zrobimy później, teraz idziemy dalej! 

Actions on Google console

Na chwilę zostawiamy poprzednią stronę, nie zamykaj jej! I przechodzimy do: Actions on Google console 

  1. Klikamy New project i z listy wybieramy przed chwilą utworzony Hassio, zostawiamy język angielski a region możemy ustawić na Polska. Później będziemy mogli to zmienić. Klikamy Create project i wszystko po kolei konfigurujemy. 

    1. Klikamy Home Control i wybieramy Smart home.
    2. Kilkamy Build your Action, wybieramy Add Action(s), a następnie Add your first action
    3. Wprowadzamy utworzony w poprzednim artykule adres z Duck DNS w moim przypadku jest to: https://hejdom.duckdns.org:8123/api/google_assistant i klikamy Done.
      HA GA_1

  2. W lewym menu wybieramy Account linking 

    1. Wybieramy (jeżeli mamy to w ogóle dostępne): No, I only want to allow account creation on my website 
    2. Dla sekcji Linking type wybierz z listy rozwijanej OAuth i następnie Authorization Code.
    3. W sekcji OAuth Client Information
      • Client ID podaj: https://oauth-redirect.googleusercontent.com/
      • Client Secret: wpisz cokolwiek, to nie ma znaczenia i nie jest używane
      • Authorization URL (hejdom zastąp swoim adresem): https://hejdom.duckdns.org:8123/auth/authorize.
      • Token URL (hejdom zastąp swoim adresem): https://hejdom.duckdns.org:8123/auth/token.
    4. W sekcji Configure your client:
      • Wpisz w polu email i kliknij Add scope, następnie w nowym polu wpisz name i kliknij Add scope 
      • NIE zaznaczaj Google to transmit clientID and secret via HTTP basic auth header.
    5. W sekcji Testing instructions: wprowadź cokolwiek, to nie ma znaczenia. 
      HA GA_1
  3. Przechodzimy do zakładki Overview - górna belka i klikamy w sekcję  Build your Action a następnie Add Action(s).

    • W polu Fulfillment wpisujemy (hejdom zastąp swoim adresem): https:///hejdom.duckdns.org:8123/api/google_assistant.
    • Sekcję Configure local home SDK pozostawiamy pustą
  4. Wracamy do Overview i klikamy w sekcję Build your Action a następnie test. To stworzy nową wersję roboczą naszej aplikacji. Nic nie musimy testować, po prostu potrzebujemy wersję roboczą naszej aplikacji.

  5. Wróćmy jeszcze na chwilę do Overview  i sekcji Quick Setup i sprawdźmy czy mamy Name your Smart Home action na niebiesko (podaną nazwę aplikacji - ja nazwałem ją Hassio)
    HA GA_1

Configuration.yaml

Teraz musimy dodać konfigurację do naszego Home Assistant.

Wracamy do Google Cloud API Console - tam gdzie tworzyliśmy pierwszy projekt.

  1. Szukamy sekcji Dane Logowania (ikonka z kluczem po lewej stronie) w naszym projekcie nazwanym Hassio
  2. Klikamy Utwórz dane logowania (niebieski przycisk na górze) i wybieramy Klucz API i kopiujemy w oknie które się pojawiło nasz  api_key
    HA GA_1
  3. Jak klikniemy na nazwę Hassio na górze to pokaże się nam Identyfikator projektu

Dodajemy do pliku configuration.yaml następujący kod:

google_assistant:
 project_id: przed_chwilą_odczytany_id
 api_key: przed_chwilą_pobrany_kod
 exposed_domains:
  - script

Ja obecnie dodałem tylko scrypt, ponieważ tylko nimi chwilowo chcę zarządzać przez Google Home. Bo mam tam odkurzacz podpięty i sprzątanie stref a gdybym wybrał więcej, to zdublowały by się z integracjami które już mam w Google Home.

Google Home  

Czas na ostatni krok konfiguracji.

HA GA_1

  1. Otwieramy aplikację Google Home na telefonie i wchodzimy w:  Account > Settings > Assistant > Home Control.
  2. Klikamy w i zaraz jednym z pierwszych będzie [test] hassio w sekcji  Dodaj nowe
  3. Przeprowadzamy normalne logowanie do usług w tym wypadku do Hass.io Uwaga: jeżeli jesteśmy połączeni po WiFi może to nie zadziałać, ponieważ wbudowana przeglądarka przez sieć lokalną ma konflikt ssl, najprościej rozłączyć sie na chwile z WiFi podczas konfiguracji.

Gotowe

Nie było to takie trudne, co nie? Dajcie znać jak Wam poszło w komentarzach! 

Problemy z sync devices?

Synchronizacja urządzeń może po 30 dniach nie działać, ponieważ aplikacja w Google Console jest w trybie testowania i nie została opublikowana.  Kontrola urządzeń będzie działać nieprzerwanie mimo upłynięcia tych 30 dni. Jednak jeżeli powiesz: “Ok Google, sync my devices” i usłyszysz “Unable to sync Home Assistant”, wystarczy udać się do Actions on Google console i kliknąć w sekcji Simulator TEST. To odnowi wersję testową i polecenie synchronizacji powinno już działać. 


Źródło: https://www.home-assistant.io/components/google_assistant/? 


Chcesz wiedzieć więcej? Dołącz do naszej grupy na FB - będzie nam też miło jak polubisz nasz Fanpage!