Topics for IoT platform communication

はじめに:デバイスプラクティスに基づく Topic 設計の概要
1 はじめに
IoT Platform は MQTT プロトコルの Pub/Sub 通信に基づいており、Topic とペイロードの設計が非常に重要です。
Web 開発における API 設計と同様に、異なるビジネスシナリオに対応するために異なる Topic を定義できます。


2. Topic クラスのカスタマイズ

2.1 デフォルトカスタム Topic
プロダクトを作成すると、システムが自動的に 3 つのカスタム Topic を生成します。

Topic 権限 備考
/${ProductKey}/${DeviceName}/user/update パブリッシュ データをレポートする
/${ProductKey}/${DeviceName}/user/update/error パブリッシュ エラーイベントをレポートする
/${ProductKey}/${DeviceName}/user/get サブスクライブ クラウドからのデータを受信する

2.2 カスタム Topic
デフォルトの Topic はサンプルです。ビジネスニーズに応じて Topic とペイロードを定義し、実際の課題を解決できます。次の例を参照してください。

Topic 権限 備考
/${ProductKey}/${DeviceName}/user/heart/post パブリッシュ 定期的にデータをレポートする
/${ProductKey}/${DeviceName}/user/bizdata/post パブリッシュ ビジネストリガーによるレポート
/${ProductKey}/${DeviceName}/user/biz/control サブスクライブ クラウドからの指示を受信する
/${ProductKey}/${DeviceName}/user/config/modify サブスクライブ デバイス設定の変更を受信する
デバイスからレポートされるデータについて、優先度の異なるメッセージを分類し、ルールエンジンを経由して異なるキューに振り分けることで、異なる処理リソースを割り当て、重要なビジネスメッセージの過度な遅延を回避できます。
クラウドコマンドの受信についても、ビジネスコマンドと設定コマンドを区別し、異なる優先度を設定できます。


3. システム Topic 一覧

3.1 デバイスシャドウ
デバイスシャドウ機能を実装するには、以下の Topic を使用します。

Topic 権限 備考
/shadow/update/${ProductKey}/${DeviceName} パブリッシュ デバイスシャドウを更新する QoS=1
/shadow/get/${ProductKey}/${DeviceName} サブスクライブ デバイスシャドウを取得する
デバイスシャドウにより、デバイスの動作パラメータの設定更新機能を実現できます。


3.2 ファームウェアアップグレード
Topic 権限 備考
/ota/device/inform//${ProductKey}/${DeviceName} パブリッシュ 現在のファームウェアバージョンをレポートする
/ota/device/upgrade/${ProductKey}/${DeviceName} サブスクライブ OTA 情報を受信する
/ota/device/progress/${ProductKey}/${DeviceName} パブリッシュ OTA の進行状況をレポートする
/ota/device/request/${ProductKey}/${DeviceName} パブリッシュ OTA 情報を積極的にリクエストする

3.3 ブロードキャスト
Topic 権限 備考
/broadcast/${YourProductKey}/+ サブスクライブ ブロードキャスト情報を受信する
同じプロダクトのデバイスは、クラウドからのブロードキャストコマンドを受信できます。IoT Platform ではブロードキャストの上限が最大 1,000 デバイスに制限されています。
ここでは、ルールに基づいてデバイスをグループ化し、異なるグループのデバイスが自動的に異なるグループの Topic をサブスクライブするようにできます。例:

/broadcast/${YourProductKey}/group/a
/broadcast/${YourProductKey}/group/b

3.4 RRPC 通信
以下の Topic を使用して、IoT Platform は MQTT プロトコルに基づきクラウドからデバイスへの同期的な RPC 呼び出しを実装します。

Topic 権限 備考
/sys/${ProductKey}/${DeviceName}/rrpc/request/+ サブスクライブ RRPC 呼び出しを受信する
/sys/${ProductKey}/${DeviceName}/rrpc/response/${msgId} パブリッシュ RRPC リクエストに対応する msgId で応答する

3.5 デバイスタグ
デバイスタグ Topic を使用して、デバイスにランタイムタグを動的に追加します。

Topic 権限 備考
/sys/${ProductKey}/${DeviceName}/thing/deviceinfo/update パブリッシュ デバイスタグを更新する

3.6 リモート設定
Topic 権限 備考
/sys/${ProductKey}/${DeviceName}/thing/config/get パブリッシュ 設定情報を能動的にクエリする
/sys/${ProductKey}/${DeviceName}/thing/config/push サブスクライブ 設定情報を受信する
/sys/${ProductKey}/${DeviceName}/thing/config/get_reply サブスクライブ 設定情報の応答を受信する

4. オブジェクトモデル通信

4.1 オブジェクトモデル JSON データ通信
Topic 権限 備考
/sys/${ProductKey}/${DeviceName}/thing/event/property/post パブリッシュ プロパティデータをレポートする
/sys/${ProductKey}/${DeviceName}/thing/event/property/post_reply サブスクライブ 返された結果を受信する
/sys/${ProductKey}/${DeviceName}/thing/event/{identifer}/post パブリッシュ イベントデータをレポートする
/sys/${ProductKey}/${DeviceName}/thing/event/{identifer}/post_reply サブスクライブ 返された結果を受信する
/sys/${ProductKey}/${DeviceName}/thing/service/property/set サブスクライブ プロパティ設定指示を受信する
/sys/${ProductKey}/${DeviceName}/thing/service/property/set_reply パブリッシュ 処理結果を返す
/sys/${ProductKey}/${DeviceName}/thing/service/{identifer} パブリッシュ サービス呼び出し指示を受信する
/sys/${ProductKey}/${DeviceName}/thing/service/{identifer}_reply サブスクライブ サービス処理結果を返す

4.2 オブジェクトモデル透過データ通信
Topic 権限 備考
/sys/${ProductKey}/${DeviceName}/thing/model/up_raw パブリッシュ データをレポートする
/sys/${ProductKey}/${DeviceName}/thing/model/down_raw サブスクライブ クラウドコマンドを受信する

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.