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.
wtorek, 26 czerwca 2018
poniedziałek, 18 czerwca 2018
Instalacja Google Assistant na Rasberry Pi 3 i Zero
Od moich ostatnich wpisów o Google Assistant na Rasberry Pi upłynęło już trochę czasu.
Dzisiaj opiszę jak zainstalować Google Assistant na Rasberry Pi Zero i Pi 3 na Raspbianie Stretch z dnia 18 kwietnia 2018.
Do budowy będą potrzebne:
1. Rasberry Pi Zero W lub Pi 3 z kartą micro SD
2. Karta dźwiękowa USB
3. Mikrofon z wtykiem mały jack
4. Układ wzmacniacza PAM8403 z małym głośnikiem
5. Wtyk mały jack stereo z przewodem
6. Zasilacz do Rasberry Pi
7. Przejściówka wtyk micro USB - gniazdo USB
Schemat podłączenia.
Wyjścia Rasberry Pi Zero.
Na czas konfiguracji będą jeszcze potrzebne klawiatura, myszka USB, przewód HDMI.
Obraz systemu pobieramy z tej strony -> Link
Po pobraniu rozpakowujemy go i będziemy mieć obraz systemu: 2018-04-18-raspbian-stretch.img
Wgrywamy go na kartę programem Win32 Disk Imager, który jest dostępny pod tym linkiem -> Link
Po uruchomieniu Win32 Disk Imager w Plik obrazu wybieramy pobrany obraz 2018-04-18-raspbian-stretch.img
Klikamy Zapisz.
Wybieramy Yes i rozpocznie się zapis obrazu na kartę SD.
Po zakończeniu zapisu powinien wyświetlić się Zapis pomyślny, klikamy OK i wkładamy kartę SD do Raspberry Pi.
Podłączamy Raspberry Pi do telewizora lub monitora przewodem HDMI, podłączamy myszkę i klawiaturę na USB, kartę dźwiękową USB i na końcu zasilanie.
Uruchomi się Raspbian Stretch.
Pierwszą rzeczą jaką zrobimy, to połączmy się po Wifi z domową siecią.
U góry po prawej stronie znajduje się ikonka połączeń sieciowych, klikamy Turn On Wi-Fi, aby włączyć Wifi w Raspberry Pi.
Powinno wykryć naszą domową sieć Wifi, wpisujemy hasło i powinniśmy mieć połączenie z Wifi.
Możemy ustawić ustawienia regionalne jak język, klawiatura itd... w Raspberry Pi Configuration
Dokonujemy aktualizację systemu, otwieramy terminal.
Wpisujemy:
sudo apt-get update
oraz
sudo apt-get upgrade
restartujemy Raspberry Pi poleceniem:
sudo reboot
Gdy mamy już zaktualizowany system, możemy przystąpić do instalacji Google Assistant.
Jest to opisane po angielsku na stronie -> Link
Najpierw kopiujemy pliki ze strony, która podałem wcześniej, w terminalu wpisujemy:
sudo apt-get install git
git clone https://github.com/shivasiddharth/GassistPi
Ustawiamy odpowiednia kartę dźwiękową, klikamy w ikonkę głośnika u góry po prawej prawym klawiszem myszy i zaznaczamy elementy sterujące dla odtwarzania i nagrywania.
Instalujemy obsługę karty dźwiękowej USB i robimy test:
sudo chmod +x /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
sudo /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
speaker-test
Jeżeli wszystko przebiegnie dobrze to będziemy słyszeć szum z głośnika.
Teraz otwieramy przeglądarkę internetową, wpisujemy adres www.google.pl i logujemy się do naszego konta google
Następnie wpisujemy adres w przeglądarce:
https://console.actions.google.com/?pli=1
Klikamy Add/import project
Zmieniamy kraj na Polskę, wpisujemy nazwę i klikamy Create project
Wybieramy Device registration
Teraz otwieramy stronę:
https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
Klikamy Włącz
Teraz otwieramy stronę:
https://myaccount.google.com/activitycontrols
Włączamy wszystkie opcje
Teraz otwieramy:
https://console.actions.google.com/
Wybieramy nasz projekt, przechodzimy do Advanced Options i klikamy Device registration
Klikamy Register Model
Wpisujemy nazwę dowolną i wybieramy rodzaj dowolny.
Teraz klikamy Download.
Klikamy Next i dalej Skip.
Teraz otwieramy terminal i wpisujemy:
scp ~/Downloads/credentials.json pi@raspberry-pi-ip-address:/home/pi/
gdzie: raspberry-pi-ip-address jest adres ip raspberry pi
U mnie będzie to:
scp ~/Downloads/credentials.json pi@192.168.3.14:/home/pi/
Wpisujemy: yes
Następnie wpisujemy hasło do Raspberry Pi
Teraz w terminalu wpisujemy:
Dla Raspberry Pi 3:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
Dla Raspberry Pi Zero:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
Wpisujemy pełną nazwę pliku json i ścieżkę: /home/pi/credentials.json
Dalej nazwę naszego projektu i Id model, jest to widoczne po wybraniu naszego wcześniej utworzonego projektu na stronie:
https://console.actions.google.com/
Klikamy w nasz projekt i w menu po lewej Device registration
Po wybraniu projektu mamy nazwę i Id model
Jak widać u mnie nazwa to Voice i model id: voice-166811-voice-pws8rb
Instalacja trochę potrwa i na końcu instalacji wyświetli się adres strony internetowej https:// , kopiujemy do przegladarki
Wybieramy nasze konto Google i klikamy Zezwól, wyświetli się kod, kopiujemy go do terminala i wciskamy Enter.
Na końcu powinien uruchomić się asystent
U mnie pojawił się błąd i było wymagane skopiowanie danych z Spotify.
Możemy przeprowadzić test działania wpisując w terminalu:
/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id 'model id"
gdzie w miejsce 'model id' wpisujemy Id model
czyli u mnie to będzie:
/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id voice-166811-voice-pws8rb
Po pojawieniu się błędu logujemy się na stronie Spotify -> Link
Jeżeli nie mamy konta na Spotify, to zakładamy go.
Po zalogowaniu klikamy CREATE A CLIENT ID , wpisujemy nazwę i wybieramy np. Voice, wybieramy NO, zaznaczamy wszystkie ptaszki i klikamy SUBMIT.
Na stronie będą: Client ID i Client Secret, dane te oraz login kopiujemy do pliku config.yaml w katalogu /home/pi/GassistPi/src
Wpisujemy je w miejsce:
#Spotify credentials. Register for a spotify developer and get the credentials.
Spotify:
client_id: 'ENTER YOUR SPOTIFY CLIENT ID HERE'
client_secret: 'ENTER YOUR SPOTIFY CLIENT SECRET HERE'
username: 'ENTER YOUR SPOTIFY USERNAME HERE'
Po zapisaniu pliku test przebiegł pomyślnie.
Teraz konfigurujemy, aby Assistant uruchamiał się przy starcie.
W terminalu wpisujemy kolejno:
sudo chmod +x /home/pi/GassistPi/scripts/service-installer.sh
sudo /home/pi/GassistPi/scripts/service-installer.sh
sudo systemctl enable gassistpi-ok-google.service
sudo systemctl start gassistpi-ok-google.service
Po restarcie Google Assistant powinien uruchomić się automatycznie.
Działanie pokazano na filmie.
Można jeszcze dodać diody led na piny GPIO 5 i 6, informują one kiedy możemy mówić, a kiedy mówi Google Assistant, widać to na poniższym filmie.
Dzisiaj opiszę jak zainstalować Google Assistant na Rasberry Pi Zero i Pi 3 na Raspbianie Stretch z dnia 18 kwietnia 2018.
Do budowy będą potrzebne:
1. Rasberry Pi Zero W lub Pi 3 z kartą micro SD
2. Karta dźwiękowa USB
3. Mikrofon z wtykiem mały jack
4. Układ wzmacniacza PAM8403 z małym głośnikiem
5. Wtyk mały jack stereo z przewodem
6. Zasilacz do Rasberry Pi
7. Przejściówka wtyk micro USB - gniazdo USB
Schemat podłączenia.
Wyjścia Rasberry Pi Zero.
Na czas konfiguracji będą jeszcze potrzebne klawiatura, myszka USB, przewód HDMI.
Obraz systemu pobieramy z tej strony -> Link
Po pobraniu rozpakowujemy go i będziemy mieć obraz systemu: 2018-04-18-raspbian-stretch.img
Wgrywamy go na kartę programem Win32 Disk Imager, który jest dostępny pod tym linkiem -> Link
Po uruchomieniu Win32 Disk Imager w Plik obrazu wybieramy pobrany obraz 2018-04-18-raspbian-stretch.img
Klikamy Zapisz.
Wybieramy Yes i rozpocznie się zapis obrazu na kartę SD.
Po zakończeniu zapisu powinien wyświetlić się Zapis pomyślny, klikamy OK i wkładamy kartę SD do Raspberry Pi.
Podłączamy Raspberry Pi do telewizora lub monitora przewodem HDMI, podłączamy myszkę i klawiaturę na USB, kartę dźwiękową USB i na końcu zasilanie.
Uruchomi się Raspbian Stretch.
Pierwszą rzeczą jaką zrobimy, to połączmy się po Wifi z domową siecią.
U góry po prawej stronie znajduje się ikonka połączeń sieciowych, klikamy Turn On Wi-Fi, aby włączyć Wifi w Raspberry Pi.
Powinno wykryć naszą domową sieć Wifi, wpisujemy hasło i powinniśmy mieć połączenie z Wifi.
Możemy ustawić ustawienia regionalne jak język, klawiatura itd... w Raspberry Pi Configuration
Dokonujemy aktualizację systemu, otwieramy terminal.
Wpisujemy:
sudo apt-get update
oraz
sudo apt-get upgrade
restartujemy Raspberry Pi poleceniem:
sudo reboot
Gdy mamy już zaktualizowany system, możemy przystąpić do instalacji Google Assistant.
Jest to opisane po angielsku na stronie -> Link
Najpierw kopiujemy pliki ze strony, która podałem wcześniej, w terminalu wpisujemy:
sudo apt-get install git
git clone https://github.com/shivasiddharth/GassistPi
Ustawiamy odpowiednia kartę dźwiękową, klikamy w ikonkę głośnika u góry po prawej prawym klawiszem myszy i zaznaczamy elementy sterujące dla odtwarzania i nagrywania.
Instalujemy obsługę karty dźwiękowej USB i robimy test:
sudo chmod +x /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
sudo /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
speaker-test
Jeżeli wszystko przebiegnie dobrze to będziemy słyszeć szum z głośnika.
Teraz otwieramy przeglądarkę internetową, wpisujemy adres www.google.pl i logujemy się do naszego konta google
Następnie wpisujemy adres w przeglądarce:
https://console.actions.google.com/?pli=1
Klikamy Add/import project
Zmieniamy kraj na Polskę, wpisujemy nazwę i klikamy Create project
Wybieramy Device registration
Teraz otwieramy stronę:
https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
Klikamy Włącz
Teraz otwieramy stronę:
https://myaccount.google.com/activitycontrols
Włączamy wszystkie opcje
Teraz otwieramy:
https://console.actions.google.com/
Wybieramy nasz projekt, przechodzimy do Advanced Options i klikamy Device registration
Klikamy Register Model
Wpisujemy nazwę dowolną i wybieramy rodzaj dowolny.
Teraz klikamy Download.
Klikamy Next i dalej Skip.
Teraz otwieramy terminal i wpisujemy:
scp ~/Downloads/credentials.json pi@raspberry-pi-ip-address:/home/pi/
gdzie: raspberry-pi-ip-address jest adres ip raspberry pi
U mnie będzie to:
scp ~/Downloads/credentials.json pi@192.168.3.14:/home/pi/
Wpisujemy: yes
Następnie wpisujemy hasło do Raspberry Pi
Teraz w terminalu wpisujemy:
Dla Raspberry Pi 3:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
Dla Raspberry Pi Zero:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
Wpisujemy pełną nazwę pliku json i ścieżkę: /home/pi/credentials.json
Dalej nazwę naszego projektu i Id model, jest to widoczne po wybraniu naszego wcześniej utworzonego projektu na stronie:
https://console.actions.google.com/
Klikamy w nasz projekt i w menu po lewej Device registration
Po wybraniu projektu mamy nazwę i Id model
Jak widać u mnie nazwa to Voice i model id: voice-166811-voice-pws8rb
Instalacja trochę potrwa i na końcu instalacji wyświetli się adres strony internetowej https:// , kopiujemy do przegladarki
Wybieramy nasze konto Google i klikamy Zezwól, wyświetli się kod, kopiujemy go do terminala i wciskamy Enter.
Na końcu powinien uruchomić się asystent
U mnie pojawił się błąd i było wymagane skopiowanie danych z Spotify.
Możemy przeprowadzić test działania wpisując w terminalu:
/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id 'model id"
gdzie w miejsce 'model id' wpisujemy Id model
czyli u mnie to będzie:
/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id voice-166811-voice-pws8rb
Po pojawieniu się błędu logujemy się na stronie Spotify -> Link
Jeżeli nie mamy konta na Spotify, to zakładamy go.
Po zalogowaniu klikamy CREATE A CLIENT ID , wpisujemy nazwę i wybieramy np. Voice, wybieramy NO, zaznaczamy wszystkie ptaszki i klikamy SUBMIT.
Na stronie będą: Client ID i Client Secret, dane te oraz login kopiujemy do pliku config.yaml w katalogu /home/pi/GassistPi/src
Wpisujemy je w miejsce:
#Spotify credentials. Register for a spotify developer and get the credentials.
Spotify:
client_id: 'ENTER YOUR SPOTIFY CLIENT ID HERE'
client_secret: 'ENTER YOUR SPOTIFY CLIENT SECRET HERE'
username: 'ENTER YOUR SPOTIFY USERNAME HERE'
Po zapisaniu pliku test przebiegł pomyślnie.
Teraz konfigurujemy, aby Assistant uruchamiał się przy starcie.
W terminalu wpisujemy kolejno:
sudo chmod +x /home/pi/GassistPi/scripts/service-installer.sh
sudo /home/pi/GassistPi/scripts/service-installer.sh
sudo systemctl enable gassistpi-ok-google.service
sudo systemctl start gassistpi-ok-google.service
Po restarcie Google Assistant powinien uruchomić się automatycznie.
Działanie pokazano na filmie.
Można jeszcze dodać diody led na piny GPIO 5 i 6, informują one kiedy możemy mówić, a kiedy mówi Google Assistant, widać to na poniższym filmie.
Subskrybuj:
Posty (Atom)