Rozmowa z Jolką przez głośniki google home mini

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, a niżeli w tym sposobie:

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

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:

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 wpisujemy 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ę. J

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

Na podsumowanie filmik z przykładem jak to działa.
https://streamable.com/ckrv8g

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

6 polubień

Jak włączyć każdy telefon bez baterii nawet te z wbudowaną baterią?

Oraz czy można użyć do tego innego terminala na telefonie ? Bo tam w instrukcji jest że trzeba jakieś api do tego terminala pobrać

Tak wyciąga się batere

A co do terminala to wydaje mi się że jakikolwiek będzie dobry, ale nie wiem na pewno

To api to poto żeby mieć kontrolę nad smartfonem, nie potrzebujesz tego chyba

Nooo stary zrewolucjonizowałeś Świat. Idę działać. Dzięki za poradnik. :+1:

edit:
Cały czas mam

1 polubienie

To jest ten punkt, próbuj dać nawet dłuższe zdanie, możesz tez nie podawać tych dwóch dodatkowych, dopieto po zapisie edytuj.

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ć

Skoro mi sie udało to Wam tez musi
Tak dokładnie wygląda mój:

edit. i jak cofasz sie do kroku if this /to this to jeszcze raz usuwasz oba i dodajesz na nowo po kolei.

Robie tak samo i nie idzie. Jak komuś się uda to dajcie znać. Chyba na razie odpuszczam :frowning:

Spróbowałes dodać tylko z pierwszą frazą pozostawiając pozostałe puste?

edit.
wlasnie zrobilem nowe i tez mialem problem, to zalezy chyba od słów, google asystent nie przepuszcza, ale robiąc tylko pierwszą fraze nie wpisując nic w druga i trzecią udaje się zapisac i bez problemu edytowac dodając ta druga i trzecią

1 polubienie

HIhi - dzieki. Działa. Najpierw zapisałem a potem edytowałem. Działa mi ze słowem Jolka. Ale czad…
Stawiam :beers: :beer: :clinking_glasses: :tropical_drink: :champagne: :cocktail: :cocktail: :wine_glass: :beer: :clinking_glasses: :champagne: :beers:

Zaktualizowałem jeszcze temat o “dialog” z bramką, mam nadzieję, że się Wam przyda.

@bartik22 Dzięki!!! Ja dopiero poznaje NR, a czytając tak szczegółowy opis moja mózgownica dopiero zajarzyła jak to ugryźć.
Jeśli masz czas i ochotę podzielić się z nami swoimi pomysłami z tak szczegółowym opisem to Poproszę o więcej. Jeszcze raz Dzięki :beer: :beer: :beer:

robię jak tu jest napisane

a przy komendzie node-red wywala błąd

Niestety w tym nie pomogę, na konsoli znam się tle co nic.
Zrobiłem dokładnie tak jak było tam napisane, bez żadnych problemów.
Są tu specjaliści co rozumieją co jest na rzeczy, może oni Ci pomogą.
Nie wiem czy to cos pomoże, ale…“próbowałeś wyłączyć i włączyć” ? :slight_smile:

nic nie dało zrestartowanie telefonu a tak przebiega u mnie instalacja https://youtu.be/-_Cbr-tnAvQ

naprawdę nie wiem,
ja dodawałem jeszcze Termux:API, ale bez niego tez powinno dzialac

Też dodałem to na zaś a nawet zainstalowałem root-repo z nadzieją że to pomoże ponieważ posiadam zrotowane xiaomi redmi note 3 pro na androidzie 6.0.1 (ale to też nic nie dało)
Lub ewentualnie czy ktoś próbował tej apki do node-red na telefonie lub tablecie?
Próbowałem też u nich na forum szukać ale nie wiem pod jakim hasłem szukać bo słabo znam angielski

mimo iż mam tak ustawione

to w node red nic mi się nie pojawia w po wykonaniu tego kroku

Wywołanie zwrotne pojawiło Ci się i dostałeś adres na który iftt ma wysyłać wiadomości?

nic nowego mi się nie pojawiło a gdy użyłem starego adresu z ifttt którego używałem tutaj do widgetów z innym kontem ifttt to też nic nie pomogło bo nadal nie ma nic w node red gdy wypowiem zdanie

dodatj nowego webhooka, deploy.
uruchom ponownie bramke.
Wejdź w zdalny dostęp i musi być nowy

4567486465487(nodered)
fdg65f47dg8647fdgf6dg8rhg - wylosowany w NR webhooku numer

Jak nie ma to znaczy ze nie masz:

Jak wejdziesz w jakikolwiek nod EVENTS STATE
to masz na samym dole “EXPOSE TO HOME ASSISTANT” ?
Jak nie, to znaczy że nie masz tego co wyżej.