Google Home デベロッパー センターにようこそ。スマートホーム アクションの開発方法を学ぶことができます。注: アクションの作成は、引き続き Actions Console で行います。
コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

スマートホームの Dispense トレイトのスキーマ

action.devices.traits.Dispense - このトレイトは、指定した数の 1 つ以上の物理的なアイテムの配信をサポートするデバイスに使用します。

このトレイトは、ペット用フィーダー用の「キャットフード ボウル」や蛇口用の「グラス」などのプリセットの供給もサポートします。

デバイスの属性

この特性を持つデバイスは、SYNC オペレーションの一部として次の属性を報告する可能性があります。SYNC インテントの処理の詳細については、インテント フルフィルメントをご覧ください。

属性 タイプ 説明
supportedDispenseItems 配列

デバイスに供給可能なすべてのアイテムに関する情報が含まれます。

[item, ...] オブジェクト

ディスカウント可能なアイテム。

item_name 文字列

必須。

分配されたアイテムの内部名。これはユーザー フレンドリーでなく、すべての言語で共有されます。

item_name_synonyms 配列

必須。

サポートされている各言語で生成された分量の類義語の名前。

[item, ...] オブジェクト

特定の言語のディスペンス アイテムの類義語名。

synonyms 配列

必須。

分配されたアイテムの同義名。該当する場合は、類義語には単数形と複数形の両方を含めます。このリストの最初の文字列は、その言語のアイテムの複数形である必要があります。

[item, ...] 文字列

同義名

lang 文字列

必須。

言語コード(ISO 639-1)。サポートされている言語をご覧ください。

supported_units 配列

必須。

アイテムについてデバイスがサポートするユニットのセット。

[item, ...] 文字列

サポートされている単位。

サポートされている値:

CENTIMETERS
CUPS
DECILITERS
FLUID_OUNCES
GALLONS
GRAMS
KILOGRAMS
LITERS
MILLIGRAMS
MILLILITERS
MILLIMETERS
NO_UNITS
OUNCES
PINCH
PINTS
PORTION
POUNDS
QUARTS
TABLESPOONS
TEASPOONS
default_portion オブジェクト

必須。

分配可能な商品アイテムの標準量。

amount Integer

必須。

分注量。

unit 文字列

必須。

出量の単位。

supportedDispensePresets 配列

デバイスでサポートされているプリセット。

[item, ...] オブジェクト

プリセット。

preset_name 文字列

必須。

プリセットの内部名。この名前は使いやすくなく、すべての言語で共有されます。

preset_name_synonyms 配列

必須。

サポートされている各言語のプリセットの類義語名。

[item, ...] オブジェクト

特定の言語のプリセットの類義語名。

synonyms 配列

必須。

プリセットの類義語名。類義語には、単数形と複数形の両方を含めることをおすすめします(該当する場合)。

[item, ...] 文字列

同義名

lang 文字列

必須。

言語コード(ISO 639-1)。サポートされている言語をご覧ください。

プリセットされた液体ユニットをサポートするウォーター サーバー。

{
  "supportedDispenseItems": [
    {
      "item_name": "water",
      "item_name_synonyms": [
        {
          "lang": "en",
          "synonyms": [
            "water"
          ]
        }
      ],
      "supported_units": [
        "TEASPOONS",
        "TABLESPOONS",
        "FLUID_OUNCES",
        "CUPS",
        "PINTS",
        "QUARTS",
        "GALLONS",
        "MILLILITERS",
        "LITERS",
        "DECILITERS"
      ],
      "default_portion": {
        "amount": 2,
        "unit": "CUPS"
      }
    }
  ],
  "supportedDispensePresets": [
    {
      "preset_name": "cat_bowl",
      "preset_name_synonyms": [
        {
          "lang": "en",
          "synonyms": [
            "cat water bowl",
            "cat water dish",
            "cat water cup"
          ]
        }
      ]
    },
    {
      "preset_name": "glass_1",
      "preset_name_synonyms": [
        {
          "lang": "en",
          "synonyms": [
            "glass of water",
            "glass"
          ]
        }
      ]
    }
  ]
}

プリセット不要のペットフード ディスペンサー。

{
  "supportedDispenseItems": [
    {
      "item_name": "treat",
      "item_name_synonyms": [
        {
          "lang": "en",
          "synonyms": [
            "treats",
            "dog treats",
            "treat",
            "dog treat"
          ]
        }
      ],
      "supported_units": [
        "NO_UNITS"
      ],
      "default_portion": {
        "amount": 1,
        "unit": "NO_UNITS"
      }
    }
  ]
}

デバイスのステータス

この特性を持つデバイスは、QUERY オペレーションの一部として次の状態をレポートできます。QUERY インテントの処理の詳細については、インテント フルフィルメントをご覧ください。

状態 タイプ 説明
dispenseItems 配列

デバイスに供給できるアイテムの状態。

[item, ...] オブジェクト

特定のアイテムの状態。

itemName 文字列

item_name 属性の項目の名前。

amountRemaining オブジェクト

デバイスに残っているアイテムの金額。デバイスが現在分量中の場合は、本来の分量、または分注が終わった後の金額を報告します。

amount Number

残額

unit 文字列

supported_units 属性の amount の単位。

amountLastDispensed オブジェクト

