すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:MQTT.fx を使用した IoT Platform への接続

最終更新日:Jun 04, 2026

Windows 上で MQTT.fx を使用して、デバイスの Alibaba Cloud IoT Platform への接続をシミュレートし、コアメッセージング機能をテストします。

前提条件

  • プロダクトとデバイスが作成済みで、MQTT 接続パラメーターが取得済みであること。 詳細については、「プロダクトとデバイスの作成」および「MQTT 接続パラメーターの取得」をご参照ください。

    この例で使用するデバイス証明書と MQTT 接続パラメーターを次の表に示します。 パラメーターの詳細については、「MQTT-TLS 接続」をご参照ください。

    パラメーター

    ProductKey

    a1***

    DeviceName

    device1

    DeviceSecret

    f35***d9e

    clientId

    a1***.device1|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|

    username

    device1&a1***

    passwd

    86761***21d

    mqttHostUrl

    a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com

    port

    1883

  • TSL 通信トピックによるアップストリームおよびダウンストリームメッセージングをテストするために、TSL モデルでプロパティが定義されていること。 詳細については、「プロダクトの TSL モデルを定義」をご参照ください。

    この例では、次のプロパティを定義します: LightCurrent (動作電流、浮動小数点、範囲 0~9) および LightSwitch (メインライトスイッチ、ブール値、1 = オン、0 = オフ)。

重要

MQTT.fx でシミュレートされたデバイスは、非パススルーデータのみ使用できます。 パススルーデータをテストするには、物理デバイスまたは SDK を使用してください。

MQTT.fx 接続の設定

  1. MQTT.fx をダウンロードしてインストールします。 インストールと使用方法については、「MQTT.fx」をご参照ください。

    このトピックでは、mqttfx-5.2.0-windows-x64 を例として使用します。 バージョンのアップデートにより、UI が異なる場合があります。

    説明

    MQTT.fx ツールを使用するには、ライセンスを申請する必要があります。

  2. MQTT.fx ソフトウェアを開き、メニューバーで [エクストラ] をクリックして、[接続プロファイルの編集] を選択します。

  3. [接続プロファイルの編集] ページで、以下のパラメーターを設定します。

    1. 基本情報を設定します。

      パラメーター

      説明

      Profile Name

      任意の名前を入力します (例: iot connection)。

      Profile Type

      [MQTT ブローカー] を選択します。

      Broker Address

      MQTT 接続エンドポイントです。 「前提条件」セクションの mqttHostUrl を入力します: a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com

      • a1*** はプロダクトの ProductKey です。

      • cn-shanghai はリージョン ID です。

      ポート番号は含めず、ドメイン名のみを入力してください。

      Broker Port

      1883 に設定します。

      Client ID

      MQTT プロトコルのフィールドです。

      フォーマット: ${ClientId}|securemode=${Mode},signmethod=${SignMethod}|timestamp=${timestamp}|

      前提条件」セクションの clientId を入力します: a1***.device1|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|

      パラメーターの説明:

      • ${ClientId}: デバイス、アプリ、または Web クライアントのクライアント ID。

        重要

        最大 64 文字の任意の文字列である必要があります。 デバイスの場合、MAC アドレスまたはシリアル番号 (SN) を使用します。

      • ${Mode}: セキュリティモード。 ダイレクト TLS ([SSL/TLS] 設定が必要) の場合は 2 を、ダイレクト TCP ([SSL/TLS] 設定不要) の場合は 3 を設定します。

      • ${SignMethod}: 署名アルゴリズム。 hmacsha256hmacmd5hmacsha1 がサポートされています。

      • ${timestamp}: 現在の時刻 (ミリ秒単位)。 timestamp パラメーターはオプションです。

      デフォルトでは、IoT Platform は ${ClientId}${ProductKey}.${DeviceName} に、${Mode}2 に、${SignMethod}hmacsha256 に設定します。 必要に応じてこれらの値を変更してください。

      重要
      • MQTT.fx の [Client ID] フィールドを、デバイスの ${ClientId} の値と混同しないでください。

      • パラメーター間の縦棒 (|) や文字列の末尾の縦棒を省略しないでください。

      • パラメーター値の先頭または末尾にスペースがないことを確認してください。

      • [クライアント ID] 情報を入力した後、[生成] をクリックしないでください。

      General

      この例ではデフォルト設定を使用します。 シナリオに応じて変更してください。

    2. [ユーザー資格情報] をクリックし、[ユーザー名/パスワードを使用] チェックボックスを選択し、[ユーザー名][パスワード] を設定します。

      パラメーター

      説明

      User Name

      ユーザー名は、デバイスの DeviceName、アンパサンド (&)、プロダクトの ProductKey を ${DeviceName}&${ProductKey} の形式で連結したものです。

      前提条件」セクションの username を入力します: device1&a1***

      • device1 はデバイスの DeviceName です。

      • a1*** はプロダクトの ProductKey です。

      Password

      パスワードは、連結されたパラメーターを、選択した署名アルゴリズムを使用して DeviceSecret をキーとして暗号化することで生成します。

      前提条件」セクションの passwd を入力します: 86761***21d

      重要
      • 一部の MQTT.fx バージョンでは、貼り付け後にパスワードがマスクされます。 カーソルが末尾に移動した場合は、貼り付けは成功です。 再度貼り付けないでください。

      • パラメーターとその値では、大文字と小文字が区別されます。

      • [Client ID]${ClientId} または ${SignMethod} を変更した場合は、署名の値が [Client ID] の値と一致することを確認してから、パスワードを再計算してください (Node.js スクリプトを使用してパスワードを計算する)。

    3. 直接 TLS 接続 (securemode=2) の場合、[SSL/TLS] をクリックし、[SSL/TLS を有効にする] を選択して、[プロトコル][TLSv1.2] に設定します。

      重要

      TCP ダイレクト接続 (securemode=3) の場合、SSL/TLS 設定を行う必要はありません。 次のステップに進んでください。

  4. 右下隅の [OK] をクリックします。

  5. [接続] をクリックします。

    緑色のインジケーターは、IoT Platform への接続が成功したことを示します。

    IoT Platform コンソールでデバイスのステータスを確認してください。 お使いのインスタンスで、[デバイス] > [デバイス]に移動し、製品を選択して、デバイスのステータスが[オンライン]であることを確認します。

