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


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

ユーザーがセキュリティシステムを開始/解除したり、ユーザーにアラーム状態をレポートしたりできるように、AlexaスキルにAlexa.SecurityPanelControllerインターフェースを実装しましょう。セキュリティスキルの詳細については、スマートホームセキュリティスキルの概要を参照してください。

セキュリティシステムが接触センサーとモーションセンサーを使用している場合は、Alexa.ContactSensorインターフェースとAlexa.MotionSensorインターフェースを実装して、統一されたユーザーエクスペリエンスを実現することもできます。

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

発話

Alexa.SecurityPanelControllerインターフェースではプリビルド音声対話モデルを使用します。ユーザーがこのような発話をすると、Alexaがそれに対応するディレクティブまたは状態レポートリクエストをスキルに送信します。

以下に、ユーザーの発話の例を示します。「my home」はユーザーがセキュリティシステムデバイスに割り当てた名前です。

Alexa, arm my home in away mode.
Alexa, arm my home.
Alexa, disarm my home.
Alexa, is my home armed?

Alexa, arme la maison en mode absence.
Alexa, arme ma maison.
Alexa, désarme ma maison.
Alexa, est-ce que ma maison est armée?

Alexa, mein Zuhause in den Abwesenheitsmodus stellen.
Alexa, stelle mein Haus scharf.
Alexa, entschärfe mein Zuhause.
Alexa, ist mein Zuhause scharf geschaltet?

Alexa, arma la mia casa in modalità assente.
Alexa, arma la mia casa.
Alexa, disarma la mia casa.
Alexa, la mia casa è armata?

アレクサ、自宅を外出モードで警備して
アレクサ、自宅の警備を開始して
アレクサ、自宅の警備を解除して
アレクサ、自宅は警備されてる?

Alexa, arma minha casa em modo fora de casa.
Alexa, arma minha casa.
Alexa, desarme minha casa.
Alexa, minha casa está armada?

Alexa, arma mi casa en modo ausente.
Alexa, arma mi casa.
Alexa, desarma mi casa.
Alexa, ¿está armada mi casa?

プロパティ

Alexa.SecurityPanelControllerインターフェースは、アラームのプロパティを定義します。

ArmStateプロパティ

Alexa.SecurityPanelControllerインターフェースは、armStateプロパティをプライマリプロパティとして使用します。サポートする警備状態は検出応答で指定します。Amazonでは、少なくとも、DISARMEDと1つ以上のARMED状態をサポートすることをお勧めします。

以下は、1つのARMED状態と1つのDISARMED状態の例です。

armStateでは以下の値を使用できます。値は文字列です。

説明
ARMED_AWAY セキュリティシステムがアクティブで、居住者が外出している状態です。
ARMED_STAY セキュリティシステムがアクティブで、居住者が在宅している状態です。
ARMED_NIGHT セキュリティシステムがアクティブで、居住者が就寝している状態です。
DISARMED セキュリティシステムが解除されている状態です。

アラームのプロパティ

Alexa.SecurityPanelControllerインターフェースは、アラームプロパティを使用して、さまざまな種類のアラームと各アラームの現在のステータスを表します。ディレクティブに応答したり、Alexaに状態をレポートしたりするときは、これらのアラームプロパティをcontextオブジェクトで使用します。アラーム状態が発生していることを示すには、プロパティ値としてALARMを使用します。

アラームのサポートはオプションです。サポートするアラームは検出応答で指定します。

以下は、住居侵入アラームの例です。

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

{
    "name": "burglaryAlarm",
    "value": {
        "value": "OK"
    }
}

次のアラームを使用できます。

プロパティ 説明
burglaryAlarm 住居侵入アラームの現在の状態(OKまたはALARM)です。 オブジェクト
carbonMonoxideAlarm 一酸化炭素アラームの現在の状態(OKまたはALARM)です。 オブジェクト
fireAlarm 火災警報の現在の状態(OKまたはALARM)です。 オブジェクト
waterAlarm 水警報の現在の状態(OKまたはALARM)です。 オブジェクト

セキュリティシステムに関して考慮すべきこと

セキュリティシステムの開始

セキュリティシステムの警備状態がARMED_AWAY(居住者が外出中)の場合、別の警備状態に変更するにはセキュリティシステムを解除する必要があります。たとえば、外出中のユーザーが帰宅して警備状態をARMED_NIGHTに変更する場合は、まずセキュリティシステムを解除してから、新しい状態に設定する必要があります。このルールに違反するarmディレクティブを受信した場合は、エラータイプAUTHORIZATION_REQUIREDエラーを使用して応答します。詳細については、Alexa.SecurityPanelController.ErrorResponseを参照してください。

音声オプションによるバイパス

