Polecenia z nicka

Postępuj zgodnie z tymi instrukcjami, aby uruchomić niestandardowy kod na swoim urządzeniu w w odpowiedzi na polecenia Asystenta Google.

Uruchamianie przykładu

Po zdefiniowaniu cechy i zaktualizowaniu modelu sprawdź, czy sprawdź, czy Asystent Google wysyła polecenie włączenia/wyłączenia odpowiedniego zapytania.

googlesamples-assistant-pushtotalk

Naciśnij klawisz Enter i spróbuj wykonać to zapytanie:

Włącz.

W danych wyjściowych konsoli powinny wyświetlić się instrukcje poniżej. Jeśli nie, zobacz instrukcje rozwiązywania problemów.

INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.

Informacje o tym, gdzie są one wydrukowane, znajdziesz w kodzie źródłowym.

Pobieranie kodu źródłowego

Możesz teraz rozpocząć własny projekt:

git clone https://github.com/googlesamples/assistant-sdk-python

Znajdowanie modułu obsługi poleceń

Plik pushtotalk.py w przykładowym kodzie używa pakietu SDK do wysyłania żądań oraz otrzymywać odpowiedzi od Asystenta Google.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

Wyszukaj tę definicję modułu obsługi:

device_handler = device_helpers.DeviceRequestHandler(device_id)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
    else:
        logging.info('Turning device off')

Kod w tabeli onoff() obsługuje polecenie action.devices.commands.OnOff. Ten jest częścią funkcji OnOff. schemat cech.

Obecnie do konsoli są wysyłane logi definicji onoff(). Wykorzystuje asystenta funkcji w device_helpers.py w celu przeanalizowania odpowiedzi JSON i zapisania polecenia w zmiennych, aby ułatwić korzystanie z nich. Możesz zmodyfikować ten kod, w projekcie.

Jeśli masz zestaw LED, czytaj dalej, aby dowiedzieć się, jak zapalić diodę LED w odpowiedzi do polecenia OnOff. Jeśli go nie masz, przejdź do następnej sekcji, aby dowiedzieć się, jak dodaj więcej cech i modułów obsługi.

Kolejne kroki – Raspberry Pi

Już wiesz, jak obsługiwać polecenie przychodzące, możesz więc zmodyfikować przykładowy kod aby zapalić diodę LED. Będzie to wymagać dodatkowego sprzętu, jeśli korzystasz z Malinowy Pi.

Importuj pakiet GPIO

Aby uprościć dostęp oprogramowania do złączy GPIO (wejścia/wyjściowe do zwykłych obciążeń) na Raspberry Pi, zainstaluj pakiet RPi.GPIO w środowisku wirtualnym.

pip install RPi.GPIO

Modyfikowanie próbki

Otwórz plik pushtotalk.py.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

W pliku pushtotalk.py zaimportuj RPi.GPIO do sterowania pinami GPIO w Pi. Umieść następujące oświadczenie w pobliżu inne wyciągi import:

import RPi.GPIO as GPIO

Zmodyfikuj kod, aby ustawić początkowy kod PIN w stanie niskiego logiki. Gdy po odebraniu polecenia ustaw kod PIN na stan wysokiego poziomu logiki. Gdy gdy zostanie odebrane polecenie wyłączone, ustaw kod PIN w stanie niskiego logiki.

device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
        GPIO.output(25, 1)
    else:
        logging.info('Turning device off')
        GPIO.output(25, 0)

Zapisz zmiany i zamknij plik.

Uruchamianie przykładu

Uruchom zmodyfikowany przykładowy kod.

python pushtotalk.py

Użyj tego samego zapytania co poprzednio. Dioda LED powinna się włączyć.

To dopiero początek. Dowiedz się, jak dodać więcej cech i modułów obsługi.