デバイス登録状態イベント
デバイス登録状態イベントは、Sidewalk デバイスがプロビジョニングまたは登録されたときなど、デバイスの登録状態に変化があった場合に、イベント通知を発行します。イベントは、デバイスがプロビジョニングされてから登録された時点まで、デバイスが通過するさまざまな状態に関する情報を提供します。
デバイス登録状態イベントの仕組み
Amazon Sidewalk と AWS IoT Wireless で Sidewalk デバイスをオンボードすると、AWS IoT Wireless は create
オペレーションを実行して、Sidewalk デバイスを AWS アカウント に追加します。その後、デバイスがプロビジョニング済み状態になり、eventType
は provisioned
になります。デバイスのオンボーディングの詳細については、「AWS IoT Core for Amazon Sidewalk の開始方法」を参照してください。
デバイスが provisioned
になった後、Amazon Sidewalk は register
オペレーションを実行して Sidewalk デバイスを AWS IoT Wireless に登録します。登録プロセスが開始され、暗号化キーとセッションキーが AWS IoT で設定されます。デバイスが登録されると、eventType
は registered
になり、デバイスを使用できるようになります。
デバイスが registered
になった後、Sidewalk は deregister
デバイスにリクエストを送ることができます。次に、AWS IoT Wireless はリクエストを実行し、デバイスの状態を provisioned
に戻します。デバイス状態の詳細については、「DeviceState」を参照してください。
デバイス登録状態イベントの通知を有効にする
デバイス登録状態の予約済みトピックのサブスクライバーがメッセージを受信できるようにするには、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} は
device_registation_state
である必要があります。 - {eventType}
-
{eventType} は、
provisioned
またはregistered
のいずれかになります。 - {resourceType}
-
{resourceType} は、
sidewalk_accounts
またはwireless_devices
のいずれかになります。 - {resourceID}
-
{resourceID} は
sidewalk_accounts
の {resourceType} のamazon_id
で、wireless_devices
の {resourceType} のwireless_device_id
です。
また、ワイルドカード文字 +
を使用して、複数のトピックを同時にサブスクライブできます。ワイルドカード文字 +
は、その文字を含むレベル内の任意の文字列に一致します。例えば、可能なすべてのイベントタイプ (provisioned
および registered
) について、特定の Amazon ID に登録されているすべてのデバイス関する通知を受ける場合、次のトピックフィルターを使用できます。
$aws/iotwireless/events/device_registration_state/+/sidewalk/sidewalk_accounts/amazon_id/+
注記
予約済みトピックをサブスクライブするには、ワイルドカード文字 #
を使用できません。トピックの詳細については、AWS IoT デベロッパーガイドの「MQTT トピックフィルター」を参照してください。
デバイス登録状態イベントのメッセージペイロード
デバイス登録状態イベントの通知を有効にすると、イベント通知は MQTT を介して JSON ペイロードを使用して発行されます。これらのイベントには、次のペイロード例が含まれています。
{ "eventId": "string", "eventType": "provisioned|registered", "WirelessDeviceId": "string", "timestamp": "timestamp", // Event-specific fields "operation": "create|deregister|register", "Sidewalk": { "AmazonId": "string", "SidewalkManufacturingSn": "string" } }
ペイロードには以下の属性が含まれます。
- eventId
-
一意のイベント ID (文字列)。
- eventType
-
発生したイベントのタイプ。
provisioned
またはregistered
のいずれかを設定できます。 - wirelessDeviceId
-
ワイヤレスデバイスの識別子。
- timestamp
-
イベントが発生したときの Unix タイムスタンプ。
- オペレーション
-
イベントをトリガーしたオペレーション。有効な値は、
create
、register
、deregister
です。 - sidewalk
-
イベント通知を受け取る Sidewalk Amazon ID または
SidewalkManufacturingSn
。