ユーザーがセキュリティシステムを開始しようとしても、リクエストを満たせない場合があります。たとえば、ユーザーがシステムを開始しようとしたときに、接触センサー付きの窓が開いていた場合などです。開閉センサーは、セキュリティシステムを開始する前にユーザーの対処またはバイパスが必要なエラーを表します。その場合、システム開始のリクエストを拒否し、タイプがBYPASS_NEEDEDAlexa.SecurityPanelController.ErrorResponseを送信します。

ユーザーが音声コマンドを使用してエラーをバイパスできるようにするには、バイパスが必要なエンドポイントのリストをBYPASS_NEEDED応答のペイロードに含めます。エンドポイントのリストをペイロードに含むBYPASS_NEEDED応答を受信すると、Alexaはエラーをバイパスするようユーザーに求めます。詳細については、BYPASS_NEEDEDの例を参照してください。

以下は、バイパスが必要なエンドポイントのリストをBYPASS_NEEDED応答のペイロードに含める場合の会話の例です。「my home」はユーザーがセキュリティシステムデバイスに割り当てた名前です。

Alexa, arm my home in away mode.
Hmm, side window, kitchen window, and one more sensor need bypassing.Do you want to arm your system anyway?
Yes
OK.My home is armed in away mode.Side window, kitchen window, and one more sensor were bypassed.You have 60 seconds to exit.

ユーザーが「No」と言った場合、Alexaは「Okay, I won’t arm the security system」と答えます。 BYPASS_NEEDEDエラー応答のペイロードにエンドポイントのリストを含めなかった場合、Alexaは「One or more sensors need bypassing.Please see your security system's panel or smartphone app for more details」と答えます。

セキュリティシステムの解除

ユーザーは音声による解除機能を選択する必要があります。これは、Alexaにユーザーのデバイスを接続するときにAlexaアプリで行います。選択すると、AlexaはDisarmディレクティブをスキルに送信します。選択する場合、ユーザーは次のいずれかの方法で音声コードを設定します。

  • スキルが既存のPINコードをサポートしていない場合は、新しい音声コードを設定する必要があります。
  • スキルが既存のPINコードをサポートしている場合は、新しい音声コードを設定することも、セキュリティシステムに既に関連付けられている4桁のPINコードを使用することもできます。

新しい音声コードを設定した場合、Alexaサービスは音声コードを安全に保存し、ユーザーが音声リクエストでセキュリティシステムを解除するときに音声コードを要求します。Alexaはその音声コードを検証し、正しかった場合にのみ、Disarmディレクティブをスキルに送信します。

既存のPINコードを使用する場合、ユーザーが音声リクエストでセキュリティシステムを解除するときにAlexaがPINコードを要求します。セキュリティシステムを解除する前に、バックエンドシステムでそのPINコードを検証する必要があります。PINコードが有効でない場合は、UNAUTHORIZEDタイプのエラーを使用して応答する必要があります。詳細については、Alexa.SecurityPanelController.ErrorResponseを参照してください。

PINコードのサポート

スキルで制御しているセキュリティシステムが4桁のPINコードを既に使用していて、バックエンドシステムがPINコードを検証できる場合、ユーザーは既存のPINコードを使用して音声でセキュリティシステムを解除できます。

検出

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

Alexaからスキルに状態レポートリクエストが送信されたら、レポートするプロパティのretrievableをtrueに設定します。変更レポートでAlexaにプロアクティブにレポートするプロパティについては、そのproactivelyReportedをtrueに設定します。アラームの状態はプロアクティブにレポートする必要があります。

サポートされているプロパティのフィールドで、サポートするアラーム(住居侵入や火災警報など)を指定します。アラームのサポートはオプションです。詳細については、アラームプロパティを参照してください。

表示カテゴリーにはSECURITY_PANELを使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。

Configurationオブジェクト

SecurityPanelControllerには、標準の検出応答フィールドのほかに、次のフィールドを含むconfigurationオブジェクトを含めます。

フィールド 説明 必須
supportedAuthorizationTypes セキュリティパネルが使用する認可タイプです。現在有効な値はFOUR_DIGIT_PINのみです。このフィールドを含めるのは、スキルで制御しているセキュリティシステムが4桁のPINコードをサポートしていて、バックエンドシステムがそのPINコードを検証できる場合のみです。 オブジェクトの配列
supportedArmStates セキュリティシステムがサポートする状態です。このフィールドを含めない場合、Alexaはセキュリティシステムがすべての状態をサポートしていると見なします。 armStateプロパティ値の配列

検出応答の例

