Befolgen Sie diese Anweisungen, um benutzerdefinierten Code auf Ihrem Gerät auszuführen in auf Sprachbefehle von Google Assistant reagieren.
Beispiel ausführen
Nachdem Sie nun ein Merkmal definiert und das Modell aktualisiert haben, dass Google Assistant einen Ein/Aus-Befehl für den entsprechenden Abfrage.
googlesamples-assistant-pushtotalk
Drücken Sie die Eingabetaste und geben Sie die folgende Abfrage ein:
Aktivieren
In der Konsolenausgabe sollten die folgenden Anweisungen angezeigt werden. Ist dies nicht der Fall, lesen Sie in der Anleitung zur Fehlerbehebung.
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.
Sie sehen, wo diese Anweisungen im Quellcode gedruckt werden.
Quellcode abrufen
Jetzt können Sie Ihr eigenes Projekt starten:
git clone https://github.com/googlesamples/assistant-sdk-python
Befehls-Handler suchen
In der Datei pushtotalk.py
im Beispielcode wird das SDK zum Senden von Anfragen und
Antworten von Google Assistant erhalten.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Suchen Sie nach der folgenden Handler-Definition:
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')
Der Code in onoff()
verarbeitet den Befehl action.devices.commands.OnOff
. Dieses
ist Teil des OnOff
Trait-Schema.
Derzeit wird die Ausgabe der onoff()
-Definitionslogs an die Console gesendet. Es verwendet Hilfsprogramm
Funktionen in device_helpers.py
, um die JSON-Antwort zu parsen und den Befehl zu speichern
Parameter in Variablen einfügen. Sie können diesen Code so ändern,
die Sie für Ihr Projekt benötigen.
Wenn Sie ein LED-Kit haben, lesen Sie weiter, um zu erfahren, wie Sie die LED entsprechend beleuchten. zum OnOff-Befehl. Ist dies nicht der Fall, überspringen Sie den nächsten Abschnitt, Weitere Traits und Handler hinzufügen.
Nächste Schritte – Raspberry Pi
Da Sie nun wissen, wie Sie den eingehenden Befehl verwenden, können Sie den Beispielcode um eine LED anzuleuchten. Hierfür ist zusätzliche Hardware erforderlich, wenn Sie den Himbeer-Pi
GPIO-Paket importieren
Vereinfachen Sie den Softwarezugriff auf die GPIO-Pins (General purpose Input/Output) auf den Raspberry Pi, installieren Sie das Paket RPi.GPIO. Paket in der virtuellen Umgebung.
pip install RPi.GPIO
Beispiel ändern
Öffnen Sie die Datei pushtotalk.py
.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Importieren Sie die Datei RPi.GPIO in die Datei pushtotalk.py
.
um die GPIO-Pins auf dem Pi zu steuern. Platzieren Sie die folgende Anweisung in der Nähe des
Andere import
-Anweisungen:
import RPi.GPIO as GPIO
Ändern Sie den Code so, dass die Ausgabe-Pin anfangs auf den niedrigen Logikstatus gesetzt wird. Wenn der Parameter wenn der Befehl empfangen wird, setzen Sie den Pin auf den High-Logik-Zustand. Wenn der Parameter aus.
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)
Speichern Sie die Änderungen und schließen Sie die Datei.
Beispiel ausführen
Führen Sie den geänderten Beispielcode aus.
python pushtotalk.py
Verwenden Sie dieselbe Abfrage wie zuvor. Die LED sollte aufleuchten.
Aber das ist erst der Anfang. Weitere Informationen zum Hinzufügen weiterer Traits und Handler