トレイトとハンドラをさらに追加する

<ph type="x-smartling-placeholder">

トレイトは、必要に応じていくつでもデバイスモデルに追加できます。これらのトレイトは、 1 つのデバイスタイプに縛られることなく、自由に使用できます。

トレイトを追加して受信コマンドを処理する手順は次のとおりです。

  1. 必要なトレイトを決定する 追加できます。

  2. hotword.py ファイルを開きます。

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
    nano hotword.py
  3. 既存のモジュールの下に、次のコードブロックを action.devices.commands.OnOff コマンドを処理します(既存の あります。

    if command == "action.devices.commands.command-name":
        if params['parameter-name']:
            if conditional:
                print('Something happened.')
            else:
                print('Something else happened.')
    
  4. 上記のコードブロックの各変数に必要な情報を調べます。

    command-name特定のトレイトのページに移動: ステップ 1(例: ColorTemperatureデバイスのコマンドの表にあるコマンドを使用します。
    parameter-nameもう一度デバイスのコマンドを確認します。 表をご覧ください各コマンドには 1 つ以上のパラメータがある 関連付けられていますこれらは EXECUTE の "params" にリストされます。 リクエスト JSON。正確なパラメータ名を使用してください。なお、これらのポリシーの一部は パラメータは、他のパラメータを含むオブジェクトです。 最上位オブジェクト。
    conditional条件式を厳密に使用する必要はありません。 指定する必要がありますが、2 つの関数を実行する方法を コマンドを実行できます。

    トレイトの例: 明るさ および ColorTemperature:

    if command == "action.devices.commands.BrightnessAbsolute":
        if params['brightness']:
            if params['brightness'] > 50:
                print('brightness > 50')
            else:
                print('brightness <= 50')
    
    if command == "action.devices.commands.ColorAbsolute":
        if params['color']:
            if params['color'].get('name') == "blue":
                print('The color is blue.')
            else:
                print('The color is not blue.')
    
  5. デバイスのモデルを更新する ステップ 1 で追加したトレイトに置き換えます。

  6. 変更したソースコードを実行します。

    cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
    python hotword.py --device-model-id my-model
  7. クエリを試します。

    OK Google, 明るさを 65% に設定して。

    OK Google, 青色にして

次のステップ

カスタム デバイス アクションを登録する