ステップ 1: IoT Connect Gateway を設定する

14
ステップ 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 欄に以下を追加

Transcript of ステップ 1: IoT Connect Gateway を設定する

Page 1: ステップ 1: IoT Connect Gateway を設定する

ステップ 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 欄に以下を追加

Page 2: ステップ 1: IoT Connect Gateway を設定する

{ "userName": "お客様のユーザ名", "password": "お客様のパスワード" }

○ [Execute] を押すと token が作成される

※curl で送信したいユーザは、 [Execute] 押下後 curl 欄に表示されるコマンドをご使用くだ

さい。

Page 3: ステップ 1: IoT Connect Gateway を設定する

3. 作成した Token を使用し、Authorize を実施する

○ [Authorize] を押す

○ Value 欄に「Bearer(半角スペース)」を入力して 2 で作成した token を貼り付け、 [Authorize] を押す

以降、Swagger 上で API を送信すると token 情報が付与される

Page 4: ステップ 1: IoT Connect Gateway を設定する

プロトコル変換設定(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 が返されます。

Page 5: ステップ 1: IoT Connect Gateway を設定する

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” を取得

Page 6: ステップ 1: IoT Connect Gateway を設定する

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

Page 7: ステップ 1: IoT Connect Gateway を設定する

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” を取得

Page 8: ステップ 1: IoT Connect Gateway を設定する

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] を押す

Page 9: ステップ 1: IoT Connect Gateway を設定する

*は必須項目

項目 説明

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",

Page 10: ステップ 1: IoT Connect Gateway を設定する

"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 }

Page 11: ステップ 1: IoT Connect Gateway を設定する

ステップ 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/managedObjects

2. 成功すると Things Cloud は以下のレスポンスを返します。

{ "additionParents": { "self": "https://t11111111.je1.thingscloud.ntt.com/inventory/managedObjects/556236/additionParents", "references": [] }, "owner": "tc000.je1.thingscloud.ntt.com", "childDevices": { "self": "https://t11111111.je1.thingscloud.ntt.com/inventory/managedObjects/556236/childDevices",

Page 12: ステップ 1: IoT Connect Gateway を設定する

"references": [] }, "childAssets": { "self": "https://t11111111.je1.thingscloud.ntt.com/inventory/managedObjects/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/managedObjects/556236/childAdditions", "references": [] }, "name": "mqtt-explorer-4f0ca284", "assetParents": { "self": "https://t11111111.je1.thingscloud.ntt.com/inventory/managedObjects/556236/assetParents", "references": [] }, "deviceParents": { "self": "https://t11111111.je1.thingscloud.ntt.comm/inventory/managedObjects/556236/deviceParents", "references": [] }, "self": "https://t11111111.je1.thingscloud.ntt.com/inventory/managedObjects/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

Page 13: ステップ 1: IoT Connect Gateway を設定する

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 を付加し

た場合、こちらに表示されます。

Page 14: ステップ 1: IoT Connect Gateway を設定する