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


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

AlexaスキルにAlexa.InventoryLevelUsageSensorインターフェースを実装すると、デバイスにセットされている消耗品のおおよその使用量を出力できます。たとえば、デバイスが掃除機の場合、ダストフィルターのおおよその汚れ具合を出力できます。掃除機のダストフィルターやブラシなど、複数の消耗品にAlexa.InventoryLevelUsageSensorのインスタンスを複数実装することができます。

デバイスに残っている消耗品の量を出力する場合は、代わりにAlexa.InventoryLevelSensorインターフェースを実装します。デバイスで消耗品が使用されたタイミングで出力する場合は、代わりにAlexa.InventoryUsageSensorインターフェースを実装します。

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

Dash replenishment ID

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

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

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

発話

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

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

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

出力可能なプロパティ

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

Measurementオブジェクト

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

プロパティ 説明

@type

計測の種類です。
有効な値: Duration

文字列

value

消耗品のおおよその使用量を期間で表します。使用量を出力するときに指定します。

文字列

Replenishmentオブジェクト

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

プロパティ 説明

@type

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

文字列

value

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

文字列

検出

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

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

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

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

capabilities配列

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

プロパティ 説明

instance

センサーの名前です。
例: Sensor.DustFilterSensor.Brush

文字列

configuration.measurement

消耗品の測定方法です。

Measurementオブジェクト

configuration.replenishment

消耗品のDash Replenishment IDです。

Replenishmentオブジェクト

capabilityResources

ユーザーがセンサーとの対話に使用できる消耗品のフレンドリー名です。

CapabilityResourcesオブジェクト

検出応答の例

以下は、Alexa.InventoryLevelUsageSensorインターフェースをサポートする掃除機のDiscover.Responseメッセージの例です。

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

{
    "event": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "payloadVersion": "3",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい"
        },
        "payload": {
            "endpoints": [{
                "endpointId": "エンドポイントの一意のID",
                "manufacturerName": "Vacuum Plus",
                "description": "Vacuum Maker Plusのスマート掃除機",
                "friendlyName": "下の階の掃除機",
                "displayCategories": [
                    "VACUUM_CLEANER"
                ],
                "additionalAttributes": {
                    "manufacturer": "Vacuum Plus",
                    "model": "VPM1",
                    "serialNumber": "デバイスのシリアル番号",
                    "firmwareVersion": "デバイスのファームウェアバージョン",
                    "softwareVersion": "デバイスのソフトウェアバージョン",
                    "customIdentifier": "デバイスのカスタム識別子"
                },
                "cookie": {},
                "capabilities": [{
                        "type": "AlexaInterface",
                        "interface": "Alexa.InventoryLevelUsageSensor",
                        "instance": "Sensor.DustFilter",
                        "version": "3",
                        "configuration": {
                            "measurement": {
                                "@type": "Duration"
                            },
                            "replenishment": {
                                "@type": "DashReplenishmentId",
                                "value": "リフィルオプションのReplenishment ID"
                            }
                        },
                        "capabilityResources": {
                            "friendlyNames": [{
                                    "@type": "text",
                                    "value": {
                                        "text": "ダストフィルター",
                                        "locale": "ja-JP"
                                    }
                                },
                                {
                                    "@type": "text",
                                    "value": {
                                        "text": "filtre à poussière",
                                        "locale": "fr-FR"
                                    }
                                }
                            ]
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa.InventoryLevelUsageSensor",
                        "instance": "Sensor.Brush",
                        "version": "3",
                        "configuration": {
                            "measurement": {
                                "@type": "Duration"
                            },
                            "replenishment": {
                                "@type": "DashReplenishmentId",
                                "value": "リフィルオプションのReplenishment ID"
                            }
                        },
                        "capabilityResources": {
                            "friendlyNames": [{
                                "@type": "text",
                                "value": {
                                    "text": "ブラシ",
                                    "locale": "ja-JP"
                                }
                            }]
                        }
                    },
                    {
                        "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": "Vacuum Plus",
          "description": "Vacuum Maker Plusのスマート掃除機",
          "friendlyName": "下の階の掃除機",
          "displayCategories": [
            "VACUUM_CLEANER"
          ],
          "additionalAttributes":  {
            "manufacturer": "Vacuum Plus",
            "model" : "VPM1",
            "serialNumber": "デバイスのシリアル番号",
            "firmwareVersion" : "デバイスのファームウェアバージョン",
            "softwareVersion": "デバイスのソフトウェアバージョン",
            "customIdentifier": "デバイスのカスタム識別子"
          },
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InventoryLevelUsageSensor",
              "instance": "Sensor.DustFilter",
              "version": "3",
              "configuration": {
                "measurement": {
                  "@type": "Duration"
                },
                "replenishment": {
                  "@type": "DashReplenishmentId",
                  "value": "リフィルオプションのReplenishment ID"
                }
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "ダストフィルター",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "filtre à poussière",
                      "locale": "fr-FR"
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InventoryLevelUsageSensor",
              "instance": "Sensor.Brush",
              "version": "3",
              "configuration": {
                "measurement": {
                  "@type": "Duration"
                },
                "replenishment": {
                  "@type": "DashReplenishmentId",
                  "value": "リフィルオプションのReplenishment ID"
                }
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "ブラシ",
                      "locale": "ja-JP"
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

インベントリー更新イベント

Alexa.InventoryLevelUsageSensorインターフェースは、インベントリーの更新に使用する以下のイベントを定義します。

ChangeReport

Alexa.InventoryLevelUsageSensorインターフェースを実装するときは、ChangeReportイベントの代わりにInventoryConsumedイベントとInventoryReplacedイベントを送信します。

InventoryConsumedイベント

Alexaにインベントリーをプロアクティブに報告するには、デバイスにセットした消耗品のおおよその使用量を含めて、InventoryConsumedイベントを送信します。このイベントは1日に約1回報告します。イベントはAlexaイベントゲートウェイに送信します。

InventoryConsumedイベントの例

以下は、デバイスがダストフィルターを30分使用した後にAlexaに報告している例です。

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

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

InventoryConsumedイベントのペイロード

プロパティ 説明 必須

usage

消耗品のおおよその使用量を期間で表します。期間の値をマイナスにすることはできません。

Measurementオブジェクト

timeOfSample

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

文字列

InventoryReplacedイベント

ユーザーが消耗品を交換したら、AlexaにInventoryReplacedイベントをプロアクティブに送信します。イベントはAlexaイベントゲートウェイに送信します。

InventoryReplacedイベントの例

以下は、ユーザーがダストフィルターを交換した後にAlexaに通知している例です。

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

{  
  "event": {
    "header": {
      "namespace": "Alexa.InventoryLevelUsageSensor",
      "name": "InventoryReplaced",
      "instance": "Sensor.DustFilter",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "replacedDate": "2020-01-15T14:30Z"
    }
  }
}  

InventoryReplacedイベントのペイロード

プロパティ 説明 必須

replacedDate

ユーザーが消耗品を交換した日付です。
ISO 8601の形式(YYYY-MM-DDThh:mm:ssZ)で定義されます。

文字列


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

最終更新日: 2024 年 07 月 03 日