Jak rozmawiać po swojemu z HA poprzez google assistanta, głośniki home mini itp

Chciałbym pokazać Wam jak komunikować się z nasza bramką przez asystenta gogle, głośniki home mini itd. wychodzimy z infrastruktury google i mówimy do naszej bramki

image

Może niektórzy są trochę na bakier z angielskim jak ja, to jest dla nich, można podać jakie się chce komendy oraz dla tych co chcą rozszerzyć możliwości,

Ten poradnik jest dla osób które mają node-red.

Jeżeli ktoś nie chce instalować na bramce i nie ma gdzie postawić mam sugestię:

Praktycznie każdy ma w domu mini komputer, którego nie używa… jaki?
A no stary smartfon :slight_smile:
Możesz postawić sobie node-red’a na starej komórce, poprzez emulator konsoli.

Wyciągnąłem baterie z komórki co by nie puchła i postawiłem serwer NR w 2 minuty, działa bez zająknięcia, przecież moja komórka z przed 5 lat ma 8 rdzeni i 2gb ram :slight_smile:
Instrukcja jak to zrobić:
https://nodered.org/docs/getting-started/android

Ok jak już mamy node-red’a to musimy zainstalować jedną integrację, która połączy noda webhook z naszą bramką: GitHub - zachowj/hass-node-red: Companion Component for node-red-contrib-home-assistant-websocket to help integrate Node-RED with Home Assistant Core

Następnie wchodzimy do node reda i wstawiamy noda webhook, ustawiamy swój serwer HA i losujemy sobie ID potem wciskamy Deploy.

image

Po tym zabiegu robimy pełny restart bramki.

Teraz wchodzimy w Konfiguracja > konfiguracja bramki AIS > zdalny dostęp > Wywołania zwrotne http
( dla tych co nie mają bramki AIS, wydaje mi sie, że jest to w nabu casa, musicie ustalić, nie wiem)

Powinien nam się pojawić nowy dostęp, klikamy POKAŻ… to jest nasz adres na który google asystent będzie wysyłać wiadomości. Tak wygląda w moim przypadku:

https:// dom-888888888888888.paczka.pro/api/webhook/fdghfdh5h45t4h56dfhgfd5

image

Teraz przechodzimy do IFTTT.COM

Nie potrzebujemy do tego płatnego konta premium,
Wersja darmowa pozwala na zaprogramowanie 3 apletów, my potrzebujemy tylko jeden.

Tworzymy aplet:

Create> IF THIS > Google assistant > „Say a phrase with a text ingredient”

I teraz tak, aby asystent wiedział że mówimy do naszej bramki musimy użyć jakiegoś magicznego słowa,

Jako że mam bramke AIS to nic lepszego nie przyszło mi do głowy jak mówić AIS zrób to, AIS zrób tamto :slight_smile:

Oczywiście mówiąc AIS asystent rozumie to jako ICE :slight_smile:

Musimy i to jest bardzo ważne w pierwszym okienku wpisać jakąś długą frazę zawierającą nasze magiczne słowo i wartość customową czyli $, jak podamy za prostą nie będziemy mogli zapisać.

Np. ice please do something awesome $

Najpierw spisujemy tylko ta fraze po zapisie całego apletu dopiero wchodzimy w edycje i wpisujemy pozostałe dwa
Potem w następnych dwóch okienkach już idziemy na skróty:

Ice dolar
oraz
dolar ice

Także gdy powiemy „ice office light” asystent zrozumie, ze mówimy ICE i wartościa customową jest OFFICE LIGHT.

Wciskamy CREATE TRIGGER

image

Teraz wchodzimy w „Then That” > webhooks > Make a web request

Podajemy tutaj nasz adres z bramki który stworzyliśmy, post, application/json oraz w BODY musimy kliknąć Add ingredient i dodać TextField.

image

Cokolwiek teraz powiemy dodając magiczne słowo (u mnie ICE) to gogle assistant wyśle do naszej bramki.

Czas na przetworzenie otrzymanych wiadomości:

Wchodzimy w NODE-RED

Podłączamy sobie noda debug żeby widzieć przychodzące wiadomości.

Mówimy do głośnika magiczne slowo oraz np. office light

Dostajemy taki komunikat, jak widzicie w payload mamy naszą wypowiedzianą fraze.

image

Teraz dodajemy sobie switch który sprawdza jaką mamy funkcję, np. light, switch, clean itd.

Contains – (czyli jeżeli w wiadomości payload wystepuje) ight

Dlaczego ight? Dlatego że google czasem napisze Light a czasem light, więc albo rezygnujemy z pierwszej litery jak ja albo robimy dwa wyjścia z light oraz Light.

