• 検索結果がありません。

ステップ 1: IoT Connect Gateway を設定する ここでは パソコンのブラウザ上で Swagger を利用して API コマンドを利用する場合を例としてご説 明します Arcstar Universal One モバイル SIM を利用しての通信となります 1. Swagger に

N/A
N/A
Protected

Academic year: 2022

シェア "ステップ 1: IoT Connect Gateway を設定する ここでは パソコンのブラウザ上で Swagger を利用して API コマンドを利用する場合を例としてご説 明します Arcstar Universal One モバイル SIM を利用しての通信となります 1. Swagger に"

Copied!
17
0
0

読み込み中.... (全文を見る)

全文

(1)

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

(2)

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

}

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

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

(3)

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

○ [Authorize] を押す

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

[Authorize] を押す

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

(4)

プロトコル変換設定( HTTP/Things IoT の場合)

上記のAuthorizeを実施したあと、下記手順をSwagger上で実施して設定を行います。

(設定を実施する際にはToken情報が付加されている必要があります。)

1. SIM に Things Cloud の System ID を登録する

○ [PUT] /api/v1/sims/{imsi} を開き、[Try it out] を押す

○ [imsi] に使用しているSIMのimsiを入力する

○ Request body欄に以下を追加し、 [Execute] を押す

*は必須項目

項目 説明

systemId * Things CloudのSystem ID

Request例:

{ "systemId": "400"

}

更新が成功する場合、レスポンスコード200 OKが返されます。

System IDの確認方法は、Things Cloudのポータルにログインし、左のメニューから [デバ

イス] > [すべてのデバイス] を選択し、デバイスの [システムID] 列から取得できます:

(5)

2. 新規グループを作成し、 SIM をグループへ追加する

○ [POST] /api/v1/groups を開き、 [Try it out] を押す

○ Request body欄に以下を追加し、 [Execute] を押す

*は必須項目

項目 説明

name * 任意のグループ名

sims * 本グループに追加するSIMのIMSI番号

Request例:

(6)

{ "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] に以下を入力

(7)

項目 説明

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"

}

(8)

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

(9)

pconvType http serviceType things-iot

○ Examplesプルダウンで「Things IoT」を選択し、

Request body欄に以下を追加し [Execute] を押す

*は必須項目

項目 説明

name * 任意のプロトコル変換設定名

enabled trueまたはfalse(デフォルト:true)

プロトコル変換設定を有効化する場合はtrueを設定する entrypoint

path * 本GWの送信先パスとして任意に設定可能。

● グループ内で一意の値(送信先パスを変更すれば 一つのグループで複数のHTTP設定を設定可 能)。

● 任意の値を設定しない場合も「/」のみ入力する必 要あり。

● *(ワイルドカード)を使用することにより任意の 文字列を指定することも可能。(*の使用は1つの み可)

destination

serviceType * things-iot

authenticationId * 「2. Things IoTの認証情報を作成する」で取得した

(10)

Authentication ID

host * 転送先(Things Cloud)のホスト名

path 転送先(Things Cloud)のパス

● 現在IoT Connect Gatewayでサポートしているの はThings Cloud APIのうち以下3つのAPIのpath になります。

○ /inventory/managedObjects/<<systemID>>

(※1)

○ /event/events

○ /measurement/measurements

● 本項目をnullとした場合、entrypoint pathで指定 したpathにマッチした(デバイスの)値を destination pathとして使用します。(※2) headers

appendImsi trueまたはfalse(デフォルト:true)

「c8y_Mobile」フラグメントに接続した端末のIMSI情報

を追加する場合はtrueを設定する(※3) appendImei trueまたはfalse(デフォルト:false)

「c8y_Mobile」フラグメントに接続した端末のIMEI情報

を追加する場合はtrueを設定する(※3) appendMsisdn trueまたはfalse(デフォルト:true)

「c8y_Mobile」フラグメントに接続した端末のMSISDN

を追加する場合はtrueを設定する(※3) enabled

(customHeaders) Trueまたはfalse(デフォルト:false)

任意のカスタムヘッダを編集(追加、置換、削除)する場 合はtrueを設定する

action 次のいずれか:

add: カスタムヘッダを追加

replace: カスタムヘッダを置換

remove: カスタムヘッダを削除

headerName カスタムヘッダ名

小文字のみ使用可能

headerValue カスタムヘッダの値

actionがremoveの時は設定不可

■ (※1)「/inventory/managedObjects/$tc_systemid」と設定すると「1.SIMに Things CloudのSystem IDを登録する」でSIM情報に設定したSystemIDを

<$tc_systemid>の部分に付与してThings Cloudに送信します。

