Alexa.InventoryUsageSensorインターフェース



Alexa.InventoryUsageSensorインターフェース

Alexa.InventoryUsageSensor機能インターフェースを実装すると、デバイスが使用した消耗品の量をレポートできます。たとえば、デバイスがコーヒーカプセルを使用するコーヒーメーカーの場合、デバイスが現在までに使用したカプセルの数をレポートできます。コーヒーカプセルやミルクカプセル(またはクリーマーカプセル)を使用するコーヒーメーカーなど、複数の消耗品に対してInventoryUsageSensorの複数のインスタンスを実装できます。

デバイスに残っている消耗品の量をレポートする場合は、代わりにInventoryLevelSensorインターフェースを実装します。寿命が不明な消耗品がデバイスに含まれている場合は、代わりにInventoryLevelUsageSensorインターフェースを実装します。

InventoryUsageSensorインターフェースがサポートする言語については、Alexaインターフェースとサポートしている言語の一覧を参照してください。

Dash Replenishment ID

Dash Replenishment through Alexaを使用すると、デバイスのユーザーは、消耗品のストックが少なくなったときにその消耗品を再注文できるように設定を行うことができます。詳細については、Dash Replenishmentの概要ページおよびDash Replenishmentのアカウント設定ページを参照してください。

デバイスをDash Replenishmentに登録する場合は、デバイスの各消耗品にDash Replenishment IDを設定します。このDash Replenishment IDによって、消耗品の交換用にユーザーが注文できる商品(1つ以上)を識別します。ユーザーはアカウントで補充機能をセットアップする際に、注文を行う特定の商品を選択します。補充機能は、AlexaにDash Replenishment IDが指定されていなければセットアップできません。Alexaに対してデバイスのDash Replenishment IDを指定するには、次の方法があります。

  • デバイスの検出時にDash Replenishment IDが既にある場合は、検出応答でDash Replenishment IDを指定します。
  • AddOrUpdateReportメッセージで後からDash Replenishment IDを指定することもできます。

検出

Alexa.InventoryUsageSensorをサポートするエンドポイントは、Alexa.Discoveryの標準検出メカニズムを使用して表します。

表示カテゴリーの一覧は、表示カテゴリーを参照してください。

機能配列の各InventoryUsageSensorエントリには、通常の検出応答フィールドのほかに、次のフィールドを含めます。

フィールド 説明
instance センサーの名前です。例:CoffeePodDetergentPod 文字列
configuration.
measurement
消耗品の測定方法です。countvolumeweightのいずれかです。volumeとweightには単位を含めます。 オブジェクト
configuration.
replenishment
消耗品のDash Replenishment IDです。 オブジェクト
capabilityResources ユーザーがセンサーとの対話に使用できるフレンドリー名です。 CapabilityResourcesオブジェクト

検出応答の例

以下は、Alexa.InventoryUsageSensorインターフェースをサポートするコーヒーメーカーのDiscover.Responseメッセージの例です。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      “messageId”: “”<一意の識別子、バージョン4 UUIDが望ましい>
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "manufacturerName": "コーヒーメーカープラス",
          "description": "コーヒーメーカープラスのスマートコーヒーメーカー",
          "friendlyName": "コーヒーメーカー",
          "displayCategories": [
            "OTHER"
          ],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InventoryUsageSensor",
              "instance": "Sensor.CoffeePod",
              "version": "3",
              "configuration": {
                "measurement": {
                  "@type": "Count"
                },
                "replenishment": {
                  "@type": "DashReplenishmentId",
                  "value": "<リフィルオプションのDash Replenishment ID>"
                }
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "コーヒーカプセル",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Capsules de café",
                      "locale": "fr-FR"
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

AddOrUpdateReport

エンドポイントの機能サポートが変更された場合は、Alexa.Discovery.AddOrUpdateReportメッセージをプロアクティブに送信する必要があります。たとえば、最初のデバイス検出時に消耗品のDash Replenishment IDがなかった場合は、AddOrUpdateReportメッセージを送信することで、後からAlexaにDash Replenishment IDを指定できます。詳細については、AddOrUpdateReportイベントを参照してください。

AddOrUpdateReportイベントの例

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "AddOrUpdateReport",
      "payloadVersion": "3",
      “messageId”: “”<一意の識別子、バージョン4 UUIDが望ましい>
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "manufacturerName": "コーヒーメーカープラス",
          "description": "コーヒーメーカープラスのスマートコーヒーメーカー",
          "friendlyName": "コーヒーメーカー",
          "displayCategories": [
            "OTHER"
          ],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InventoryUsageSensor",
              "instance": "Sensor.CoffeePod",
              "version": "3",
              "configuration": {
                "measurement": {
                  "@type": "Count"
                },
                "replenishment": {
                  "@type": "DashReplenishmentId",
                  "value": "<リフィルオプションのDash Replenishment ID>"
                }
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "コーヒーカプセル",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Capsules de café",
                      "locale": "fr-FR"
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

変更レポート

Alexa.InventoryUsageSensorインターフェースを実装するときは、一般的なChangeReportイベントの代わりにInventoryConsumedイベントを送信します。変更レポートの詳細については、状態および変更レポートについてを参照してください。

InventoryConsumedイベント

InventoryConsumedイベントを送信すると、デバイスで既に消費された消耗品の量をAlexaにプロアクティブにレポートできます。

InventoryConsumedペイロードの詳細

フィールド 説明 必須
usage 使用された消耗品の量です。countvolumeweightのいずれかで表されます。volumeとweightには単位を含めます。 オブジェクト
timeOfSample インベントリーが消費された時刻(UTC)です。 文字列はISO 8601形式で、YYYY-MM-DDThh:mm:ssZとなります。

InventoryConsumedイベントの例

以下の例では、ユーザーがコーヒーカプセルを消費したらAlexaに通知しています。

クリップボードにコピーされました。

{  
  "event": {
    "header": {
      "namespace": "Alexa.InventoryUsageSensor",
      "name": "InventoryConsumed",
      "instance": "Sensor.CoffeePod",
      "messageId": "<一意の識別子、バージョン4 UUIDが望ましい>",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "<OAuth2ベアラートークン>"
      },
      "endpointId": "<エンドポイントID>"
    },
    "payload": {
      "usage": {
        "@type": "Count",
        "value": 1
      },
      "timeOfSample": "2020-09-23T16:20:50Z"
    }
  }
}