2.4. Event Exchange Platform接続用ノード¶
Event Exchange Platform (EEP)とイベントの送受信を行うためのノードです。 各ノードの設定項目等の詳細は後述のリファレンスを参照してください。
eep out
EEPへのイベント送信機能を持つノードです。
eep in
EEPからのアクチュエーション指示取得機能を持つノードです。
eep get
EEPからの現在のDevice Phantomの取得機能を持つノードです。
eep-config
他のノードから参照される接続設定ノードです。 HTTP及びMQTTによる接続をサポートします。
2.4.1. eep out¶
2.4.1.1. 設定項目¶
eep outには以下の設定項目があります。
- Destination
- EEPとの接続設定をeep-configノードで設定します。
- Device Type
- Device Phantomを格納するDevice Typeを設定します。
- Device ID
- 論理的にデバイスを識別するIDであるDevice IDを指定します。 指定されたキー値でDevice Phantomを格納します。 省略された場合Desitinationに設定されたClient IDの値が使用されます。
- Name
- ノードの名称を設定することができます。
2.4.1.2. メッセージ構造¶
2.4.1.2.1. 入力メッセージ¶
eep outノードでは以下の形式のメッセージを受け付けます。
{
"payload": {
// Device Phantomのattributes.reportedに格納したい値
},
"metadata": {
// Device Phantomのmetadata.reportedに格納したい値
},
"version": xx //Device Phantomのバージョンを数値で指定します。省略が可能です。
}
eep outノードは上記メッセージを受け取るとEEPに対して HTTPまたはMQTTで以下の形式でDevice Phantomを送信します。
{
"attributes" :{
"reported": {
msg.payloadに入力された値
}
},
"metadata" :{
"reported": {
msg.metadataに入力された値
}
},
"deviceId": 設定のDevice ID or Desitinationに設定されたClient ID,
"version": msg.versionに入力された値
}
msg.versionを省略した場合、送信するJSONのversionも省略されます。 versionが省略されるとDevice Phantomの初期作成時は0が設定され、それ以外の場合は自動的にインクリメントされます。 versionを設定する場合、EEPではエポックミリ秒を指定することを推奨しています。 最新のバージョンより古いバージョンを指定した場合、 その操作は拒否され、ノードからエラー出力されます。
2.4.1.3. エラー出力¶
HTTPでstatusCode 20X以外が返却された場合やMQTTでrejectedのトピックでレスポンスが返却された場合、 参照しているeep-configノードからログにエラーが出力されます。 エラーメッセージを参照して設定の誤りを修正してください。
2.4.2. eep in¶
2.4.2.1. 設定項目¶
eep inには以下の設定項目があります。
- Destination
- EEPとの接続設定をeep-configノードで設定します。
- Device Type
- 受信したいアクチュエーション指示対象のデバイスのDevice Phantomが格納されているデバイスタイプを設定します。
- Ruting Rules
- 取得したアクチュエーション指示のフィルタリングルールと出力端子端子の対応関係であるルーティングルールを指定します。 プルダウンメニューから
all devices
を選択した場合、対応する端子からはすべてのDevice IDに対するアクチュエーションメッセージが出力されます。 プルダウンメニューからtarget device
を選択した場合、テキストボックスが表示されDevice IDを入力することができます。 この場合、該当する端子からは指定されたDevice IDに対するアクチュエーション指示を出力します。 switchノードのようにルールを複数指定することができ、指定した分の出力端子が表示され、 対応した端子からルールに基づいたアクチュエーション指示が出力されます。 - Output Entire Device Phantom
- チェックを入れるとDevice Phantom全体をペイロードとして出力します。 チェックを入れない場合は
attributes.delta
のみが出力されます。 詳細はメッセージ構造を参照ください。 - Name
- ノードの名称を設定することができます。
2.4.2.2. メッセージ構造¶
2.4.2.2.1. 出力メッセージ¶
eep inはOutput Entire Device Phantomのチェックの有無によって出力メッセージの構造が変化します。
- Output Entire Device Phantomにチェックがある場合
{
"payload" : {
"attributes": {
"desired" : {},
"reported" : {},
"delta": {}
},
"metadata": {
"desired" : {},
"reported" : {},
"delta": {}
},
"eventId": "xxxxx",
"deviceId": "<デバイスID>",
"version": xx
}
}
- Output Entire Device Phantomにチェックがない場合
{
"payload" : {
//attributes.deltaの中身
}
}
2.4.3. eep get¶
2.4.3.1. 設定項目¶
eep getには以下の設定項目があります。
- Destination
- EEPとの接続設定をeep-configノードで設定します。
- Device Type
- 取得したいDevice Phantomが格納されているDevice Typeを設定します。
- Device ID
- 論理的にデバイスを識別するIDであるDevice IDを指定します。 指定されたキー値に格納されているDevice Phantomを取得します。 省略された場合Desitinationに設定されたClient IDの値が使用されます。
- Output Entire Device Phantom
- チェックを入れるとDevice Phantom全体をペイロードとして出力します。 チェックを入れない場合は
attributes.delta
のみが出力されます。 詳細はメッセージ構造を参照ください。 - Name
- ノードの名称を設定することができます。
2.4.3.2. メッセージ構造¶
2.4.3.2.2. 出力メッセージ¶
- Output Entire Device Phantomにチェックがある場合
{
"result": "accepted",
"payload" : {
"attributes": {
"desired" : {},
"reported" : {},
"delta": {}
},
"metadata": {
"desired" : {},
"reported" : {},
"delta": {}
},
"eventId": "xxxxx",
"deviceId": "<デバイスID>",
"version": xx
}
}
- Output Entire Device Phantomにチェックがない場合
{
"result": "accepted",
"payload" : {
//attributes.deltaの中身
}
}
2.4.3.3. エラー出力¶
HTTPでStatus Code 20X以外が返却された場合やMQTTでrejectedのトピックでレスポンスが返却された場合、 参照しているeep-configノードからログにエラーが出力されます。 エラーメッセージを参照して設定の誤りを修正してください。
2.4.3.4. 注意事項¶
同一のeep-configノード、Device Typeが設定された複数のeep getノードが複数ある場合、 一つのeep getノードにメッセージを入力した際に、それ以外のeep getノードからも取得したDevice Phantomの値が出力されます。 回避したい場合には参照するeep-configノードを分けることで回避可能です。
2.4.4. eep-config¶
2.4.4.1. 設定項目¶
- Destination Type
- EEPに接続する際の接続先の種類を設定します。 現時点では
HTTP Event Broker
とMQTT Event Broker
を選択できます。 - Hostname
- 接続するEEPのホスト名やIPアドレスを指定します。必須項目です。
- Port
- 接続するEEPのポートを指定します。Destination Typeが
HTTP Event Broker
のときは8080が、MQTT Event Broker
の場合は1883がデフォルトで入力されます。必須項目です。 - Enable SSL/TLS
- SSL/TLSによる通信の暗号化を行うかどうかをチェックボックスで指定します。 チェックをした場合以下の証明書設定項目が表示されます。
- CA Certificate
- 独自のCA証明書で証明書検証を行う場合、CA証明書ファイルのフルパスを指定します。
- Certificate
- クライアント証明書による認証を行う場合、クライアント証明書ファイルのフルパスを指定します。
- Private Key
- クライアント証明書による認証を行う場合、クライアントの秘密鍵ファイルのフルパスを指定します。
- Client ID
- 物理的な(L3/L1)デバイスを識別するIDであるClient IDを指定します。 ICEで使用する場合、Client IDはedge_idの値とすることを推奨します。 使用するClient IDはEEP側に登録されている必要があります。 ICEで使用する場合、core_config.jsonに記載されたedge_idがデフォルト値として埋め込まれます。
上記が接続設定によらない共通設定となります。 以降は選択したDestination Typeにより設定項目が異なります。
- Destination Typeが
HTTP Event Broker
の場合
- Tenant
- NECモバイルバックエンド基盤のテナント名またはテナントIDを指定します
- API Name
- NECモバイルバックエンド基盤のAPI Gatewayに登録されたAPI名を指定します。 デフォルトでは
device-phantom
が入力されています。必須項目です。 - App ID
- NECモバイルバックエンド基盤の指定したテナントに対応したアプリケーションIDを指定します。 必須項目です。
- App Key
- NECモバイルバックエンド基盤の指定したテナントに対応したアプリケーションキーを指定します。 必須項目です。ルートKeyは記入しないように注意してください。
- Use Password Authentication
- パスワード認証を用いて認証する場合にチェックを入れてください。 チェックをした場合に認証用情報の入力項目が表示されます。
- Username
- パスワード認証用のユーザ名を指定します。 パスワード認証をする場合、E-mailかいずれかの入力が必要となります。
- パスワード認証用のユーザのE-mailアドレスを指定します。 パスワード認証をする場合、Usernameかいずれかの入力が必要となります。
- Password
- パスワード認証用のパスワードを指定します。 パスワード認証をする場合、必須項目となります。
- Advanced HTTP Settings
- HTTP接続に関する高度な設定項目をする場合にチェックをします。
- Enable socket keepalive
- チェックすると、ソケットのキープアライブを有効にします。 Advanced Settingsをチェックした場合のみ表示されます。
- Keepalive Delay
- 最後にソケットを使用してからキープアライブ実行するまでの時間をミリ秒で指定します。既定値は0(実行環境の設定に従う)です。 Advanced SettingsとEnable socket keepaliveをチェックした場合のみ表示されます。
- Max Connections
- この接続設定で同時に生成可能なコネクション数を指定します。 デフォルトでは128が入力されます。 -1を入力するとコネクション数が無制限になります。 Advanced Settingsをチェックした場合のみ表示されます。
- Request Timeout
- リクエストのタイムアウト時間をミリ秒で指定します。 デフォルトでは60000が入力されます。0より小さい値を入力しても無視をされます。 Advanced Settingsをチェックした場合のみ表示されます。
- Request Interval
- 接続先にHTTPでポーリングをする際、HTTPリクエスト成功時に次のリクエストまでの間隔をミリ秒で指定します。 eep inから参照された場合に使用されます。既定値は10です。0以下の数値が入力された場合、タイムアウトしません。 Advanced Settingsをチェックした場合のみ表示されます。
- Timeout Interval
- 接続先にHTTPでポーリングをする際、HTTPリクエストのタイムアウト発生時の次のリクエストまでの間隔をミリ秒で指定します。 eep inから参照された場合に使用されます。既定値は100です。0以下の数値も入力できますが、0として扱われます。 Advanced Settingsをチェックした場合のみ表示されます。
- Error Interval
- 接続先にHTTPでポーリングをする際、HTTPリクエストのエラー発生時の次のリクエストまでの間隔をミリ秒で指定します。 eep inから参照された場合に使用されます。既定値は1000です。0以下の数値も入力できますが、0として扱われます。 Advanced Settingsをチェックした場合のみ表示されます。
- Use proxy server
- チェックすると、プロキシサーバの設定が有効になります。
- Proxy Server
- プロキシサーバの設定を追加・選択します。User prosy serverにチェックを入れた場合、必須項目です。
- Change Base Path
- Nebula API Gatewayにリクエストする際の基準パスを標準的な
/api/
から変更する際にチェックをします。 Nebula API Gatewayの前段にリバースプロキシを設定し、サブパスでNebula API Gatewayと 他のサービスを分けている場合などに使用することができます。 - Base Path
- Nebula API Gatewayにリクエストする際にhttp(s)://hostname:port{BasePath}{APIVersion}/... の{BasePath}に入る値を入力します。デフォルトは
/api/
となります。
- Destination Typeが
MQTT Event Broker
の場合
- Username
- パスワード認証を行う場合にユーザ名を入力します
- Password
- パスワード認証を行う場合にパスワードを入力します
- Timeout
- MQTTクライアントのconnect実行時のタイムアウト時間を設定します。必須項目です。 デフォルトは30000です。
- Publish QoS
- MQTTクライアントがパブリッシュするときのQoSを指定します。 0,1,2のいずれかから選択が可能です。デフォルトは1です。
- Subscribe QoS
- MQTTクライアントがサブスクライブするときのQoSを指定します。 0,1,2のいずれかから選択が可能です。デフォルトは1です。
- Options
- MQTTクライアントのオプションを任意に入力できます。JSON形式でオプションを指定してください。
- Use SNI
- チェックした場合SNI接続を行います。 SSL/TLSが有効な時にのみ表示されます。 IoTコアサービスで払い出した環境に接続する場合にチェックは不要です。