ステップ 1: IoT Connect Gateway を設定する
ここでは、パソコンのブラウザ上で「Swagger」を利用してAPIコマンドを利用する場合を例としてご説 明します。Arcstar Universal OneモバイルSIMを利用しての通信となります。
1. Swagger にアクセスする
○ Swagger URL: https://api.icgw.ntt.com/api/index.html
2. 認証 Token を作成する
○ [POST] /api/v1/users/credentials を開く
○ [Try it out] を押す
○ Request body欄に以下を追加
{ "userName": "お客様のユーザ名", "password": "お客様のパスワード"
}
○ [Execute] を押すとtokenが作成される
※curlで送信したいユーザは、 [Execute] 押下後curl欄に表示されるコマンドをご使用くだ さい。
3. 作成した Token を使用し、 Authorize を実施する
○ [Authorize] を押す
○ Value欄に「Bearer(半角スペース)」を入力して2で作成したtokenを貼り付け、
[Authorize] を押す
以降、Swagger上でAPIを送信するとtoken情報が付与される
プロトコル変換設定( MQTT/Things IoT の場合)
上記のAuthorizeを実施したあと、下記手順をSwagger上で実施して設定を行います。
(設定を実施する際にはToken情報が付加されている必要があります。)
1. SIM に Things Cloud の MQTT Client ID を登録する
○ [PUT] /api/v1/sims/{imsi} を開き、[Try it out] を押す
○ [imsi] に使用しているSIMのimsiを入力する
○ Request body欄に以下を追加し、 [Execute] を押す
*は必須項目
項目 説明
mqttClientId * Things CloudのMQTT Client ID
Request例:
{ "mqttClientId": "mqtt-explorer-4f0ca284"
}
更新が成功する場合、レスポンスコード200 OKが返されます。
2. 新規グループを作成し、 SIM をグループへ追加する
○ [POST] /api/v1/groups を開き、 [Try it out] を押す
○ Request body欄に以下を追加し、 [Execute] を押す
*は必須項目
項目 説明
name * 任意のグループ名
sims * 本グループに追加するSIMのIMSI番号
Request例:
{ "name": "グループ1",
"sims": [ "44010123456789"]
}
Response例:
{ "id": "5fd19167c653f932439cc9ca", "name": "グループ1",
"userId": "5fd19166c653f932439cc9c9", "sims": ["44010123456789"],
"protocolConversion": []
}
→ 作成したグループの ”id” を取得
3. Things IoT の認証情報を作成する
○ [POST] /api/v1/authentications/{type} を開き、 [Try it out] を押す
○ [type] に以下を入力
項目 説明
type things-iot-credentials
○ Request body欄に以下を追加し、 [Execute] を押す
*は必須項目
項目 説明
name 任意の認証情報名
description 任意の設定概要
userName * Things CloudのユーザーID
password * Things Cloudのパスワード tenantId * Things CloudのテナントID
tenantIDはこちらから確認可能です。
Request例:
{ "name": "Things IoT Auth", "description": "testing",
"userName": "tc000.je1.thingscloud.ntt.com", "password": "password",
"tenantId": "t11111111"
}
Response例:
{ "description": "testing",
"userName": "tc000.je1.thingscloud.ntt.com", "password": "password",
"tenantId": "t11111111",
"id": "7a1dc7ad-f395-498a-9d84-a3916449d4a9", "name": "Things IoT Auth",
"type": "things-iot-credentials"
}
→ 作成した認証情報の “id” を取得
4. グループに対してプロトコル変換設定を追加する
○ [POST] /api/v1/groups/{groupId}/event/{serviceType} を開き、 [Try it out] を押す
○ groupId、serviceTypeに以下を入力
項目 説明
groupId 「1. 新規グループを作成し、SIMをグループへ追加す
る」で取得したGroup ID
pconvType mqtt
serviceType things-iot
○ Examplesプルダウンで「Things IoT」を選択し、
Request body欄に以下を追加し [Execute] を押す
*は必須項目
項目 説明
name * 任意のプロトコル変換設定名
enabled trueまたはfalse(デフォルト:true)
プロトコル変換設定を有効化する場合はtrueを設定する
path * 本GWの送信先パスとして任意に設定可能。
serviceType * things-iot
authenticationId * 「2. Things IoTの認証情報を作成する」で取得した Authentication ID
host * Things Cloudのホスト名
template * 使用するTemplate番号
topicImsi trueまたはfalse(デフォルト:true)
接続した端末のIMSI情報を送信する場合はtrueを設定す る(※1)
topicImei trueまたはfalse(デフォルト:false)
接続した端末のIMEI情報を送信する場合はtrueを設定す る
(※1)
■ (※1)追加メタデータをONにしているグループの CONNECTパケットを送信時
に同時にInventory Template(デバイスのモバイルプロパティ/111)にメタデータ情
報を入れて送信する。
Request例:
{ "name": "Things IoT MQTT", "enabled": true,
"destination": {
"serviceType": "things-iot",
"authenticationId": "ece20936-6928-4baa-9110- e458f9717657",
"host": "tc000.je1.thingscloud.ntt.com", "template": "301"
},
"options": {
"topicImsi": true, "topicImei": true }
}
Response例:
{ "destination": {
"serviceType": "things-iot",
"authenticationId": "ece20936-6928-4baa-9110- e458f9717657",
"host": "tc000.je1.thingscloud.ntt.com", "template": "301"
},
"options": {
"topicImsi": true, "topicImei": true },
"id": "b1b8e993-023c-459f-ac27-9086634a7716", "type": "mqtt",
"name": "Things IoT MQTT", "enabled": true
}
ステップ 2: IoT Connect Gateway を使用して Things IoT にデータを送信する
1. Things Cloud でデバイスを登録
Things Cloudに送信するには、デバイスを登録しなければなりません。すでに登録した場合はステ
ップ2に進んでください。
1. デバイスを登録するには、Things CloudのREST APIを利用します。以下のCURLコマン ドでデバイスを登録してください:
# curl -v -u <Things CloudのUsername>:<Things Cloudのパスワード
> \
-H 'Accept:
application/vnd.com.nsn.cumulocity.managedobject+json;
charset=UTF-8; ver=0.9' \ -H 'Content-type:
application/vnd.com.nsn.cumulocity.managedobject+json;
charset=UTF-8; ver=0.9' \ -X POST \
-d '{"c8y_IsDevice":{},"name":"<MQTT Client ID>"}' \ http://<Things Cloudのtenant-
ID>.je1.thingscloud.ntt.com/inventory/managedObjects
例:
# curl -v -u tc000.je1.thingscloud.ntt.com:password \ -H 'Accept:
application/vnd.com.nsn.cumulocity.managedobject+json;
charset=UTF-8; ver=0.9' \ -H 'Content-type:
application/vnd.com.nsn.cumulocity.managedobject+json;
charset=UTF-8; ver=0.9' \ -X POST \
-d '{"c8y_IsDevice":{},"name":"mqtt-explorer-4f0ca284"}' \ http://t11111111.je1.thingscloud.ntt.com/inventory/managedObjec ts
2. 成功するとThings Cloudは以下のレスポンスを返します。
{ "additionParents": { "self":
"https://t11111111.je1.thingscloud.ntt.com/inventory/managedObj ects/556236/additionParents",
"references": []
},
"owner": "tc000.je1.thingscloud.ntt.com", "childDevices": {
"self":
"https://t11111111.je1.thingscloud.ntt.com/inventory/managedObj ects/556236/childDevices",
"references": []
},
"childAssets": { "self":
"https://t11111111.je1.thingscloud.ntt.com/inventory/managedObj ects/556236/childAssets",
"references": []
},
"creationTime": "2021-08-19T12:11:43.261+09:00", "lastUpdated": "2021-08-19T12:11:43.261+09:00", "childAdditions": {
"self":
"https://t11111111.je1.thingscloud.ntt.com/inventory/managedObj ects/556236/childAdditions",
"references": []
},
"name": "mqtt-explorer-4f0ca284", "assetParents": {
"self":
"https://t11111111.je1.thingscloud.ntt.com/inventory/managedObj ects/556236/assetParents",
"references": []
},
"deviceParents": { "self":
"https://t11111111.je1.thingscloud.ntt.comm/inventory/managedOb jects/556236/deviceParents",
"references": []
}, "self":
"https://t11111111.je1.thingscloud.ntt.com/inventory/managedObj ects/556236",
"id": "556236", "c8y_IsDevice": {}
}
デバイス登録の詳しい情報は、こちらを参考してください:
https://developer.ntt.com/iot/docs/device-sdk/rest/
2. デバイスの準備
当ガイドでは、Mosquittoのクライアントを利用します。Raspbianであれば、下記コマンドでイン ストール可能です。
※当ガイドでは、Mosquitto v1を使用
sudo apt-get install mosquitto-clients
3. デバイスからデータを送信する
○ デバイスからのデータは、以下のトピックに送信する i. s/us
○ 送信先:an1.icgw.ntt.com 送信例:
pi@raspberrypi:~ $ mosquitto_pub -d -h an1.icgw.ntt.com -q 1 -t
"s/us" -m 'gpio_critical,Test Alarm Hello World!!! 123456' -i
"myDevice"
Client myDevice sending CONNECT Client myDevice received CONNACK (0)
Client myDevice sending PUBLISH (d0, q1, r0, m1, 's/us', ... (46 bytes))
Client myDevice received PUBACK (Mid: 100, RC:0) Client myDevice received PUBACK (Mid: 1, RC:0) Client myDevice sending DISCONNECT
4. Things Cloud で送信を確認する
○ Things Cloudにログインし、[デバイス]→[すべてのデバイス]を選択し、右のデバイスリス トから先ほど登録したデバイスを選択してください。
○ 情報画面の[発生中のクリティカルアラーム]では、送信されたアラームメッセージを確認で
きます(Template 301はアラーム送信の場合)。
○ 「4.グループに対してプロトコル変換設定を追加する」でIMSI、IMEI、MSISDNを付加し た場合、こちらに表示されます。