以下の手順で、お使いのデバイスでカスタムコードを実行できます。 Google アシスタントのコマンドに反応します。
サンプルの実行
トレイトを定義し、モデルを更新したので、次は Google アシスタントが適切なステータスのコマンドに対してオン/オフ コマンドを返していることを確認します。 なります。
googlesamples-assistant-pushtotalk
Enter キーを押した後、次のクエリを試します。
オンにする。
コンソールに次のような出力が表示されます。そうでない場合は、 トラブルシューティングの手順をご覧ください。
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.
次に、これらのステートメントがソースコード内のどこで出力されているかを調べます。
ソースコードを取得する
次のコマンドで、独自のプロジェクトをすぐに開始できます。
git clone https://github.com/googlesamples/assistant-sdk-python
コマンド ハンドラを探す
サンプルコードの pushtotalk.py
ファイルは、SDK を使用してリクエストを送信し、
Google アシスタントからの回答を受信できます。
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
次のハンドラ定義を検索します。
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')
onoff()
のコードは、コマンド action.devices.commands.OnOff
を処理します。この
OnOff エラーの一部
トレイト スキーマがあります。
現在、onoff()
定義のログはコンソールに出力されます。ヘルパー関数を使用
device_helpers.py
の関数を使用して、レスポンスの JSON を解析し、コマンドを保存します。
パラメータを変数に含めることができます。このコードを変更して、
指定します。
LED キットをお持ちの場合は、この続きを読み進めて LED を点灯させる方法をご確認ください。 設定されます。そうでない場合は、次のセクションをスキップして、 トレイトとハンドラを追加する。
次のステップ - Raspberry Pi
受信コマンドの処理方法がわかったので、サンプルコードを変更します。 操作できます。カスタム マシンタイプを使用する場合は、追加のハードウェアが必要になります。 Raspberry Pi。
GPIO パッケージをインポートする
デバイスの汎用入出力(GPIO)ピンへのソフトウェア アクセスを RPi.GPIO をインストールします。 パッケージ化されています。
pip install RPi.GPIO
サンプルを変更する
pushtotalk.py
ファイルを開きます。
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
pushtotalk.py
ファイルで、RPi.GPIO をインポートします。
モジュールを使用して Pi の GPIO ピンを制御します。次の文を
他の import
ステートメント:
import RPi.GPIO as GPIO
コードを変更して、出力ピンの初期状態を低論理状態に設定します。Google 入力したら、ピンをハイ ロジック状態に設定します。Google 受信したら、ピンを低論理状態に設定します。
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)
変更を保存し、ファイルを閉じます。
サンプルを実行する
変更したサンプルコードを実行します。
python pushtotalk.py
前と同じクエリを使用します。LED が点灯するはずです。
これはまだ序盤です。次に、トレイトとハンドラをさらに追加する方法を学びましょう。