デバイスが最後に分配したアイテムの数量。デバイスが現在分量中の場合は、現在の分量の前に分量が報告されます。

amount Number

残額

unit 文字列

supported_units 属性の amount の単位。

isCurrentlyDispensing ブール値

デバイスがこのアイテムを現在供給しているかどうかを示します。

ディスペンサーの犬用おやつはあとどれくらいですか。

{
  "dispenseItems": [
    {
      "itemName": "dog treats",
      "amountRemaining": {
        "amount": 83,
        "unit": "NO_UNITS"
      },
      "amountLastDispensed": {
        "amount": 2,
        "unit": "NO_UNITS"
      },
      "isCurrentlyDispensing": false
    }
  ]
}

冷水プールの水量はどのくらいですか?

{
  "dispenseItems": [
    {
      "itemName": "water",
      "amountRemaining": {
        "amount": 6.2,
        "unit": "GALLONS"
      },
      "amountLastDispensed": {
        "amount": 1,
        "unit": "CUPS"
      },
      "isCurrentlyDispensing": false
    }
  ]
}

これまでにどのくらいのキャットフードをあげましたか?

{
  "dispenseItems": [
    {
      "itemName": "cat_food",
      "amountRemaining": {
        "amount": 16.5,
        "unit": "CUPS"
      },
      "amountLastDispensed": {
        "amount": 2.5,
        "unit": "CUPS"
      },
      "isCurrentlyDispensing": false
    }
  ]
}

蛇口はまだ給水されていますか?

{
  "dispenseItems": [
    {
      "itemName": "water",
      "isCurrentlyDispensing": true
    }
  ]
}

amountRemainingamountLastDispensed は、1 つの測定単位だけを使用して報告する必要があります。

dispenseItems 配列内で複数のアイテムを指定できます。各アイテム名は一意でなければならず、supportedDispenseItems 属性内のアイテムに対応している必要があります。

デバイスのコマンド

この特性を持つデバイスは、EXECUTE オペレーションの一部として次のコマンドに応答できます。EXECUTE インテントの処理の詳細については、インテント フルフィルメントをご覧ください。

action.devices.commands.Dispense

給餌します。

パラメータ

ペイロードには次のいずれかが含まれています。

量で分量を出します。

パラメータ タイプ 説明
item 文字列

分配するアイテムの名前。item_name 属性で指定します。

amount Number

必須。

分注する量。

unit 文字列

必須。

supported_units 属性の amount の単位。

プリセットで分注。

パラメータ タイプ 説明
presetName 文字列

必須。

分配するプリセットの名前(preset_name 属性に基づく)。

パラメータなしの分注

パラメータ タイプ 説明

プロパティがありません

1 杯の水をください。

{
  "command": "action.devices.commands.Dispense",
  "params": {
    "amount": 1,
    "unit": "CUPS",
    "item": "water"
  }
}

猫のボウルに水を入れます。

{
  "command": "action.devices.commands.Dispense",
  "params": {
    "presetName": "cat_bowl"
  }
}

給水

{
  "command": "action.devices.commands.Dispense",
  "params": {}
}

デバイスエラー

エラーと例外のリストをご覧ください。
  • dispenseAmountRemainingExceeded: ユーザーが、十分な残高のないデバイスにアイテムまたは金額分を供給しようとしました。
  • dispenseAmountAboveLimit: ユーザーが 1 回のクエリで要求できる上限を超えた量を支払おうとしました。これは、誤って過剰な量(500,000 カップの水)が供給されるのを防ぐためです。
  • dispenseAmountBelowLimit: ユーザーが、デバイスからの分量または量が計量可能な量を下回ろうとした。
  • dispenseFractionalAmountNotSupported: ユーザーが、分割できない項目数のごく一部を分配しようとしました(たとえば、犬のおやつなどのカウント可能な項目を、デバイスが割り切れないようにする)。
  • genericDispenseNotSupported: アイテムやプリセットを指定せずにデバイスからの給餌を試みましたが、デバイスはそのような機能(デフォルトの給餌アクションなど)をサポートしていません。
  • dispenseUnitNotSupported: ユーザーが、そのケースでサポートされていないユニットを備えたデバイスから給餌を試みている(たとえば、アイテムが提供されないため、supported_unit validation はスキップされた)。
  • dispenseFractionalUnitNotSupported: ユーザーは、分割できるものの、指定した特定のユニットについて小数点以下の分量の分配を試みました(たとえば、蛇口に 2.7 カップの分注ができるが、2.7 mL は供給されない)。
  • deviceCurrentlyDispensing: ユーザーがアイテムの分量を得ようとしましたが、デバイスはすでに分量化しています。
  • deviceClogged: ユーザーが商品をまとめようとしましたが、デバイスが詰まっています。
  • deviceBusy: ユーザーがアイテムの供給を試みるが、デバイスがビジー状態(汎用)である。

デバイスの例外

これらの例外は、レスポンスの states オブジェクトで exceptionCode としてレポートできます。

  • amountRemainingLow - ユーザーはアイテムまたは金額をデバイスに分配し、残額を低レベルにします。「低」レベルの定義を定義する責任はユーザーにあります。
  • userNeedsToWait - リクエストされたアイテムまたは量が正常に分量を準備されるまでユーザーが待つ必要がある場合(例: 蛇口から給水しますが、給湯する前に温める必要があります)。