Alexa.InventoryUsageSensorインターフェース3


Alexa.InventoryUsageSensorインターフェース3

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

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

Alexa.InventoryUsageSensorインターフェースがサポートする言語については、Alexaインターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。

Dash replenishment ID

スマートホームデバイスにAmazon Dash Replenishmentサービスを追加して、Alexaでデバイスの消耗品や交換部品の監視と再注文を行うことができます。Alexa.InventoryUsageSensorを使ってインベントリー状況を出力すると、ユーザーはAlexaアプリ内で消耗品の量を確認したり、消耗品の量が少なくなった場合や部品交換が必要になった場合にAlexaから通知を受け取ったりすることができます。また、ユーザーはこれらの消耗品の自動再注文を設定することもできます。たとえば、ユーザーがインク切れにならないよう、プリンターのインク使用量をAlexaに出力することができます。詳しくは、Dash Replenishmentについてを参照してください。

デバイスをDash Replenishmentに登録すると、Amazonからデバイスの各消耗品についてReplenishment IDが提供されます。このReplenishment IDによって、消耗品の交換用にユーザーが注文できる商品を識別できます。これらのIDは、次の方法でAlexaに提供できます。

  • デバイスの検出時にReplenishment IDがわかっている場合は、検出応答にIDを含めます。
  • デバイスの検出時にReplenishment IDが不明の場合は、AddOrUpdateReportイベントで後から指定します。

発話

Alexa.InventoryUsageSensorインターフェースにはユーザー発話が定義されません。

プロパティとオブジェクト

Alexa.InventoryUsageSensorインターフェースには、次のプロパティとオブジェクトが含まれます。

出力可能なプロパティ

Alexa.InventoryUsageSensorインターフェースには、出力可能なプロパティが定義されません。

Measurementオブジェクト

Measurementオブジェクトは、消耗品を計測する方法を定義します。

プロパティ 説明

@type

計測の種類です。
有効な値は、countvolumeweightのいずれかです。

文字列

value

前回のレポート後に使用した消耗品の量です。使用量を出力するときに指定します。

文字列

unit

そのタイプの標準測定単位です。volumeweightの場合に含めます。
有効な値については、volumeの単位weightの単位を参照してください。

文字列

Replenishmentオブジェクト

Replenishmentオブジェクトにより、消耗品を識別します。

プロパティ 説明

@type

IDの種類を識別します。
有効な値: DashReplenishmentId

文字列

value

消耗品のDash Replenishment IDです。
DashコンソールでReplenishment IDをリクエストします。

文字列

検出

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

エンドポイントは複数のセンサーに対応しています。センサーを区別するには、サポートする各センサーにAlexa.InventoryUsageSensorを含め、instanceプロパティを指定します。

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

Alexaにデバイスの健全性を通知する場合、Alexa.EndpointHealthインターフェースも実装してください。

capabilities配列

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

プロパティ 説明

instance

センサーの名前です。
例: CoffeePodまたはDetergentPodなど。

文字列

configuration.measurement

消耗品の測定方法です。

Measurementオブジェクト

configuration.replenishment

消耗品のDash Replenishment IDです。

Replenishmentオブジェクト

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": "リフィルオプションの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.EndpointHealth",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "connectivity"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa",
                        "version": "3"
                    }
                ]
            }]
        }
    }
}

AddOrUpdateReport

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

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": "リフィルオプションの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

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

InventoryConsumedイベント

インベントリーをAlexaにプロアクティブにレポートするには、InventoryConsumedイベントを送信し、デバイスが前回のイベント後に消費した消耗品の量を含めます。イベントはAlexaイベントゲートウェイに送信します。

InventoryConsumedイベントの例

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

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

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

InventoryConsumedイベントのペイロード

プロパティ 説明 必須

usage

前回のInventoryConsumedイベント後に使用された消耗品の量です。count、volume、weightのいずれかで表されます。

Measurementオブジェクト

timeOfSample

センサーが使用量を検知した時間です。
ISO 8601の形式(YYYY-MM-DDThh:mm:ssZ)で定義されます。

文字列


このページは役に立ちましたか?

最終更新日: 2024 年 12 月 09 日