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 ;) Pamiętajcie, że korzystając z Nabu Casa i wspierając ich powyższą kwotą - wspieracie fundację bezpośrednio utrzymującą projekt Home Assistant!
Uwaga: jeżeli robiłeś integrację przed 23.01.2020 przejdź do punktu Create Service i zaktualizuj konfigurację!
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
-
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ć. KlikamyCreate project
i wszystko po kolei konfigurujemy. -
W lewym menu wybieramy Account linking
- Wybieramy (jeżeli mamy to w ogóle dostępne):
No, I only want to allow account creation on my website
- Dla sekcji Linking type wybierz z listy rozwijanej
OAuth
i następnieAuthorization Code
. - 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
.
- Client ID podaj:
- W sekcji Configure your client:
- Wpisz w polu
email
i kliknijAdd scope
, następnie w nowym polu wpiszname
i kliknijAdd scope
- NIE zaznaczaj
Google to transmit clientID and secret via HTTP basic auth header
.
- Wpisz w polu
- W sekcji Testing instructions: wprowadź cokolwiek, to nie ma znaczenia.
- Wybieramy (jeżeli mamy to w ogóle dostępne):
-
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ą
- W polu
-
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. - 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)
Create Service account key - HA od wersji 0.104 (styczeń 2020)
Teraz wchodzimy na stronę: Create Service account key
Wybieramy z listy rozwijanej:
App Engine default service account
i klikamy utwórz
.
Pobieramy plik na dysk a następnie umieszczamy go w katalogu config
na naszym HA z wykorzystaniem add-on Samba
Jeżeli robiłeś integrację przed 23.01.2020 - zobacz jeszcze jak zmienił się plik configuration.yaml
- opisuję to poniżej.
Configuration.yaml
Teraz musimy dodać konfigurację do naszego Home Assistant.
Wracamy do Google Cloud API Console - tam gdzie tworzyliśmy pierwszy projekt.
- Szukamy sekcji Dane Logowania (ikonka z kluczem po lewej stronie) w naszym projekcie nazwanym Hassio
- Klikamy
Utwórz dane logowania
(niebieski przycisk na górze) i wybieramyKlucz API
i kopiujemy w oknie które się pojawiło naszapi_key
- 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
service_account: !include nazwa_pobranego_pliku.json
exposed_domains:
- script
Powyżej dodane są tylko wszystkie skrypty, które wywołujemy mówiąc activate nazwa skryptu
- mam tak 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. Dlatego ja już zrobisz z tym porządek, zrób rozszerz o to co potrzebujesz:
google_assistant:
project_id: hassio-numer
service_account: !include Hassio-nazwa.json
report_state: true
exposed_domains:
- script
entity_config:
light.star_light:
expose: true
room: Living Room
name: Star Light
switch.sonoff_10005af23e:
expose: true
room: Living Room
name: Balls Light
vacuum.bambo:
expose: true
room: Living Room
name: Bambo
media_player.living_room_main:
expose: true
room: Living Room
name: 'Yamaha'
aliases:
- Volume
Google Home
Czas na ostatni krok konfiguracji.
- Otwieramy aplikację Google Home na telefonie i wchodzimy w:
Account > Settings > Assistant > Home Control
. - Klikamy w
+
i zaraz jednym z pierwszych będzie[test] hassio
w sekcji Dodaj nowe - 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!
Dziwi brak reklam? Przeczytaj dlaczego i wesprzyj projekt na lub