以降のセクションでは、カスタムトピックと TSL 通信トピックを使用して、アップストリームおよびダウンストリームメッセージングをテストします。 結果が異なる場合は、接続に失敗しています。ログ情報に基づいて設定を修正してください。

カスタムトピックを使用した通信

カスタムトピックの詳細については、「カスタムトピックを使用した通信」をご参照ください。 この例では、IoT Platform によって提供されるデフォルトのカスタムトピックを使用します:

トピック

権限

説明

/a1***/device1/user/update/error

[公開]

アップストリームメッセージング: デバイスはこのトピックで IoT Platform にメッセージを送信します。

/a1***/device1/user/get

[サブスクライブ]

ダウンストリームメッセージング: デバイスはサブスクライブして IoT Platform からのメッセージを受信します。

アップストリームメッセージング

  1. MQTT.fx で、[公開] をクリックします。[公開] テキストボックスに、[公開] 権限を持つトピック /a1***/device1/user/update/error を入力します。

  2. テキストエディターにメッセージ本文を入力し、[公開] をクリックします。

    [QoS][QoS 0] に設定されていること、およびメッセージ本文が、例えば This is a publish test. であることを確認します。

  3. IoT Platform コンソールで、インスタンスの [デバイスログ] ページを開き、[デバイスからクラウドへのメッセージ] ログを確認します。 クラウド側の実行ログを照会する

    ログエントリの [表示] をクリックします。 [詳細の表示] ダイアログボックスで、[トピック]/a[ProductKey]/device1/user/update/error であり、メッセージ内容が This is a publish test. であることを確認します。

ダウンストリームメッセージング

  1. MQTT.fx で [サブスクライブ] をクリックし、[サブスクライブ] テキストボックスに [サブスクライブ] 権限を持つトピック /a1***/device1/user/get を入力します。

  2. [サブスクライブ] をクリックします。

    サブスクライブ後、トピックがリストに表示されます。

  3. IoT Platform コンソールで、インスタンスの [デバイス] > [デバイス] に移動します。

  4. デバイスの「操作」列で、[表示] をクリックして [デバイス詳細] ページを開きます。

  5. [Topic List] タブをクリックし、サブスクライブしたトピックの Actions 列で [Publish Message] をクリックします。

  6. これはテストです。などのメッセージを入力し、[OK] をクリックします。

  7. MQTT.fx に戻り、受信したメッセージを表示します。

    [Subscribe] タブで、トピック /a{ProductKey}/device1/user/get がメッセージ This is a test. を受信します (QoS 0、Plain Text Decoder でデコード)。

TSL 通信のためのトピックの使用

TSL 通信トピックの詳細については、「トピックとは」をご参照ください。 この例では、次の TSL 通信トピックを使用します:

トピック

権限

説明

/sys/a1***/device1/thing/event/property/post

[公開]

アップストリームメッセージング: デバイスはこのトピックを使用して、プロパティデータを IoT Platform に報告します。

/sys/a1***/device1/thing/event/property/post_reply

[サブスクライブ]

ダウンストリームメッセージング: デバイスはサブスクライブして、プロパティデータを報告した後の応答を受信します。

/sys/a1***/device1/thing/service/property/set

[サブスクライブ]

ダウンストリームメッセージング: デバイスはサブスクライブして、IoT Platform からのプロパティ設定コマンドを受信します。

