

# 近接イベント
<a name="iot-sidewalk-proximity-events"></a>

近接イベントは、AWS IoT が Sidewalk デバイスからビーコンを受信したときにイベント通知を発行します。Sidewalk デバイスが Amazon Sidewalk に近づくと、デバイスから送信されるビーコンは Amazon Sidewalk によって定期的にフィルターされ、AWS IoT Wireless に送信されます。次に、ビーコンが受信されると、AWS IoT Wireless はこれらのイベントを通知します。

## 近接イベントの仕組み
<a name="iot-sidewalk-proximity-events-work"></a>

近接イベントは AWS IoT がビーコンを受信すると通知されます。Sidewalk デバイスはいつでもビーコンを出力する可能性があります。デバイスが Amazon Sidewalk の近くにある場合、Sidewalk はビーコンを受信し、ビーコンを AWS IoT Wireless に一定の時間間隔で転送します。Amazon Sidewalk はこの時間間隔を 10 分に設定しています。AWS IoT Wireless が Sidewalk からビーコンを受信すると、イベントの通知が届きます。

近接イベントは、ビーコンが検出されたとき、またはビーコンが消失したときに通知されます。近接イベントが通知される間隔を設定できます。

## 近接イベントの通知を有効にする
<a name="iot-sidewalk-proximity-events-enable"></a>

Sidewalk 近接の予約済みトピックのサブスクライバーがメッセージを受信できるようにするには、AWS マネジメントコンソール から、あるいは API または CLI を使用して、イベント通知を有効にする必要があります。これらのイベントは、AWS アカウント 内のすべての Sidewalk リソース、または選択したリソースに対して有効にできます。これらのイベントを有効にする方法の詳細については、「[ワイヤレスリソースのイベントを有効にする](iot-wireless-control-events.md)」を参照してください。

## 近接イベントの MQTT トピックの形式
<a name="iot-sidewalk-proximity-events-mqtt"></a>

近接イベントの通知を受けるには、ドル (\$1) 記号で始まる MQTT 予約トピックをサブスクライブします。詳細については、*AWS IoT デベロッパーガイド*の「[MQTT トピック](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。

Sidewalk の近接イベント用に予約された MQTT トピックは、次の形式を使用します。
+ リソースレベルのトピックの場合:

  `$aws/iotwireless/events/{eventName}/{eventType}/sidewalk/wireless_devices`
+ 識別子のトピックの場合:

  `$aws/iotwireless/events/{eventName}/{eventType}/sidewalk/{resourceType}/{resourceID}/{id}`

コードの説明は以下のとおりです。

**\$1eventName\$1**  
\$1eventName\$1 は `proximity` である必要があります。

**\$1eventType\$1**  
\$1eventType\$1 は、`beacon_discovered` または `beacon_lost` のいずれかになります。

**\$1resourceType\$1**  
\$1resourceType\$1 は、`sidewalk_accounts` または `wireless_devices` のいずれかになります。

**\$1resourceID\$1**  
\$1resourceID\$1 は `sidewalk_accounts` の \$1resourceType\$1 の `amazon_id` で、`wireless_devices` の \$1resourceType\$1 の `wireless_device_id` です。

また、ワイルドカード文字 `+` を使用して、複数のトピックを同時にサブスクライブできます。ワイルドカード文字 `+` は、その文字を含むレベル内の任意の文字列に一致します。例えば、可能なすべてのイベントタイプ (`beacon_discovered` および `beacon_lost`) について、特定の Amazon ID に登録されているすべてのデバイス関する通知を受ける場合、次のトピックフィルターを使用できます。

`$aws/iotwireless/events/proximity/+/sidewalk/sidewalk_accounts/amazon_id/+`

**注記**  
予約済みトピックをサブスクライブするには、ワイルドカード文字 `#` を使用できません。トピックの詳細については、*AWS IoT デベロッパーガイド*の「[MQTT トピックフィルター](https://docs.aws.amazon.com/iot/latest/developerguide/topicfilters.html)」を参照してください。

## 近接イベントのメッセージペイロード
<a name="iot-sidewalk-proximity-events-json"></a>

近接イベントの通知を有効にすると、イベントメッセージは 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`。