Siga estas instruções para executar código personalizado em seu dispositivo em resposta a comandos do Google Assistente.
Executar a amostra
Agora que você definiu uma característica e atualizou o modelo, marque para garantir verifique se o Google Assistente está enviando um comando de ativação/desativação para o consulta.
googlesamples-assistant-pushtotalk
Pressione a tecla Enter e tente a seguinte consulta:
Ativar.
Você verá as seguintes instruções na saída do console. Caso contrário, consulte as instruções de solução de problemas.
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.
Você descobrirá onde essas instruções são impressas no código-fonte.
Conseguir o código-fonte
Agora você já pode iniciar seu próprio projeto:
git clone https://github.com/googlesamples/assistant-sdk-python
Encontre o gerenciador de comando
O arquivo pushtotalk.py
no exemplo de código usa o SDK para enviar solicitações e
receber respostas do Google Assistente.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Pesquise a seguinte definição do gerenciador:
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')
O código em onoff()
processa o comando action.devices.commands.OnOff
. Isso
faz parte do pipeline OnOff
de características comuns.
Atualmente, os registros de definição de onoff()
enviam saídas para o console. Ele usa o assistente
em device_helpers.py
para analisar o JSON de resposta e armazenar o comando
em variáveis para facilitar o uso. Você pode modificar esse código
você quer em seu projeto.
Se você tem um kit de LED, continue lendo para saber como acender o LED em resposta ao comando OnOff. Caso contrário, pule a próxima seção para saber como adicione mais características e gerenciadores.
Próximas etapas: Raspberry Pi
Agora que você sabe como processar o comando recebido, modifique o exemplo de código para acender um LED. Isso exigirá algum hardware adicional se você estiver usando o o Raspberry Pi.
Importar o pacote GPIO
Para simplificar o acesso de software aos pinos de Entrada/Saída de Uso Geral (GPIO, na sigla em inglês) em o Raspberry Pi, instale o arquivo RPi.GPIO no ambiente virtual.
pip install RPi.GPIO
Modificar o exemplo
Abra o arquivo pushtotalk.py
.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
No arquivo pushtotalk.py
, importe RPi.GPIO.
para controlar os pinos GPIO no Pi. Coloque a instrução a seguir perto do
outras instruções import
:
import RPi.GPIO as GPIO
Modifique o código para definir o pin de saída inicialmente como o estado de baixa lógica. Quando o quando o comando for recebido, defina o pin para o estado de alta lógica. Quando o off for recebido, defina o pin como o estado de baixa lógica.
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)
Salve as alterações e feche o arquivo.
Executar a amostra
Execute o exemplo de código modificado.
python pushtotalk.py
Use a mesma consulta de antes. O LED vai acender.
Isso é só o começo. Saiba como adicionar mais características e gerenciadores.