Node-RED: MQTTサーバー

Node-REDをMosquitto MQTTサーバーに接続する方法

Stackheroドキュメントへようこそ

Stackheroは、迅速にワークフローを構築できるよう設計された、完全マネージドのNode-REDクラウド環境を提供しています:

  • シームレスなIoT統合のための組み込みMQTTサーバー(Mosquitto)
  • フローや設定を管理できるNode-RED管理UIへのフルアクセス
  • Node-RED Dashboardを標準搭載し、リアルタイムでの可視化が可能
  • 送信制限なしの専用SMTPメールサーバーを含む
  • インスタンスを常に最新に保つためのワンクリックアップデート
  • カスタムドメイン名と自動HTTPS対応:例 https://node-red.your-company.com
  • プライベートかつ専用インフラによる高いパフォーマンスと強固なセキュリティ

約5分でセキュアかつ本番運用に対応したNode-REDクラウドホスティングインスタンスを立ち上げることができます。Stackheroがセットアップ、アップデート、インフラ管理を担当するため、オートメーションの構築に集中していただけます。

StackheroのNode-REDサービスには、組み込みのMQTTサーバーが搭載されており、安全かつ信頼性の高い通信チャネルを通じてIoTデバイスを簡単に統合できます。

はじめに、Stackheroダッシュボードにアクセスし、ご利用中のNode-REDサービスを選択して、サービス設定内の「MQTT Server」オプションを有効にしてください。

サーバーが有効化されると、ポート8883を使用して接続できます。すべての接続はTLS暗号化で保護されており、データの安全性が確保されています。

Node-REDでMQTTを初めて利用される場合、すぐに始められるシンプルな例をご紹介します。この例では、トピックにメッセージを送信し、そこからメッセージを受信する方法を示しています。フロー例をダウンロードし、「Import」メニューからNode-REDインスタンスにインポートできます。

MQTTをNode-REDに接続するシンプルな例MQTTをNode-REDに接続するシンプルな例

MQTTノードが「connecting」状態のまま動かない場合は、MQTT authenticationフローがまだ存在しているか確認することをおすすめします。もしフローがない場合は、こちらからダウンロードできます: mqttAuthenticationFlow.json。このフローをNode-REDインスタンスにインポートし、Usersノードにご希望のパスワードを設定し、不要なコメントは適宜削除してください。

Node-REDでは、専用のフローを使ってMQTTユーザー認証を簡単に管理できます。「MQTT Authentication」フローはNode-REDの管理パネルから直接確認できます。

MQTT認証フローMQTT認証フロー

この認証フロー内で、Usersテンプレートノードを探してください。このノードには、各ユーザーの認証情報を定義できる配列が含まれています。プロジェクトの要件に応じて、必要な数だけユーザーを追加できます。

注意: node-redユーザーは、Node-REDがMQTTサーバーに接続するために必須です。このユーザーを設定から削除しないようご注意ください。

MQTTユーザーノードMQTTユーザーノード

Mosquitto MQTTサーバーには、MQTTプロトコルまたはWebSocketsのいずれかで接続できます。

MQTTプロトコルは軽量でIoTデバイスに最適ですが、Webブラウザでは標準でサポートされていません。ブラウザからMQTTサーバーにアクセスしたい場合は、WebSocketsの利用が推奨されます。この方法では、MQTTトラフィックをWebSocketプロトコルでカプセル化でき、Stackheroのサービスともシームレスに連携します。

WebSocket接続を有効にするには、Stackheroダッシュボードで「WebSocket Support」オプションを有効化してください。有効化後、クライアントの設定でWebSocket用URL wss://<XXXXXX>.stackhero-network.com:443/mqtt をご利用ください。ブラウザから接続する場合は、デフォルトの mqtts://<XXXXXX>.stackhero-network.com をこのWebSocket URLに置き換えてください。

開発用途には、「MQTT.js」ライブラリが特に便利です。Node.jsおよびブラウザ環境の両方に対応した堅牢なJavaScriptライブラリです。詳細は公式リポジトリをご覧ください。

ブラウザからWebSockets経由でMQTTサーバーに接続する具体的な例については、こちらのリポジトリをご参照ください: https://github.com/stackhero-io/mqttWebSocketGettingStarted。ご自身のサーバーのurlusernamepasswordに合わせてsrc/index.htmlファイルを編集してご利用いただけます。

MQTT WebSocketの例MQTT WebSocketの例

この構成を試す前に、StackheroダッシュボードでWebSocketサポートが有効になっていることを必ずご確認ください。これにより、ブラウザからの接続がスムーズに行えます。