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
を参照してください。
ARMED_AWAY
からARMED_STAY
またはARMED_NIGHT
に直接変更できないようにする必要があります。音声オプションによるバイパス
ユーザーがセキュリティシステムを開始しようとしても、リクエストを満たせない場合があります。たとえば、ユーザーがシステムを開始しようとしたときに、接触センサー付きの窓が開いていた場合などです。開閉センサーは、セキュリティシステムを開始する前にユーザーの対処またはバイパスが必要なエラーを表します。その場合、システム開始のリクエストを拒否し、タイプがBYPASS_NEEDED
のAlexa.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
を使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。
Alexa.EndpointHealth
インターフェースを実装することをお勧めします。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
}
]
}
}
関連トピック
- Alexa.CameraStreamController
- Alexa.ContactSensor
- Alexa.DoorbellEventSource
- Alexa.LockController
- Alexa.MotionSensor
- Alexa.SecurityPanelController.Alert
最終更新日: 2023 年 11 月 15 日