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 HubMQTT
MS Azure IoT Hub[WebSocket]MQTT over WebSocket
AWS IoT CoreMQTT
AWS IoT Core[WebSocket]MQTT over WebSocket
Google IoT CoreMQTT
Watson IoT for GatewayMQTT
MS Azure Event hubsAMQP
Amazon KinesisRESTful
Watson IoT for DeviceMQTT
Toami for DOCOMORESTful
SoftBankスマ可視専用クラウドMQTT
KDDI IoTクラウドStandardRESTful
PH社独自仕様WEBサーバーRESTful
WEBサーバーRESTful
MQTTサーバーMQTT
TCPTCP
PD ExchangeRESTful
ドメインソケット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では、データの前処理をコンテナを行うことでデータ量やサーバー負荷を削減します。
また、通常稼働ではオフライン環境での動作をサポートしています。
※コンテナのダウンロード及び構成変更等についてはオンライン必須です。