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


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

領域内の物体の動きを感知するデバイス用のAlexa.MotionSensorインターフェースをAlexaスキルに実装します。たとえば、玄関ドアに取り付けられたモーションセンサーなどです。セキュリティスキルの詳細については、スマートホームセキュリティの概要を参照してください。

モーションセンサーが大規模なセキュリティシステムの一部である場合は、スキルにAlexa.ContactSensorインターフェースやAlexa.SecurityPanelControllerインターフェースを実装して、ユーザーエクスペリエンスに統一感を持たせることができます。

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

プロパティ

Alexa.MotionSensorインターフェースはプライマリプロパティとしてdetectionStateを使用します。detectionStateでは以下の値を使用できます。

説明
DETECTED 動作が検出されました。デバイスおよびユーザーの設定により、モーション検出のしきい値が決まります。
NOT_DETECTED 動作が検出されません。

検出

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

Alexaからスキルに状態レポートリクエストが送信されたら、レポートするプロパティのretrievableをtrueに設定します。変更レポートでAlexaにプロアクティブにレポートする場合はプロパティのproactivelyReportedをtrueに設定します。

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

センサーには、Alexa.EndpointHealthも実装する必要があります。

検出応答の例

以下は、Alexa.MotionSensorインターフェースをサポートするモーションセンサーのDiscover.Responseメッセージの例です。

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

{
    "event": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "payloadVersion": "3",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい"
        },
        "payload": {
            "endpoints": [{
                "endpointId": "エンドポイントの一意のID",
                "manufacturerName": "エンドポイントのメーカー名",
                "description": "センサーメーカーのスマートセンサー",
                "friendlyName": "玄関ドア",
                "displayCategories": ["MOTION_SENSOR"],
                "cookie": {},
                "capabilities": [{
                        "type": "AlexaInterface",
                        "interface": "Alexa.MotionSensor",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "detectionState"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa.EndpointHealth",
                        "version": "3.1",
                        "properties": {
                            "supported": [{
                                "name": "connectivity"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa",
                        "version": "3"
                    }
                ]
            }]
        }
    }
}

状態レポート

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.MotionSensor",
                "name": "detectionState",
                "value": "NOT_DETECTED",
                "timeOfSample": "2024-07-03T10:20:50.52Z",
                "uncertaintyInMilliseconds": 0
            },
            {
                "namespace": "Alexa.EndpointHealth",
                "name": "connectivity",
                "value": {
                    "value": "OK"
                },
                "timeOfSample": "2024-07-03T09:56:50.12Z",
                "uncertaintyInMilliseconds": 0
            }
        ]
    }
}

変更レポート

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

モーションセンサーがDETECTEDに変更され、その後NOT_DETECTEDに変更された場合、2番目の変更レポートを送信する前に30秒以上待機する必要があります。

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.MotionSensor",
            "name": "detectionState",
            "value": "DETECTED",
            "timeOfSample": "2024-07-03T10:20:50.52Z",
            "uncertaintyInMilliseconds": 0
          }
        ]
      }
    }
  },
  "context": {
    "properties": [
      {
        "namespace": "Alexa.EndpointHealth",
        "name": "connectivity",
        "value": {
          "value": "OK"
        },
        "timeOfSample": "2024-07-03T10:11:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  }
}


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

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