MQTTサーバーの準備

使用機器

ここでは以下の機器を使用して、設定します。

  • OpenBlocks IoT VX2

WEB-UIの初期設定

OpenBlocks IoT VX2のWEB-UIの初期設定については、初期設定をご覧ください。

Node-RED設定

MQTTサーバーをNode-REDのフローに設置するために、Node-REDを設定します。

インストール

Node-REDをインストールしていない場合、[メンテナンス] > [機能拡張]タブの[インストール機能]のドロップダウンメニューで「Node-RED」を選択し、[実行]ボタンをクリックします。

機能拡張

起動設定

[サービス] > [Node-RED]タブで、以下の通り設定して、[保存]ボタンをクリックしてください。

起動設定

項目
使用設定使用する
ポート番号1880
ログイン認証設定使用しない
使用Config設定本システムコンフィグ

ブラウザフィルタ

Node-REDへWEBアクセスするために、フィルターを開放する必要があります。

[システム] > [フィルター]タブで、[フィルター開放設定]の「再起動後もフィルタ開放設定を有効にする」の前のチェックボックスをチェックし、以下の通り設定して、[保存]ボタンをクリックしてください。

フィルター開放設定

項目解放ポリシー
Node-RED有効ローカルエリアネットワークのみ

詳細は、サービスガイド > Node-RED設定をご覧ください。

拡張フィルタ設定

「OpenBlocks IoT EX1」からMQTTサーバーへ送信されたデータを受信するために、フィルターを開放する必要があります。

[システム] > [フィルター]タブで、[フィルター開放設定]の[拡張フィルタ対応]ボタンをクリックします。[拡張フィルタ設定ファイル編集]で、以下の通り設定して、[保存]ボタンをクリックしてください。

フィルター開放設定

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 1883 -j ACCEPT
info

フィルターを開放するコマンドはeth0インターフェースからの受け入れを許可しています。
eth0以外のインターフェースからMQTTのデータを受信する場合には"eth0"を対応するインターフェースへと変更してください。

MQTTサーバーの設置

[サービス] > [Node-RED]リンクをクリックし、[Node-RED]タブの[リンク]ボタンをクリックしてください。Node-REDのフロー作成画面が表示されます。

フロー

ノードnode-red-contrib-aedesの追加

Node-RED内にMQTTサーバーを設置するために、ノードnode-red-contrib-aedesを追加します。

シリアルコンソールまたはSSHからログインして、以下のコマンドを実行します。

# cd /var/webui/app/nodered/workdir/
# npm install --no-audit --no-update-notifier --save --save-prefix="~" --production node-red-contrib-aedes@0.4.0

シリアルコンソールまたはSSHからのログインについては、Linuxコマンドラインによる操作をご欄ください。

ノードnode-red-contrib-aedesのインストールを反映するために、[ダッシュボード]でNode-REDを、再起動([停止]ボタンをクリックして、[起動]ボタンをクリック)してください。

caution

画面右上のハンバーガーメニュー内の「パレットの管理」からノードnode-red-contrib-aedesを追加すると、最新バージョン(2022年5月30日現在、バージョン0.8.1)がインストールされます。aedes broker ノードが存在するフローをデブロイすると「不明なノードが存在するため、フローを停止しました。」と表示され、動作しません。 この場合は、フローからaedes broker ノードを削除してデプロイし、「パレットの管理」からノードnode-red-contrib-aedesを削除した後、上記の通りコマンドラインからノードnode-red-contrib-aedes(バージョン0.4.0)をインストールしてください。

フロー

以下はaedes brokerノードのみからなるフローです。

フローaedes broker

フローの作成については、[Node-REDスターターガイド] > Node-REDの簡易説明ノード操作サンプルを参照してください。

aedes broker

MQTTサーバーです。

aedes_broker

設定は、デフォルトのままです。

以上でOpenBlocks IoT VX2におけるMQTTサーバーの準備ができました。