近接イベント
近接イベントは、AWS IoT が Sidewalk デバイスからビーコンを受信したときにイベント通知を発行します。Sidewalk デバイスが Amazon Sidewalk に近づくと、デバイスから送信されるビーコンは Amazon Sidewalk によって定期的にフィルターされ、AWS IoT Wireless に送信されます。次に、ビーコンが受信されると、AWS IoT Wireless はこれらのイベントを通知します。
近接イベントの仕組み
近接イベントは AWS IoT がビーコンを受信すると通知されます。Sidewalk デバイスはいつでもビーコンを出力する可能性があります。デバイスが Amazon Sidewalk の近くにある場合、Sidewalk はビーコンを受信し、ビーコンを AWS IoT Wireless に一定の時間間隔で転送します。Amazon Sidewalk はこの時間間隔を 10 分に設定しています。AWS IoT Wireless が Sidewalk からビーコンを受信すると、イベントの通知が届きます。
近接イベントは、ビーコンが検出されたとき、またはビーコンが消失したときに通知されます。近接イベントが通知される間隔を設定できます。
近接イベントの通知を有効にする
Sidewalk 近接の予約済みトピックのサブスクライバーがメッセージを受信できるようにするには、AWS Management Console から、あるいは API または CLI を使用して、イベント通知を有効にする必要があります。これらのイベントは、AWS アカウント 内のすべての Sidewalk リソース、または選択したリソースに対して有効にできます。これらのイベントを有効にする方法の詳細については、「ワイヤレスリソースのイベントを有効にする」を参照してください。
近接イベントの MQTT トピックの形式
近接イベントの通知を受けるには、ドル ($) 記号で始まる MQTT 予約トピックをサブスクライブします。詳細については、AWS IoT デベロッパーガイドの「MQTT トピック」を参照してください。
Sidewalk の近接イベント用に予約された MQTT トピックは、次の形式を使用します。
-
リソースレベルのトピックの場合:
$aws/iotwireless/events/{eventName}/{eventType}/sidewalk/wireless_devices
-
識別子のトピックの場合:
$aws/iotwireless/events/{eventName}/{eventType}/sidewalk/{resourceType}/{resourceID}/{id}
コードの説明は以下のとおりです。
- {eventName}
-
{eventName} は
proximity
である必要があります。 - {eventType}
-
{eventType} は、
beacon_discovered
またはbeacon_lost
のいずれかになります。 - {resourceType}
-
{resourceType} は、
sidewalk_accounts
またはwireless_devices
のいずれかになります。 - {resourceID}
-
{resourceID} は
sidewalk_accounts
の {resourceType} のamazon_id
で、wireless_devices
の {resourceType} のwireless_device_id
です。
また、ワイルドカード文字 +
を使用して、複数のトピックを同時にサブスクライブできます。ワイルドカード文字 +
は、その文字を含むレベル内の任意の文字列に一致します。例えば、可能なすべてのイベントタイプ (beacon_discovered
および beacon_lost
) について、特定の Amazon ID に登録されているすべてのデバイス関する通知を受ける場合、次のトピックフィルターを使用できます。
$aws/iotwireless/events/proximity/+/sidewalk/sidewalk_accounts/amazon_id/+
注記
予約済みトピックをサブスクライブするには、ワイルドカード文字 #
を使用できません。トピックの詳細については、AWS IoT デベロッパーガイドの「MQTT トピックフィルター」を参照してください。
近接イベントのメッセージペイロード
近接イベントの通知を有効にすると、イベントメッセージは MQTT を介して JSON ペイロードを使用して発行されます。これらのイベントには、次のペイロード例が含まれています。
{ "eventId": "string", "eventType": "beacon_discovered|beacon_lost", "WirelessDeviceId": "string", "timestamp": "1234567890123", // Event-specific fields "Sidewalk": { "AmazonId": "string", "SidewalkManufacturingSn": "string" } }
ペイロードには以下の属性が含まれます。
- eventId
-
一意のイベント ID。文字列です。
- eventType
-
発生したイベントのタイプ。
beacon_discovered
またはbeacon_lost
のいずれかを設定できます。 - WirelessDeviceId
-
ワイヤレスデバイスの識別子。
- timestamp
-
イベントが発生したときの Unix タイムスタンプ。
- sidewalk
-
イベント通知を受け取る Sidewalk Amazon ID または
SidewalkManufacturingSn
。