PD Repeater 送受信設定
PD Repeaterは、OpenBlocksのPDHMSモジュールの一つです。
ユニックスドメインソケットのメッセージパスを利用して、他のモジュールとセンサーデータのやり取りを行っています。
PD Repeaterは、PD Handlerなどからのメッセージを受け取り、IoTクラウドやIoTサーバーなどの上流のIoTデータ収集サーバーへデーターを送信可能です。
そして、下流制御機能を持つIoTデータ収集サーバーからは制御メッセージを受け取り、下流ネットワークにあるModbus対応のPLCなどに制御データーを送る機能があります。
また、Modbus以外の下流制御機器にはPD Agent
を使って制御スクリプトなどを実行し制御します。
PD RepeaterはIoTデータ設定→アプリ設定で起動します。
送受信設定
それぞれのセンサーから受け取ったメッセージ(センサーデータ)は、それぞれ送信先のIoTデータ収集サーバーを選ぶことができます。
OpenBlocksは送り先となるIoTデータ収集サーバーを4つまで登録することができ、それぞれのセンサーはこの4つから複数選択が可能です。
送信先の選択 |
---|
送信先のIoTクラウドやIoTサーバーなどの上流のIoTデータ収集サーバーは以下の一覧表のリンク先を参照ください。
設定項目 | 説明 |
---|---|
本体内(lo) | BLEデバイスのJSONテーブルと温度/湿度グラフをIoTデータ →データ表示 タブに出力します。 |
DEXPF(dexpf) | 送受信先としてDEXPFを選択します。 |
DEXPF[Websocket](dexpf_ws) | 送受信先としてDEXPFを選択します。接続プロトコルとしてWebsocket over MQTTを用います。 |
MS Azure IoT Hub(iothub) | 送受信先としてMicrosoft Azure IoT Hubを選択します。 なお、Azure IoT Edgeに対して送信する場合には、本項目を選択します。 |
MS Azure IoT Hub[Websocket](iothub_ws) | 送受信先としてMicrosoft Azure IoT Hubを選択します。 接続プロトコルとしてWebsocket over MQTTを用います。 |
AWS IoT(awsiot) | 送受信先としてAmazon AWS IoTを選択します。 |
AWS IoT[Websocket](awsiot_ws) | 送受信先としてAmazon AWS IoTを選択します。 接続プロトコルとしてWebsocket over MQTTを用います。 |
Google IoT Core(iotcore) | 送受信先としてGoogle IoT Coreを選択します。 |
Watson IoT for Gateway(w4g) | 送受信先としてIBM Watson IoT for Gatewayを選択します。 |
MS Azure Event hubs(eventhub) | 送信先としてMicrosoft Azure Event hubsを選択します。 |
Amazon Kinesis(kinesis) | 送信先としてAmazon Kinesisを選択します。 |
Watson IoT for Device(w4d) | 送受信先としてIBM Watson IoT for Deviceを選択します。 |
Toami for DOCOMO(t4d) | 送信先としてNTT docomo Toami for DOCOMOを選択します。 |
SoftBankスマ可視専用クラウド(sbiot) | 送信先としてSoftBankスマ可視専用クラウドを選択します。 |
KDDI IoTクラウドStandard(kddi_std) | 送信先としてKDDI IoT クラウド Standardを選択します。 |
PH社独自仕様WEBサーバー(pd_web) | 送受先として弊社独自仕様のWEBサーバーを選択します。 |
WEBサーバー(web) | 送信先として汎用のWEBサーバーを選択します。 |
MQTTサーバー(mqtt) | 送受信先として汎用のMQTTサーバーを選択します。 |
TCP(ltcp) | 送受信先として汎用のTCPサーバーを選択します。 |
PD Exchange(pd_ex) | 送受信先としてPD Exchangeを選択します。 |
ドメインソケット(lsocket) | 送信先としてUNIXドメインソケットを選択します。 Node-REDパッケージがインストールされている場合のみ表示されます。 |
補足事項
データ送信量と回線速度
ビーコンやデバイスからの情報取得量に対して、データ送信が遅い場合には、OpenBlocksシリーズ内のバッファーに情報が溜まっていきます。
この場合、データ送信部の改善を行わない場合には溜まり続けてしまう為、バッファーデータを確認しインターバルや取得時間間隔等を調整してください。
info
バッファーデータはサービス
→状態
タブにてバッファーファイルのサイズを確認できます。
書き込みデータフォーマット
PD RepeaterはJSON形式のデータを扱うことを前提としていますが、接続先によっては、JSON形式でない文字列を扱うことができます。
クラウド | 非JSON形式対応 |
---|---|
MQTTサーバー | 〇 |
Watson IoT for Device | |
Amazon Kinesis | 〇 |
WEBサーバー | |
AWS IoT | 〇 |
MS Azure Event hubs | 〇 |
Watson IoT for Gateway | |
MS Azure IoT Hub | 〇 |
Toami for DOCOMO | |
ドメインソケット | 〇 |
KDDI IoT クラウドStandard | |
PH社独自仕様WEBサーバー | |
Google IoT Core | 〇 |
TCP | 〇 |
AWS IoT[Websocket] | 〇 |
MS Azure IoT Hub[Websocket] | 〇 |
SoftBankスマ可視専用クラウド | 〇 |
各クラウドの通信プロトコル
各送受信先クラウドのプロトコルは以下の表に示す通りとなります。
クラウド | 使用プロトコル |
---|---|
MS Azure IoT Hub | MQTT |
MS Azure IoT Hub[WebSocket] | MQTT over WebSocket |
AWS IoT Core | MQTT |
AWS IoT Core[WebSocket] | MQTT over WebSocket |
Google IoT Core | MQTT |
Watson IoT for Gateway | MQTT |
MS Azure Event hubs | AMQP |
Amazon Kinesis | RESTful |
Watson IoT for Device | MQTT |
Toami for DOCOMO | RESTful |
SoftBankスマ可視専用クラウド | MQTT |
KDDI IoTクラウドStandard | RESTful |
PH社独自仕様WEBサーバー | RESTful |
WEBサーバー | RESTful |
MQTTサーバー | MQTT |
TCP | TCP |
PD Exchange | RESTful |
ドメインソケット | Unix Domain Socket |
なお、RESTful 及び WebSocketを使うプロトコルについてはHTTPプロキシに対応しています。
HTTPプロキシ環境にて使用する場合は、WEB-UIのネットワーク
⇒HTTPプロキシ
にて設定してください。
書き込みサイズ
PD Repeaterへのデータの書き込みサイズはデバイス毎に変更することが可能ですが、大きくすればするほどメモリを消費しパフォーマンスも低下するため、データのサイズに応じ可能な限り小さくしておくことを推奨します。
また、クラウドによって規定されている最大値も異なるため、使用するクラウドの仕様をご確認の上、設定して下さい。
データバッファサイズ
PD Repeaterは送信用のバッファーとして一時溜めこみを行う為、DBにバッファーとして書き込みます。各調整を行っていない場合、DBのサイズ上限のデフォルトは16Mbyteです。
このサイズを超えた場合、新しいデータは廃棄され、DBのサイズが8Mbyte以下(データベースの最大サイズの半分)になるまでデータの受信は行われません。
クラウド送信エラー時のリトライ
ネットワークの通信状況によって、PD Repesterからクラウドに対しての送信が失敗することがあります。
この時、連続4回失敗した場合や想定外のエラー状態が発生した場合には、1分後に再送信処理を開始します。
WEBサーバーへのデータ送信
PD Repeater(OpenBlocks IoTのファームウェア)側からは、指定したURLのEndpointに対してHTTP POSTメソッドで送信します。
そのため、HTTPサーバ側ではHTTP 200番台のステータスコードを返す必要があります。
HTTP 200番台のステータスコードを返却する際、HTTPヘッダやペイロードで必要なものはありません。
なお、HTTP 200番台以外のステータスが返された場合、PD Repeater(OpenBlocks IoTのファームウェア)側ではエラーとして扱います。
IoT Hub/IoT Edgeへのデータ送信
OpenBlocksからIoT Hub/IoT Edgeへのダイレクト送信
PD RepeaterからAzure IoT Hubに送信する場合、ホストマシン(OpenBlocks)からインターネット経由にて送信を行います。
そのため、クラウドサイドにて使用するデータのみへとフィルタを行う場合、送信するデータはホストマシン(OpenBlocks内)にて絞り込みを行うか、Azure内の別のサービスと連携して処理を行う必要があります。
Docker MobyのコンテナでIoT Hub/IoT Edgeへの送信
PD RepeaterからAzure IoT Edgeに送信する場合、ホストマシン(OpenBlocks)からホスト内のコンテナまたはAzure IoT Edgeが稼働している別のエッジマシンに対してデータ送信を行います。
Azure IoT Edgeでは、データの前処理をコンテナを行うことでデータ量やサーバー負荷を削減します。
また、通常稼働ではオフライン環境での動作をサポートしています。
※コンテナのダウンロード及び構成変更等についてはオンライン必須です。