image

Ok, teraz robimy kolejny switch, czyli jak wystepuje light to ma trafić do switcha, który sprawdza np. w jakim pokoju, np. „office”, czyli „ffice”,

image

Do tego wyjścia dodajemy kolejny nod call service z light toogle

image

I tym oto sposobem jak powiemy „ice office light” to wpadnie do pierwszego switcha gdzie znajdzie slowo light potem poleci do drugiego switcha gdzie znajdzie slowo office i poleci do trzeciego gdzie zapali lampkę. :slight_smile:

Chcemy dodać następną komendę, ice light bath room, więc dodajemy takie wyjścia :slight_smile:
Możemy dać komendy jednowyrazowe, np. ice table który włacza swiatło nad stołem.

Chodziło mi o pokazanie logiki całego procesu, oczywiście Ci co znają node red, wiedzą że tylko wyobraźnia nas ogranicza co ma się wydarzyć.

Jeżeli mamy asystenta po polsku na jakimś urządzeniu to równiez możemy tak mówić, google automatycznie tłumaczy nasz tekst

image

Na podsumowanie filmik z przykładem jak to działa.

EDIT.
Dodam jeszcze sposób w jaki prowadzę dialog z moją bramką.

Przykład.
Chce powiedzieć light i bramka ma mnie zapytać w którym pokoju i czekać na podpowiedz.

mówię komendę “ice llight” i nie dodaje o jaki pokój chodzi,
więc wiadomość wpada sprawdza że jest light, leci do drugiego switcha lecz nie znajduje pokoju, więc leci do ostatniego “otherwise” i teraz tak,
zadaje pytanie, “w którym pomieszczeniu?” po czym ustawiam sobie w global.odpowiedz cyfrę 1 (nie jako string tylko number, bo dwucyfrowe będą źle czytane)

Dzięki temu jeżeli wpadnie nowa wiadomość “ice office”, to poleci do switcha light gdzie wyszuka pokój. Najpierw sprawdzamy czy bramka ma nasłuchiwać odpowiedzi, czyli wpada do switcha Odpowiedz? i szuka czy któreś pytanie jest aktywne.
Za każdym pytaniem jak ma czekać na odpowiedź ustawiam sobie inną cyfrę, 1, 2, 3, 4
więc odpowiedź trafia tam gdzie powinna.

Oczywiście po otrzymaniu odpowiedzi wartość global.odpowiedz zmieniam na 0, żeby kolajna komenda szła głównym flow.
Mam też ustawione zmianę na 0 po 60 sekundach od zadania pytania, czasem mogę nie chcieć odpowiedzieć :slight_smile:

Możecie to wykorzystać do dopytywania przez bramkę, jak i również jak w przykładzie filmu na końcu, sugerowane akcje, mówi czy jest jakieś światło włączone i pyta czy chcemy wyłączyć.

ENJOY

7 polubień

Podczas przeglądania filmiku mój telefon za każdym razem reagował na Hey Google :smile:
@bartik22 więcej takich praktycznych i kompletnych poradników.

Świetna robota, dziękujemy.

Reverso TTS / tts

dodaj sobie z hacs integracje, i ładnie bezie ci mówić kobieta, a nie ten mechaniczny google

W nabuCasa nie widzę takiej możliwości - muszę poszukać innej możliwości takiej komunikacji.

@bartik22 wyszła nowa wersja w ifttt “google assistant v2” - jestes w stanie zaktualizować ten poradnik pod tą nową opcje?
Strasznie chciałbym to uruchomić.

Cały czas mi działa ten który zrobiłem, widzę że tworząc nowy applet mogę tylko wybrać v2. Nie zrobię tego z obawy że wyłączę ten który mi działa.

Powiedz, pokaż w którym miejscu jest rozbieżność. Są inne pola czy co?

1 sprawa to


jest tylko to i koniec
2 sprawa

tak jest i nie moge wpisać “TextField”
i jakby sprawa leży

Sprawdziłem i nie widzę rozwiązania, v2 ograniczyło możliwości, nie ma dynamicznego kontentu. Iftt już się nie da, jedynie każda komenda jako inny applet, "ok google, activate … ". Zostaje chyba dialogflow, ale to już inna bajka

A czy jest mozliwośc na ifttt udostępnienia? Pytam bo nie znam tego systemu a projekt wydaje się super.

Doprecyzuje, poprzednia wersja jest nieaktywna, również nie działa. :frowning:

ok. Dziękuje, szkoda bo się napaliłem. Szukam dalej jak zastąpić “ok google” na “ok cos tam”.