以下は、Alexa.SecurityPanelControllerインターフェースをサポートするセキュリティパネルへのDiscover.Responseメッセージの例です。

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

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "エンドポイントの一意のID",
          "manufacturerName": "エンドポイントのメーカー名",
          "description": "Alexaアプリに表示される説明",
          "friendlyName": "Alexaアプリに表示されるセキュリティパネル名",
          "displayCategories": ["SECURITY_PANEL"],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.SecurityPanelController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "armState"
                  },
                  {
                    "name": "burglaryAlarm"
                  },
                  {
                    "name": "fireAlarm"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              },
              "configuration": {
                "supportedArmStates": [
                  {
                    "value": "ARMED_AWAY"
                  },
                  {
                    "value": "ARMED_STAY"
                  },
                  {
                    "value": "DISARMED"
                  }
                ],
                "supportedAuthorizationTypes": [
                  {
                    "type": "FOUR_DIGIT_PIN"
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EndpointHealth",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name":"connectivity"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

ディレクティブ

Alexaは次のAlexa.SecurityPanelControllerインターフェースディレクティブをスキルに送信します。

Armディレクティブ

Armディレクティブをサポートすると、ユーザーがセキュリティシステムを開始できます。Armディレクティブの受信時、新しいarmStateが現在のarmStateと一致した場合は、エラー応答ではなく成功応答を使用して応答します。ただし、armStateの変更には厳格な要件があります。詳細については、セキュリティシステムに関して考慮すべきことを参照してください。

以下に、ユーザーの発話の例を示します。

Alexa, arm my home in away mode.

Alexa, arme la maison en mode absence.

Alexa, mein Zuhause in den Abwesenheitsmodus stellen.

Alexa, arma la mia casa in modalità assente.

アレクサ、自宅を外出モードで警備して

Alexa, arma minha casa em modo fora de casa.

Alexa, arma mi casa en modo ausente.

Armディレクティブの例

次の例は、Alexaがスキルに送信するArmディレクティブを示しています。

{
  "directive": {
    "header": {
      "namespace": "Alexa.SecurityPanelController",
      "name": "Arm",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "armState": "ARMED_AWAY"
    }
  }
}

バイパスを含むArmディレクティブの例

次の例は、Alexaがスキルに送信する、バイパスリクエストを含むArmディレクティブを示しています。

{
  "directive": {
    "header": {
      "namespace": "Alexa.SecurityPanelController",
      "name": "Arm",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "armState": "ARMED_AWAY",
      "bypassType": "BYPASS_ALL"
    }
  }
}

Armディレクティブのペイロード

フィールド 説明
armState エンドポイントに設定する警備状態です。 armStateの値
bypassType バイパスのタイプです。現在指定できる値はBYPASS_ALLのみです。このフィールドは該当する場合にのみ含めます。詳細については、音声オプションによるバイパスを参照してください。 文字列

Arm応答

Armディレクティブを正しく処理したら、Arm.Responseイベントを使用して応答します。contextオブジェクトに、関連するすべてのプロパティの値とアクティブなアラームを含めます。

以下は、Arm応答の例です。

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

{
  "event": {
    "header": {
      "namespace": "Alexa.SecurityPanelController",
      "name": "Arm.Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "exitDelayInSeconds": 60
    }
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "ARMED_AWAY",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

以下は、アクティブなALARMを含むArm応答の例です。

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

{
  "event": {
    "header": {
      "namespace": "Alexa.SecurityPanelController",
      "name": "Arm.Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "exitDelayInSeconds": 60
    }
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "burglaryAlarm",
        "value": {
          "value": "ALARM"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "ARMED_AWAY",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

以下は、バイパスされたエンドポイントを含むArm応答の例です。

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

{
  "event": {
    "header": {
      "namespace": "Alexa.SecurityPanelController",
      "name": "Arm.Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "exitDelayInSeconds": 60,
      "bypassedEndpoints": [
        {
          "friendlyName": "側面窓のセンサー",
          "endpointId": "エンドポイントID"
        },
        {
          "friendlyName": "玄関ドアのセンサー",
          "endpointId": "エンドポイントID"
        },
        {
          "friendlyName": "水センサー"
        }
      ]
    }
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "ARMED_AWAY",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

Arm応答のペイロード

フィールド 説明 必須
exitDelayInSeconds 居住者が外出してからセキュリティシステムがアクティブになるまでの待機秒数です。即座にアクティブにする場合は、この値を0に設定します。 整数(0~255)
bypassedEndpoints バイパスされたエンドポイントです。Armディレクティブにバイパスリクエストが含まれている場合にのみ、このフィールドを含めます。Alexa.ContactSensorインターフェースとAlexa.MotionSensorインターフェースを実装するセンサーのendpointIdを含めます。詳細については、音声オプションによるバイパスを参照してください。 エンドポイントの配列

Armディレクティブのエラー処理

Armディレクティブを正しく処理できなかった場合は、Alexa.SecurityPanelController.ErrorResponseイベントを使用して応答します。1つ以上のセンサーが開いているためにArmディレクティブを正しく処理できなかった場合に、ユーザーが音声でエラーをバイパスできるようにするには、音声オプションによるバイパスを参照してください。

Disarmディレクティブ

Disarmディレクティブをサポートすると、ユーザーがセキュリティシステムを解除できます。Disarmディレクティブの受信時、システムが既に解除されている場合は、エラー応答ではなく成功応答を使用して応答します。

Alexaは、ユーザーが解除機能を選択した場合のみ、スキルにDisarmディレクティブを送信します。詳細については、セキュリティシステムに関して考慮すべきことを参照してください。

以下に、ユーザーの発話の例を示します。

Alexa, disarm my home.

Alexa, désarme ma maison.

Alexa, entschärfe mein Zuhause.

Alexa, disarma la mia casa.

アレクサ、自宅の警備を解除して

Alexa, desarme minha casa.

Alexa, desarma mi casa.

Disarmディレクティブの例

以下は、Alexaがスキルに送信するDisarmディレクティブの例です。

{
  "directive": {
    "header": {
      "namespace": "Alexa.SecurityPanelController",
      "name": "Disarm",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
          "type": "BearerToken",
          "token": "OAuth2.0ベアラートークン"
        },
        "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "authorization": {
        "type": "FOUR_DIGIT_PIN",
        "value": "1234"
      }
    }
  }
}

Disarmディレクティブのペイロード

フィールド 説明
authorization このプロパティは、既存のPINコードをスキルがサポートしていて、ユーザーが既存のPINコードの使用を選択した場合にのみ含まれます。セキュリティシステムを解除する前に、PINコードを検証する必要があります。ユーザーがAlexa音声コードを使用して解除した場合は、このプロパティは含まれません。 オブジェクト

Disarm応答

Disarmディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。contextオブジェクトに、関連するすべてのプロパティの値とアクティブなアラームを含めます。

以下は、Disarm応答の例です。

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

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {}
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "DISARMED",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

以下は、アクティブなALARMを含むDisarm応答の例です。

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

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "Response",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {}
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "burglaryAlarm",
        "value": {
          "value": "ALARM"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "ARMED_AWAY",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

Disarmディレクティブのエラー処理

Disarmディレクティブを正しく処理できない場合は、Alexa.SecurityPanelController.ErrorResponseイベントを使用して応答します。

状態レポート

ReportStateディレクティブをサポートすると、ユーザーがセキュリティパネルの状態について質問できます。

以下は、ユーザーの発話の例です。

Alexa, is my home armed?

Alexa, est-ce que ma maison est armée?

Alexa, ist mein Zuhause scharf geschaltet?

Alexa, la mia casa è armata?

アレクサ、自宅は警備されてる?

Alexa,minha casa está armada?

Alexa, ¿está armada mi casa?

Alexaはエンドポイントの状態についての情報をリクエストするために、ReportStateディレクティブを送信します。AlexaがReportStateディレクティブを送信したら、それに対する応答としてStateReportイベントを送信します。応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。

StateReport応答の例

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

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "StateReport",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "correlationToken": "リクエストに一致するopaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {}
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "ARMED_AWAY",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "burglaryAlarm",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "fireAlarm",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

変更レポート

エンドポイントの状態の変化をプロアクティブにレポートするために、ChangeReportイベントを送信します。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。

サポートするアラームの状態はプロアクティブにレポートする必要があります。

ChangeReportイベントの例

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

{  
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "ChangeReport",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "change": {
        "cause": {
          "type": "PHYSICAL_INTERACTION"
        },
        "properties": [
          {
            "namespace": "Alexa.SecurityPanelController",
            "name": "armState",
            "value": "DISARMED",
            "timeOfSample": "2017-02-03T16:20:50.52Z",
            "uncertaintyInMilliseconds": 0
          }
        ]
      }
    }
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "burglaryAlarm",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "fireAlarm",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}

アクティブなALARMを含むChangeReportイベントの例

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

{  
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "ChangeReport",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "change": {
        "cause": {
          "type": "RULE_TRIGGER"
        },
        "properties": [
          {
            "namespace": "Alexa.SecurityPanelController",
            "name": "burglaryAlarm",
            "value": {
              "value": "ALARM"
            },
            "timeOfSample": "2017-02-03T16:20:50.52Z",
            "uncertaintyInMilliseconds": 0
          }
        ]
      }
    }
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "armState",
        "value": "ARMED_AWAY",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.SecurityPanelController",
        "name": "fireAlarm",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      },
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}


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

最終更新日: 2023 年 11 月 15 日