Sigue estas instrucciones para ejecutar un código personalizado en tu dispositivo en respuesta a comandos de Asistente de Google.
Ejecutar la muestra
Ahora que definiste una característica y actualizaste el modelo, asegúrate de que Asistente de Google esté enviando un comando de activación/desactivación para la consulta adecuada.
googlesamples-assistant-hotword --device-model-id my-model
Pruebe la siguiente consulta:
Hey Google, activa.
Deberías ver las siguientes instrucciones en los resultados de la consola. Si no es así, consulta las instrucciones para solucionar problemas.
ON_RECOGNIZING_SPEECH_FINISHED:
{'text': 'turn on'}
ON_DEVICE_ACTION:
{'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}
Encontrarás esta información en el código fuente.
Obtén el código fuente
Ahora estás listo para comenzar tu propio proyecto:
git clone https://github.com/googlesamples/assistant-sdk-python
Busca el controlador de comandos
El archivo hotword.py
del código de muestra usa el SDK para enviar solicitudes y recibir respuestas de Asistente de Google.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
Busca la siguiente definición de controlador:
def process_event(event):
Actualmente, esta función imprime todos los nombres de eventos de acción del dispositivo y cualquier parámetro con la siguiente línea:
print('Do command', command, 'with params', str(params))
Este código controla el comando action.devices.commands.OnOff
. Este comando forma parte del esquema de la característica OnOff. Actualmente, este código solo imprime el resultado en la consola. Puedes modificar este código para hacer lo que quieras en tu proyecto. Agrega el siguiente bloque debajo del comando print
en process_event()
.
print('Do command', command, 'with params', str(params)) # Add the following: if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') else: print('Turning the LED off.')
Ejecuta el código fuente modificado directamente para ver el resultado.
python hotword.py --device-model-id my-model
Usa la misma consulta que antes:
Hey Google, activa.
Si conectaste una luz LED a la Raspberry Pi, sigue leyendo para obtener información sobre cómo iluminar la luz LED en respuesta al comando OnOff. De lo contrario, omite la siguiente sección para aprender a agregar más características y controladores.
Próximos pasos: Raspberry Pi
Ahora que sabes cómo controlar el comando entrante, modifica el código de muestra para iluminar un LED. Si usas Raspberry Pi, necesitarás hardware adicional.
Importa el paquete GPIO
Para simplificar el acceso al software a las clavijas de entrada y salida de uso general (GPIO) en Raspberry Pi, instala el paquete RPi.GPIO en el entorno virtual.
pip install RPi.GPIO
Modifica la muestra
Abre el archivo hotword.py
.
nano hotword.py
En el archivo hotword.py
, importa el módulo RPi.GPIO para controlar las clavijas GPIO en Pi. Coloca la siguiente instrucción cerca de las otras declaraciones import
:
import RPi.GPIO as GPIO
Modifica el código para establecer inicialmente el pin de salida en el estado lógico bajo. Haz esto en la función main()
antes de procesar los eventos:
with Assistant(credentials, device_model_id) as assistant: events = assistant.start() device_id = assistant.device_id print('device_model_id:', device_model_id) print('device_id:', device_id + '\n') GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) ...
Modifica el código que agregaste en process_event()
. Cuando se reciba el comando, configura el marcador en el estado de lógica alta. Cuando se reciba el comando off, establece el marcador en el estado de lógica baja.
if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') GPIO.output(25, 1) else: print('Turning the LED off.') GPIO.output(25, 0)
Guarda los cambios y cierra el archivo.
Ejecutar la muestra
Ejecuta el código de muestra modificado.
python hotword.py --device-model-id my-model
Usa la misma consulta de antes. Se debería encender la luz LED.
Ese es solo el comienzo. Obtén más información para agregar más traits y controladores.