Ostatnim moim zakupem był zakup asystenta głosowego Google Home Mini.
Koszt zakupu obecnie nie jest zbyt wielki, za Google Home Mini zapłaciłem razem z przesyłką 190 zł.
Jest cena porównywalna, do tego gdybyśmy mieli sami budować Google Assitant na Raspberry Pi 3, trochę taniej wyszłaby cena na Pi Zero.
Urządzenie jest dosyć małych rozmiarów i dosyć porządnie wykonane.
Instalacja jest dosyć prosta, po zainstalowaniu aplikacji Google Home na telefonie lub tablecie, prowadzi nas krok po kroku po polsku.
Ciekawostką jest, to że po instalacji w urządzeniach widnieje mój wcześniej wykonany Google Assistant na Raspberry Pi 3.
Wykrywany jest jako Voice Kit i to co dodamy na Google Home jest tak samo dodawane na Voice Kit i obsługuje urządzenia dodane w Google Home.
Aby dodawać urządzenia z Domoticz do sterowania komendami z asystenta głosowego musimy posiadać stałe IP lub skonfigurować i dodać serwer DDNS.
Jednym z najpopularniejszych i darmowych serwerów DDNS jest no-ip.org -> Link
Zakładamy tam konto i logujemy się, w zakładce Dynamic DNS klikamy Create Host Name, wpisujemy nazwę i wybieramy Create Host Name.
Teraz instalujemy NOIP na Raspberry Pi, w terminalu wpisujemy:
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
Rozpakowujemy pakiet poleceniem:
tar vzxf noip-duc-linux.tar.gz && rm noip-duc-linux.tar.gz
Jak widać pliki wypakowało do folderu: noip-2.1.9-1
Folder ten może różnić zależnie od wersji programu.
Wchodzimy do folderu noip-2.1.9-1
cd noip-2.1.9-1
Teraz wpisujemy:
sudo make
następnie:
sudo make install
Wpisujemy login i hasło do serwisu NOIP , wpisujemy czas w sekundach, co ile ma się aktualizować adres ip, ja wpisałem 300 czyli 5 minut.
Uruchamiamy noip
sudo /usr/local/bin/noip2
Tworzymy plik konfiguracyjny noip:
sudo nano /etc/init.d/noip
Wklejamy tam zawartość:
#! /bin/sh
# /etc/init.d/noip
### BEGIN INIT INFO
# Provides: noip
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
### END INIT INFO
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting noip"
# run application you want to start
/usr/local/bin/noip2
;;
stop)
echo "Stopping noip"
# kill application you want to stop
killall noip2
;;
*)
echo "Usage: /etc/init.d/noip {start|stop}"
exit 1
;;
esac
exit 0
Wciskamy Ctrl+x i T aby zapisać plik.
Nadajemy uprawnienia:
sudo chmod 755 /etc/init.d/noip
i na końcu:
sudo update-rc.d noip defaults
Teraz Raspberry Pi będzie aktualizować nasz adres i będzie on dostępny pod adresem jaki założyliśmy w serwisie noip.
Teraz w routerze otwieramy porty 443 i 80, jest zależne od rodzaju routera.
W Domoticz musimy odczytać numer idx urządzenia które chcemy włączać i wyłączać komenda głosową.
Mój numer idx to 225 i jest to gniazdko sterowane poprzez RFLink.
Gniazdkami będziemy sterować komendami json np.:
włączenie:
https://Login:hasło@adresnoip:443/json.htm?type=command¶m=switchlight&idx=idx&switchcmd=On
wyłączenie:
https://Login:hasło@adresnoip:443/json.htm?type=command¶m=switchlight&idx=idx&switchcmd=Off
W adresie tym w miejsce Login - wpisujemy nasz login do Domoticz, hasło - hasło do Domoticz, a w miejsce idx wpisujemy numer idx urządzenia.
Czyli np.:
https://Edek:edkahaslo12@adresnoip:443/json.htm?type=command¶m=switchlight&idx=225&switchcmd=On
Po wpisaniu tych komend w przeglądarkę internetową urządzenie powinno się włączać i wyłączać.
Ważne, aby w domowym routerze był otwarty i przekierowany port 443 na lokalny adres Raspberry Pi.
Teraz zakładamy konto na IFTTT -> Link
Wchodzimy w My Applets i klikamy New Applet
Klikamy w +this
Wpisujemy google i wybieramy Google Assistant
Teraz klikamy
Teraz w pierwszym i przedostatnim okienku wpisujemy po angielsku, co będziemy mówić, a co odpowie asystent Google.
Klikamy Create Trigger.
Teraz klikamy +that.
Wpisujemy web i wybieramy Webhooks
Teraz
Teraz wpisujemy w URL naszą komendę json, w Conetent Type wybieramy text/plain i klikamy Create action.
Na końcu klikamy Finish.
Ja mam podłączone gniazdko do przelewowego expresu z kawą i po nalaniu wody i wsypaniu kawy włączam expres.
Zdefiniowałem sobie komendę "Make me coffee" o wtedy gniazdko się włącza.
Po wypowiedzeniu komendy "Stop make coffee", gniazdko się wyłącza
Tak możemy dodawać włączanie i wyłączanie dowolnych urządzeń w Domoticz.
Działanie widać na poniższym filmie.
Mam to uruchomione i działa poprawnie ( już wcześniej udało się )
OdpowiedzUsuńteraz walczę z powiadomieniami na google mini, udało mi się
zmusić google mini to "gadania" tego co ja chcę jako (notification) nawet po polsku.... ( NODE RED zainstalowane obok domoticza)
Interesuje mnie jak teraz wysłać dane z domoticza do nodered.
masz może pomysł?
Krzysztof, jak zmusiłeś GH do gadania po polsku?
Usuńw node red jest opcja wyboru języka dla głośnika
UsuńHej Kamil, jakich Nodes używasz w Node-red ? Możesz podesłac Twój Flow?
UsuńJa na chwile obecną używam Nora, steruje światłami i gniazdkami RPI, Sonoff'ami i ESp8266.
Mój email viobama@gmail.com
Witam,
Usuńhey, oświećcie mnie,gdzie zmienić język dla głośnika na polski w nodered ??
dziękuje
Witam,
OdpowiedzUsuńWszystko szło dobrze niestety na etapie: "Po wpisaniu tych komend w przeglądarkę internetową urządzenie powinno się włączać i wyłączać" - komendy nie działają. Po konfiguracji IFTTT również nic nie działa. Może jakieś wskazówki?
Mój blog przekręca chyba znaki, jest to opisane tu https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s
UsuńTroszkę przekręca - ale idziemy ku rozwiązaniu mojego problemu - czuję że jesteśmy blisko. Dziękuję za linka - faktycznie troszkę inaczej jest w linku a inaczej u Ciebie - ale to nic nie szkodzi - już wiem jak ma być ta druga część czyli od części /json.htm?type=command¶m=switchlight&idx=99&switchcmd=Off . Z tą pierwszą częścią jeszcze mam coś nie tak - coś muszę źle podawać - pytania do Ciebie zadałem poniżej.
UsuńMała aktualizacja - może to pomoże szybciej sytuację wyjaśnić. Metodą prób i błędów doszedłem do tego iż jak wpisuje w oknie przeglądarki http://adres IP Raspberry:8080/json.htm?type=command¶m=switchlight&idx=1&switchcmd=On lub Off to przekaźnik działa niestety przez aplet Google Assistant nadal nie działa...
OdpowiedzUsuńDziała w sieci lokalnej, a nie działa na zewnątrz, sprawdź czy masz dobrze otwarte porty na routerze.
UsuńTrzeba przekierować i otworzyć port 443 w routerze.
UsuńTrochę namieszałem - jeszcze raz - https://użytkownikDomoticz:hasłoDomoticz@adresnoip:443/json.htm?type=command¶m=switchlight&idx=1&switchcmd=On - użytkownik i hasło Domoticza to to z rejestracji na my.domoticz.com czy z Menu > Setup > Settings > Website Protection ?
UsuńPorty na 100 % ok
Usuńw miejsce adresnoip za znakiem @ wpisuje ten adres z konta na noip.com (IP Dynamic DNS) tak?
UsuńLogin i hasło z Domoticz i adres z noip
UsuńNie z my.domoticz.com
UsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńJak wpiszesz w przeglądarke adresnoip:443 to zalogujesz sie do Domoticz z zewnatrz i wtedy prosi i login i haslo do Domoticz
OdpowiedzUsuńWiesz co Roman tak sobie myślę że może źle serwer DDNS założyłem na no-ip.org. Przy zakładaniu Hostname co muszę wpisać w pole IPv4 Address? Dowolny adres?
UsuńMusisz sobie wymyślić nazwę hostname przez jaką będziesz się łączył.
UsuńNa ile bezpieczne jest wystawianie domoticza na zewnątrz?
UsuńRoman dziękuję za wskazówki. Wydaje mi się że problem leży u mnie po stronie internetu - mam LTE cyfrowy Polsat - oni blokują porty i dlatego nie działa. Wykupiłem u nich usługę stałego IP - jutro mają włączyć - myślę że po tym zabiegu będzie już wszystko ok. Dzięki !!!
OdpowiedzUsuńProblem był w LTE - dopiero po wykupie usługi stałego IP zaczęło wszystko działać. Dzięki Roman !
UsuńJak wpisuję komendę w przeglądarce światło załącza się.
OdpowiedzUsuńJak powinien być skonfigurowany domoticz - powinien być wystawiony na zewnątrz czy w jakiś inny sposób ustawiony?
Dodam że asystenta mam na telefonie razem z aplikacja ifttt.
Oraz porty 443 i 80 powinny być ustawine dla google home czy od domoticza ?
Powinien być dostęp z zewnątrz po https port 443 jest dla domoticz.
OdpowiedzUsuńJednak coś złe robię komenda do ifttt jednak nie działa kopiowałem komendę z sterowania lokalnego.
OdpowiedzUsuńPytanie to co masz adresnoip to jest adres ip skopiowany z noip.com
czy Hostname >? i login i hasło z strony mojego domoticza.
Caly adres np. roman.hop.to.org i login i haslo z domoticz, po wpisaniu tego w przegladarke ma np. Wylaczyc cos a ma byc https
OdpowiedzUsuńA macie jakiś pomysł żeby sterować domoticzem po polsku? W ifttt mam dodana komende " turn od lighting in room" i google działa na włącz oświetlenie w pokoju ale już " turn on lighting in bathroom" nie działa po polsku
OdpowiedzUsuńwpisujesz komendy po angielsku odpowiedzi po polsku a do asystenta google zwracasz się po polsku
UsuńHej morduje to juz 2 dzien po wpisaniu w przegladarke wszystko dziala a przez ifttt nic nie chce ruszyć?
OdpowiedzUsuńza mało szczegółów
UsuńWpisuję taki link i przez przegladarke przekaznik startuje. https://użytkownikDomoticz:hasłoDomoticz@adresnoip:443/json.htm?type=command¶m=switchlight&idx=1&switchcmd=On. Wpisuje domene noip, otwiera domoticz a przez asystenta 0 reakcji
OdpowiedzUsuńMa włączać coś, lub jak na końcu wpiszesz Off, to ma wyłączać, a nie otwierać się Domoticz.
UsuńTak, jak wpisze w przegladarke to wszystko działa mogę wlaczyc i wylaczyc tylko przez google brak reakcji. Jest odpowiedz z google ze wlaczy ale swiatlo sie nie zapali
UsuńSprawdź, czy dobrze wszystko wpisałeś w IFFTT.
UsuńTeraz sprawdziłem że jak połączę się z innym internetem niż domowym to linki już nie działają. Działa tylko jak jestem połączony z internetem z routera domowego
OdpowiedzUsuńNo routerze trzeba przekierować i otworzyć port 443.
UsuńDla mnie te porty nie do ogarnięcia.adres ip lan to ip domoticza?,port lan ? port wan?
UsuńMoze być ze w t-mobile blokują porty i nic z tym nie zrobię
UsuńI nic z tego w t-mobile tylko klientom biznesowym mogą włączyć zewnętrzne ip i odblokować porty. Zostało tylko poczekać z projektem ok 2 lat 😀😀.
OdpowiedzUsuńYour website is very beautiful or Articles. I love it thank you for sharing for everyone. Google home cena
OdpowiedzUsuńDzięki, bardzo mi pomógł Twój opis. Zastanawia mnie tylko na ile bezpieczne jest otwieranie portu domoticza na świat? Na razie otworzyłem port 443 dla wszystkich ale myślę żeby odfiltrować adresy i dopuścić tylko te IP z których ifttt przysyła. Czy ma to sens i czy masz jakiś pomysł jak to sprawdzić jakie adresy ma ifttt? CZy można filtrować po domenie w ddwrt?
OdpowiedzUsuńCześć, czy ktoś próbował ogarnąć odczyt temperatur z czujników przez asystenta Google?
OdpowiedzUsuńTeż bardzo chciałbym to wiedzieć. Udało się komuś? Chciałbym zapytać jaka jest temp.? I uzyskać w odpowiedzi np. Aktualnie jest 21 st.C
UsuńA co do gadania po polsku, to u mnie śmiga to automatycznie. Definiuję wszystko po angielsku, wydaję komendę pierwszy raz po angielsku a kolejną już po polsku i google assistant najwidoczniej sam sobie to tłumaczy na angielski! :)