<ph type="x-smartling-placeholder">
Suivez ces instructions pour exécuter du code personnalisé sur votre appareil dans en réponse aux commandes de l'Assistant Google.
Exécuter l'exemple
Maintenant que vous avez défini une caractéristique et mis à jour le modèle, vérifiez assurez-vous que l'Assistant Google renvoie une commande d'activation/de désactivation pour la requête.
googlesamples-assistant-hotword --device-model-id my-model
Essayez d'exécuter la requête suivante :
Ok Google, active.
Vous devriez voir les instructions suivantes dans le résultat de la console. Si ce n'est pas le cas, consultez dans les instructions de dépannage.
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}
Vous trouverez l'emplacement de ces instructions dans le code source.
Obtenir le code source
Vous êtes maintenant prêt à démarrer votre propre projet:
git clone https://github.com/googlesamples/assistant-sdk-python
Rechercher le gestionnaire de commandes
Le fichier hotword.py
de l'exemple de code utilise le SDK pour envoyer des requêtes et
recevoir des réponses de l'Assistant Google.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
Recherchez la définition de gestionnaire suivante:
def process_event(event):
Actuellement, cette fonction affiche le nom de chaque événement d'action sur l'appareil et les par la ligne suivante:
print('Do command', command, 'with params', str(params))
Ce code gère la commande action.devices.commands.OnOff
. Ce
fait partie de la commande OnOff
du schéma de caractéristique. Actuellement, ce code imprime simplement la sortie dans la console. Vous pouvez
modifiez ce code pour faire ce que vous voulez
projet. Ajoutez le bloc suivant sous la commande print
dans 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.')
Exécutez directement le code source modifié pour voir le résultat.
python hotword.py --device-model-id my-model
Utilisez la même requête que précédemment:
Ok Google, active.
Si vous avez connecté une LED au Raspberry Pi, lisez la suite pour savoir comment allumer la LED en réponse à la commande OnOff. Si ce n'est pas le cas, passez la section suivante pour savoir comment Ajoutez d'autres caractéristiques et gestionnaires.
Étapes suivantes : Raspberry Pi
Maintenant que vous savez comment gérer la commande entrante, modifiez l'exemple de code pour allumer un voyant LED. Cela nécessitera du matériel supplémentaire si vous utilisez Raspberry Pi.
Importer le package GPIO
Pour simplifier l'accès logiciel aux broches GPIO (General Usage Input/Output) Raspberry Pi, installez le fichier RPi.GPIO dans l'environnement virtuel.
pip install RPi.GPIO
Modifier l'exemple
Ouvrez le fichier hotword.py
.
nano hotword.py
Dans le fichier hotword.py
, importez le fichier RPi.GPIO.
pour contrôler les broches GPIO sur le Pi. Placez l'instruction suivante à proximité du
Autres instructions import
:
import RPi.GPIO as GPIO
Modifiez le code pour définir initialement la broche de sortie sur l'état logique faible. À faire
dans la fonction main()
, avant de traiter les événements:
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) ...
Modifiez le code que vous avez ajouté dans process_event()
. Lorsque la commande « on »
est reçue,
définissez la broche sur l'état logique élevé. Lorsque la commande "off" est reçue, définissez
à l'état logique faible.
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)
Enregistrez les modifications et fermez le fichier.
Exécuter l'exemple
Exécutez l'exemple de code modifié.
python hotword.py --device-model-id my-model
Utilisez la même requête que précédemment. Le voyant doit s'allumer.
Et ce n'est que le début. Découvrez comment ajouter d'autres caractéristiques et gestionnaires.