

# 接近事件
<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>

啟用接近事件通知之後，事件訊息會透過具 JSON 承載的 MQTT 發佈。這些事件包含下方的範例承載：

```
{    
    "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`。