<ph type="x-smartling-placeholder">
以下の手順で、お使いのデバイスでカスタムコードを実行できます。 Google アシスタントのコマンドに反応します。
サンプルの実行
トレイトを定義し、モデルを更新したので、次は Google アシスタントが適切なステータスのコマンドに対してオン/オフ コマンドを返していることを確認します。 なります。
googlesamples-assistant-hotword --device-model-id my-model
以下のクエリを試します。
OK Google, オンにして。
コンソールに次のような出力が表示されます。そうでない場合は、 トラブルシューティングの手順をご覧ください。
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}
次に、これらのステートメントがソースコード内のどこで出力されているかを調べます。
ソースコードを取得する
次のコマンドで、独自のプロジェクトをすぐに開始できます。
git clone https://github.com/googlesamples/assistant-sdk-python
コマンド ハンドラを探す
サンプルコードの hotword.py
ファイルは、SDK を使用してリクエストを送信し、
Google アシスタントからの回答を受信できます。
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
次のハンドラ定義を検索します。
def process_event(event):
現在、この関数はすべてのデバイス アクションのイベント名と パラメータを次の行に置き換えます。
print('Do command', command, 'with params', str(params))
このコードは、コマンド action.devices.commands.OnOff
を処理します。この
OnOff エラーの一部
トレイト スキーマがあります。現在、このコードはコンソールに出力を表示するだけです。Google Chat では
このコードを変更して
できます。process_event()
の print
コマンドの下に次のブロックを追加します。
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.')
変更したソースコードを直接実行して、出力を確認します。
python hotword.py --device-model-id my-model
前と同じクエリを使用します。
OK Google, オンにして。
LED を接続した場合 Raspberry Pi に反応して LED を点灯する方法を 設定されます。まだの場合は、次のセクションをスキップして、 トレイトとハンドラを追加する。
次のステップ - Raspberry Pi
受信コマンドの処理方法がわかったので、サンプルコードを変更します。 操作できます。カスタム マシンタイプを使用する場合は、追加のハードウェアが必要になります。 Raspberry Pi。
GPIO パッケージをインポートする
デバイスの汎用入出力(GPIO)ピンへのソフトウェア アクセスを RPi.GPIO をインストールします。 パッケージ化されています。
pip install RPi.GPIO
サンプルを変更する
hotword.py
ファイルを開きます。
nano hotword.py
hotword.py
ファイルで、RPi.GPIO をインポートします。
モジュールを使用して Pi の GPIO ピンを制御します。次の文を
他の import
ステートメント:
import RPi.GPIO as GPIO
コードを変更して、出力ピンの初期状態を低論理状態に設定します。すべきこと
main()
関数内で、イベントを処理する前:
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) ...
process_event()
に追加したコードを変更します。on コマンドを受信すると
ピンをハイのロジック状態に設定します。off コマンドを受信したら、コマンドを
ピンを低論理状態にします。
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)
変更を保存し、ファイルを閉じます。
サンプルを実行する
変更したサンプルコードを実行します。
python hotword.py --device-model-id my-model
前と同じクエリを使用します。LED が点灯するはずです。
これはまだ序盤です。次に、トレイトとハンドラをさらに追加する方法を学びましょう。