Krypton を設定し、Inventory を使って Wi-Fi 経由でデバイスを登録します。
デバイスを登録する方法には、スマートカードリーダーを使用する方法と USB モデムを使用する方法の 2 通りあります。今回はスマートカードリーダーを使用します。 IoT SIM のサブスクリプションは、plan01s、plan01s - Low Data Volume、planP1、planX3 X3-5MB、plan-K2 K2-300MB である必要があります。
設定が完了すると、Wi-Fi 経由で Inventory のデバイス登録ができます。
ステップ 1: SORACOM Krypton を利用して SORACOM Inventory にデバイス登録を行う
Krypton を利用すると SORACOM と認証情報および設定情報を共有できます。 ここでは、SORACOM Inventory に対しての認証情報および設定情報の共有として Wi-Fi 経由でのデバイス登録を行います。
ステップ 1-1: SORACOM Krypton を有効化する
Krypton を有効化します。詳しくは、SORACOM Krypton を有効化する を参照してください。
Krypton に Amazon Cognito や AWS IoT の設定を追加しないでください
ここでは Krypton の有効化 (スイッチをクリックして「ON」にする) のみを行います。Amazon Cognito や AWS IoT の設定を追加しないでください。
ステップ 1-2: SORACOM Air メタデータサービスを有効化する
Krypton の動作確認用にメタデータサービスを有効化します。詳しくは、メタデータサービスを設定する を参照してください。
ステップ 1-3: Krypton (Go クライアント) で Inventory にデバイス登録を行う
デバイス登録が完了すると、Krypton の料金が発生します。詳しくは、SORACOM Krypton のご利用料金 を参照してください。
このセクションでは、Krypton CLI を利用して Inventory にデバイス登録を行います。 今回は Go 言語クライアント を利用します。
Krypton CLI (Go クライアント) は以下のどちらかの手順を実行しインストールしてください。
- ご利用中の PC 環境に合わせて リリースページ からファイルをダウンロードし パスの設定を行う
- Go 言語の環境がある場合
go install github.com/soracom/krypton-client-go/cmd/krypton-cli@latest
を実行しインストールする
Krypton CLI のインストールが完了すると以下のコマンドが実行できます。
$ krypton-cli -h
次にスマートカードリーダー、SIM カード、PC の接続性の確認を行います。 この時 PC をセルラー経由ではなく Wifi 等でインターネット接続しておきます。 SIM カードを装着したスマートカードリーダーと PC を接続し、以下のコマンドを実行します。
$ krypton-cli -operation getSubscriberMetadata
すると以下のようにセルラー経由ではなくても SIM のメタデータを取得することができました。
{
"imsi": "29505091xxxxxxx",
"msisdn": "42365xxxxxxx",
"ipAddress": "10.176.48.xxx",
"operatorId": "OP00xxxxxxxx",
"apn": "soracom.io",
"type": "s1.fast",
"groupId": "a40bb15c-f891-4dab-ba98-xxxxxxxxxxxx",
"createdAt": 1530863331946,
"lastModifiedAt": 1534490141382,
"expiredAt": null,
"registeredTime": 1533105977108,
"expiryAction": null,
"terminationEnabled": false,
"status": "active",
"tags": { "name": "keith" },
"sessionStatus": {
"lastUpdatedAt": 1534238915002,
"imei": null,
"location": null,
"ueIpAddress": null,
"dnsServers": null,
"online": false
},
"imeiLock": null,
"speedClass": "s1.fast",
"moduleType": "trio",
"plan": 1,
"iccid": "89423100xxxxxxxxxxx",
"serialNumber": "89423100xxxxxxxxxxx",
"subscription": "plan01s",
"createdTime": 1530863331946,
"expiryTime": null,
"lastModifiedTime": 1534490141382
}
Krypton 機能の確認ができました。
それでは Inventory にデバイス登録を行います。
以下の一行のコマンドでデバイス登録が完了します。ここで指定している -params '{"endpoint": "inventory_form_krypton"}'
は Inventory の Endpoint として登録されます。
json 形式で文字列を指定してください。
今回は "inventory_form_krypton"
という名前の endpoint を作成します。
$ krypton-cli -operation bootstrapInventoryDevice -params '{"endpoint": "inventory_form_krypton"}'
すると以下のように applicationKey
、pskId
、serverUri
が返却されます。
この値は後に Inventory (C クライアント) を利用する際に必要となります。
{"applicationKey":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=","pskId":"YYYYYYYYYYYYYYYYYYYYY","serverUri":"coaps://g.inventory.soracom.io:5684"}
コンソールに戻り サイドメニューの SORACOM Inventory の Device Management ページへ行くと WiFi 経由でデバイスが登録できていることが確認できます。
以上で Krypton (Go クライアント) でセルラー回線を使用せず Inventory にデバイス登録ができました。
ステップ 2: SORACOM Inventory を利用する
このセクションでは Krypton CLI で取得したデバイス ID および secretKey を利用して Inventory へ接続します。
ステップ 2-1: Inventory (C クライアント) を利用する
先ほど入手した ID と Key を使って Inventory (C クライアント) を利用していきます。 Inventory (C クライアント) のインストールは Getting Started: デバイス登録時に払い出された Key でデバイスを管理する | SORACOM Inventory をご確認ください。
Inventory (C クライアント) は以下のコマンドから接続することになります。 先ほどの krypton-cli の値と比較すると deviceId が pskId、secretKey が applicationKey となりますので適宜読み替えて設定してください。
$ lwm2mclient -n $(hostname) -i <deviceId> -s <secretKey> -h g.inventory.soracom.io -p 5684 -4 -c
また、applicationKey は base64 として返却されますが、Inventory (C クライアント) の secretKey としては HEXSTRING として指定する必要があります。 以下のコマンドで変換できます。
$ printf "<applicationKey>" | base64 -D | xxd -p
必要な項目がそろったので先ほどのコマンドから inventory へ接続できます。
$ lwm2mclient -n $(hostname) -i <deviceId> -s <secretKey> -h g.inventory.soracom.io -p 5684 -4 -c
以上で SORACOM Krypton を使用してセルラー回線を使用せず SORACOM Inventory にデバイス登録し、Inventory を利用できました。