デバイスプロパティの報告

  1. MQTT.fx で [サブスクライブ] をクリックし、[サブスクライブ] テキストボックスに、[サブスクライブ] 権限があるトピック /sys/a1****/device1/thing/event/property/post_reply を入力します。

  2. MQTT.fx で、[パブリッシュ] をクリックし、[パブリッシュ] テキストボックスに、[publish] 権限を持つトピック /sys/a1****/device1/thing/event/property/post を入力します。

  3. テキストエディターにプロパティデータを入力し、[公開] をクリックします。

    プロパティデータは、標準の Alink JSON 形式を使用する必要があります。 詳細については、「デバイスによるプロパティの報告」をご参照ください。 この例では、LightCurrent および LightSwitch プロパティを報告します。 トピックは /sys/${ProductKey}/device1/thing/event/property/post で、JSON ペイロードの例は次のとおりです: {"method":"thing.event.property.post","id":"162277852","params":{"LightSwitch":1,"LightCurrent":1.4},"version":"1.0.0"}

  4. MQTT.fx の [サブスクライブ] タブで、IoT Platform からのレスポンスメッセージを表示します。

    成功すると、IoT Platform は次のような応答を返します:

    /sys/${YourProductKey}/device1/thing/event/property/post_reply
    {"code":200,"data":{},"id":"162277852","message":"success","method":"thing.event.property.post","version":"1.0"}
  5. IoT Platform コンソールのインスタンスで、[デバイス] > [デバイス] に移動します。

  6. デバイスの「操作」列で [表示] をクリックします。[デバイス詳細] ページで、[TSL データ] タブをクリックして、報告されたデータを表示します。

デバイスプロパティの設定

  1. MQTT.fx で、[サブスクライブ] をクリックします。[サブスクライブ] テキストボックスに、[サブスクライブ] 権限があるトピック /sys/a1****/device1/thing/service/property/set を入力します。

  2. IoT Platform コンソールで、インスタンス内の [メンテナンス] > [オンラインデバッグ] に移動します。

  3. デバイスを選択し、[プロパティのデバッグ] タブで LightSwitch を [0] に設定します。

  4. [設定] をクリックしてコマンドを送信します。

  5. MQTT.fx の [サブスクライブ] タブで、受信したメッセージを確認します。

    /sys/a1***/device1/thing/service/property/set
    {"method":"thing.service.property.set","id":"2016306076","params":{"LightSwitch":0},"version":"1.0.0"}

ログの表示

  • IoT プラットフォームコンソールでインスタンスの [デバイスログ] ページを開くと、時刻、TraceID、ビジネスタイプなどのランタイムログメッセージを表示できます。 クラウド側の実行ログを照会する

  • MQTT.fx で、[Log] タブをクリックすると、操作ログとエラーログを表示できます。

    INFO --- MqttFX ClientModel            : messageArrived() with topic: /ext/error/a1***/device1
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : addPublishTopic : /a1***/device1/user/get
    INFO --- MqttFX ClientModel            : successfully published message test to topic /a1***/device1/user/get
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : successfully published message test to topic /a1***/device1/user/get
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : successfully published message test to topic /a1***/device1/user/get
    INFO --- BrokerConnectorController     : onDisconnect
    INFO --- ScriptsController              : Clear console.
    INFO --- ScriptsController              : Cancel script excution.
    INFO --- ScriptsController              : Clear console.
    INFO --- ScriptsController              : Cancel script excution.
    INFO --- ScriptsController              : Clear console.
    INFO --- ScriptsController              : Cancel script excution.
    INFO --- BrokerConnectorController     : onConnect
    INFO --- ScriptsController              : Clear console.
    INFO --- MqttFX ClientModel            : MqttClient with ID a1***.device1|securemode=2,signmethod=hmacsha...
    INFO --- MqttFX ClientModel            : session present: false
    INFO --- SubscribeController            : onSubscribe
    INFO --- MqttFX ClientModel            : rebuildMessagesList()
    INFO --- MqttFX ClientModel            : attempt to addRecentSubscriptionTopic
    INFO --- MqttFX ClientModel            : addRecentSubscriptionTopic : de.jensd.mqttfx.entities.Topic
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : addPublishTopic : /a1***/device1/user/get
    INFO --- MqttFX ClientModel            : successfully subscribed to topic /a1***/device1/user/get (QoS 0)
    INFO --- MqttFX ClientModel            : messageArrived() with topic: /a1***/device1/user/get
    INFO --- MqttFX ClientModel            : messageArrived() added: message #1 to topic '/a1***/device1/user/...
    INFO --- PublishController              : publish
    INFO --- MqttFX ClientModel            : attempt to add PublishTopic
    INFO --- MqttFX ClientModel            : addPublishTopic : /a1***/device1/user/update/error
    INFO --- MqttFX ClientModel            : successfully published message This is a publish test. to topic /a1***/device1/user/update/error

関連ドキュメント

  • IoT Platform は、リソースに制約のある低帯域幅環境の IoT で広く使用されている MQTT プロトコルをサポートしています。 詳細については、「MQTT プロトコル仕様」をご参照ください。

  • デバイスを IoT Platform に接続するには、「デバイス接続ガイド」をご参照ください。

  • トピックは、MQTT メッセージのパブリッシュとサブスクライブの仲介役として機能します。 トピックの概念と定義については、「トピックとは」をご参照ください。