第19章 MQTT への接続

MQTT (MQ Telemetry Transport) は、ライトウェイトなマシンツーマシンの IoT (Internet of Things、モノのインターネット) 接続プロトコルです。インテグレーションでは、MQTT ブローカーからメッセージを取得したり、MQTT へメッセージを公開することができます。これには、対象の MQTT ブローカーへのコネクションを作成し、そのコネクションをインテグレーションフローに追加します。詳細は以下を参照してください。

19.1. MQTT ブローカーへのコネクションの作成

インテグレーションで、MQTT ブローカーからメッセージと取得したり、MQTT ブローカーにメッセージを公開するには、対象の MQTT ブローカーへのコネクションを作成し、そのコネクションをインテグレーションに追加します。

前提条件

接続する MQTT ブローカーの URL を知っている必要があります。

手順

  1. Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
  2. Create Connection をクリックしてコネクターを表示します。
  3. MQTT Message Broker コネクターをクリックします。
  4. コネクションを設定します。

    1. MQTT broker URL フィールドにデータの送信先または取得元となる MQTT ブローカーの場所を入力します。必須のフィールドはこのフィールドのみです。
    2. 任意で、このブローカーにアクセスするために使用するクレデンシャルを持つ MQTT アカウントのユーザー名を User Name フィールドに入力します。
    3. ユーザー名を指定した場合、Password フィールドにそのアカウントに関連するパスワードを指定します。
    4. 任意で、Client ID フィールドに、メッセージを見逃さずにコネクションを開閉できるようにする ID を入力します。コネクションには、トピックのサブスクライブまたは公開が必要です。
  5. Validate をクリックします。Fuse Online は即座にコネクションを検証しようとし、検証の成功または失敗を示すメッセージを表示します。検証に失敗した場合は、入力パラメーターを訂正し、再度検証を行います。
  6. 検証に成功した場合は Next をクリックします。
  7. Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、MQTT West を入力します。
  8. Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。
  9. Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして MQTT West が表示されます。

19.2. MQTT ブローカーからメッセージを取得してインテグレーションの実行をトリガー

MQTT ブローカーからのメッセージの受信により、インテグレーションの実行をトリガーするには、MQTT コネクションを最初のコネクションとして追加します。インテグレーションの実行中、MQTT コネクションは指定した MQTT キューまたはトピックでメッセージを継続的に監視します。コネクションがメッセージを見つけると、そのメッセージをインテグレーションの次のステップに渡します。MQTT コネクションは一度に 1 つのメッセージを処理します。

前提条件

MQTT コネクションが作成されている必要があります。

手順

  1. Fuse Online パネルの左側にある Integrations をクリックします。
  2. Create Integration をクリックします。
  3. Choose a connection ページで、インテグレーションを開始するために使用する MQTT コネクションをクリックします。
  4. Choose an action ページで、Subscribe アクションを選択し、指定したキューまたはトピックからメッセージを受信します。
  5. MQTT queue/topic name フィールドに、データを受信するためにサブスクライブするキューまたはトピックの名前を入力します。
  6. Next をクリックして、アクションの出力タイプを指定します。
  7. データタイプの認識が必要がない場合は、Select Type フィールドに Type specification not required を使用し、Next をクリックします。残りの手順を行う必要はありません。

    ただし、構造化データタイプが推奨されます。たとえば、コネクション出力をデータマッパーステップでマップする場合、データタイプを指定する必要があります。データマッパーは、非構造化データのフィールドを表示できません。

    データタイプを指定するには、Select Type フィールドをクリックし、以下の 1 つをスキーマタイプとして選択します。

    • JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは application/schema+json です。
    • JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは application/json です。
    • XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は .xsd です。
    • XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は .xml です。
  8. Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが application/schema+json の JSON スキーマファイルの内容を貼り付けます。
  9. Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、Vendor をデータタイプ名として指定することができます。

    このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーションビジュアライゼーションとデータマッパーにタイプ名が表示されます。

  10. Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
  11. Next をクリックします。

結果

インテグレーションに最初のコネクションが追加され、Fuse Online は最後のコネクションを選択するよう要求します。

19.3. MQTT ブローカーへのメッセージの公開

インテグレーションでは、フローの途中で MQTT ブローカーにメッセージを公開したり、シンプルなインテグレーションを終了するために MQTT ブローカーにメッセージを公開することができます。これには、MQTT コネクションをフローの途中に追加するか、シンプルなインテグレーションの最後のコネクションとして追加します。

前提条件

  • MQTT コネクションが作成されている必要があります。
  • フローを作成または編集することになり、Fuse Online でインテグレーションに追加するよう要求されます。または、Fuse Online で最後のコネクションを選択するよう要求されます。

手順

  1. Add to Integration ページで、MATT コネクションの追加先のプラス記号をクリックします。シンプルなインテグレーションの最後のコネクションを追加する場合は、このステップをスキップします。
  2. メッセージの公開に使用する MQTT コネクションをクリックします。
  3. Choose an action ページで Publish を選択します。
  4. MQTT queue/topic name フィールドに、メッセージを公開するキューまたはトピックの名前を指定します。
  5. Next をクリックしてアクションの入力タイプを指定します。
  6. データタイプの認識が必要がない場合は、Select Type フィールドに Type specification not required を使用し、Next をクリックします。残りの手順を行う必要はありません。

    ただし、構造化データタイプが推奨されます。たとえば、コネクション入力をデータマッパーステップでマップする場合、データタイプを指定する必要があります。データマッパーは、非構造化データのフィールドを表示できません。

    データタイプを指定するには、Select Type フィールドをクリックし、以下の 1 つをスキーマタイプとして選択します。

    • JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは application/schema+json です。
    • JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは application/json です。
    • XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は .xsd です。
    • XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は .xml です。
  7. Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが application/schema+json の JSON スキーマファイルの内容を貼り付けます。
  8. Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、Vendor をデータタイプ名として指定することができます。

    このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーションビジュアライゼーションとデータマッパーにタイプ名が表示されます。

  9. Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
  10. Next をクリックします。

結果

インテグレーションビジュアライゼーションで追加した場所にコネクションが表示されます。