■ (※2)例えば、entrypoint pathでは「/inventory/managedObjects/*」が登録され、

デバイスが「https://{GWのドメイン}/inventory/managedObjects/xxx」に送信した場 合、destination pathは自動的に「/inventory/managedObjects/xxx」に設定されま す。

■ (※3)「c8y_Mobile」フラグメントについてはThings Cloud HPを参照

■ (※3)ヘッダの設定が有効化されているが、データが存在しない場合、データの値

(11)

をNAとする。

Request例:

{ "enabled": true,

"name": "Things IoT HTTP", "entrypoint": {

"path": "/things-iot"

},

"destination": {

"host": "tc000.je1.thingscloud.ntt.com", "path": "/measurement/measurements", "serviceType": "things-iot",

"authenticationId": "ece20936-6928-4baa-9110- e458f9717657"

},

"headers":{

"appendImsi": true, "appendImei": false, "appendMsisdn": true, "customHeaders": [ {

"enabled": true, "action": "add",

"headerName": "accept", "headerValue":

"application/vnd.com.nsn.cumulocity.measurement+json"

}, {

"enabled": true, "action": "add",

"headerName": "content-type", "headerValue":

"application/vnd.com.nsn.cumulocity.measurement+json"

} ] } }

Response例:

{ "entrypoint": {

"path": "/things-iot"

},

"destination": {

"host": "tc000.je1.thingscloud.ntt.com", "path": "/measurement/measurements", "serviceType": "things-iot",

"authenticationId": "ece20936-6928-4baa-9110- e458f9717657"

},

"headers":{

"appendImsi": true, "appendImei": false, "appendMsisdn": true, "customHeaders": [

(12)

{

"enabled": true, "action": "add",

"headerName": "accept", "headerValue":

"application/vnd.com.nsn.cumulocity.measurement+json"

}, {

"enabled": true, "action": "add",

"headerName": "content-type", "headerValue":

"application/vnd.com.nsn.cumulocity.measurement+json"

} ] },

"id": "b1b8e993-023c-459f-ac27-9086634a7716", "type": "http",

"name": "Things IoT HTTP", "enabled": true

}

ステップ 2: IoT Connect Gateway を使用して Things IoT にデータを送信する

現在IoT Connect GatewayでサポートしているのはThings Cloud APIのうち以下3つのAPIになります。

接続方法の詳細はThings CloudHPを参照ください。

PUT <<url>>/inventory/managedObjects/<<deviceId>>

POST <<url>>/event/events

POST <<url>>/measurement/measurements

※各APIで必要なヘッダ情報は「4.グループに対してプロトコル変換設定を追加する」のカスタムヘッダ を使用して登録可能です。

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:

(13)

application/vnd.com.nsn.cumulocity.managedobject+json;

charset=UTF-8; ver=0.9' \ -X POST \

-d '{"c8y_IsDevice":{},"name":"<デバイスの名前>"}' \ 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":"http-device-001"}' \

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

(14)

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

}

レスポンスのIDパラメータは、作成されたデバイスのSystem IDです。

デバイス登録の詳しい情報は、こちらを参考してください:

https://developer.ntt.com/iot/docs/device-sdk/rest/

2. デバイスからデータを送信する

○ curlコマンドを用いて、デバイスからHTTPリクエストを送信

○ 送信先:http:// an1.icgw.ntt.com/{path}

送信例:

curl -X POST -i http://an1.icgw.ntt.com/things-iot -d

'{ "c8y_TemperatureMeasurement": { "T": { "value": 33, "unit":

"C" } }, "time": "2021-06-28T15:05:00.000+09:00", "source":

{ "id": "$tc_systemid" }, "type":

"c8y_TemperatureMeasurement" }'

※リクエスト内に”$tc_systemid"と指定すると「1.SIMにThings CloudのSystem IDを登 録する」でSIM情報に設定したSystemIDを<$tc_systemid>の部分に付与してThings

Cloudに送信します。

※同様に以下の値もリクエストに含めるとSIM情報で設定した情報に変換してThings

Cloudに送信します。

● $imsi

● $imei

● $msisdn

以下のようなレスポンスが返ってくる HTTP/1.1 200 OK

Content-Type: application/json Date: Mon, 28 Jun 2021 08:17:25 GMT Connection: keep-alive

Keep-Alive: timeout=5 Transfer-Encoding: chunked

{"statusCode":201,"body":{"result":"ok","detail":{"self":"https

(15)

://t11111111.je1.thingscloud.ntt.com/measurement/measurements/2 258","time":"2021-06-

28T15:05:00.000+09:00","id":"2258","source":{"self":"https://t1 1111111.je1.thingscloud.ntt.com/inventory/managedObjects/999","

id":"999"},"type":"c8y_TemperatureMeasurement","c8y_Temperature Measurement":{"T":{"unit":"C","value":33}}}}}

3. データを確認する

○ Things Cloudのポータルにログインし、左のメニューから [デバイス] > [すべてのデバイス] を選択

○ 送信したデバイスを選択

(16)

○ 送信したデータをご確認いただけます。(下記イメージはメジャーメントにPOSTした場 合)

○ 「4.グループに対してプロトコル変換設定を追加する」でIMSI、IMEI、MSISDNを付加し た場合、こちらに表示されます。

(17)

参照

関連したドキュメント

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

(※)Microsoft Edge については、2020 年 1 月 15 日以降に Microsoft 社が提供しているメジャーバージョンが 79 以降の Microsoft Edge を対象としています。2020 年 1

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

(7)

手動のレバーを押して津波がどのようにして起きるかを観察 することができます。シミュレーターの前には、 「地図で見る日本

※証明書のご利用は、証明書取得時に Windows ログオンを行っていた Windows アカウントでのみ 可能となります。それ以外の