Soracom

Users

ドキュメント
Home ドキュメント SORACOM Inventory Getting Started

デバイスを管理し情報を収集する

Inventory にデバイスを登録し、リモートでデバイスを管理します。ここでは、デバイスのデータの読み取り (Read) とデバイスに対するコマンド実行 (Execute) を行います。

操作を始める前に準備が必要です (クリックして確認してください)

(1) SORACOM Air for セルラーの IoT SIM と、IoT SIM が利用できるデバイス (OS:Linux) を準備すること

(2) デバイスが通信可能であること

(3) デバイスにアプリケーションをインストールできる権限があること

準備完了

ステップ 1:デバイスにエージェントをインストールする

Inventory は LwM2M をもとにデバイス管理機能を提供しています。LwM2M に対応したエージェントの実装用ライブラリとして代表的なものには、Eclipse WakaamaEclipse Leshan があり、これらを利用してエージェントを作成すると Inventory でデバイスを管理できます。

ここでは、ソラコムが参照実装として提供している以下のエージェントをインストールし、IoT SIM を利用してデバイスの登録を行います。

  • Eclipse Wakaama を利用して C 言語で実装した Linux 向けサンプルエージェント (C クライアント)
  • Eclipse Leshan を利用して Java で実装したサンプルエージェント (SORACOM Inventory Agent for Java)

デバイスの登録が完了するとデバイスに接続用の鍵が生成されます。以降はその鍵を使って Inventory と通信できるため、Wi-Fi や有線など IoT SIM 以外の通信を使用してデバイスを管理できます。

IoT SIM を利用せず Inventory を利用する場合は、デバイス登録時に払い出された Key でデバイスを管理する を参照してください。

上記のエージェント、および Eclipse Wakaama、Eclipse Leshan 等のライブラリの利用方法や実装については当社技術サポートの対象外です。実装に関する質問は受け付けできません。技術情報は各ライブラリの公式ドキュメントを参照してください。

Linux 向けサンプルエージェント (C クライアント)

ここでは Raspberry Pi 向けの Linux ディストリビューション Raspbian Jessie Lite (June 2017) を例に Linux 向けサンプルエージェント (C クライアント) の 2 種類のインストールの手順を解説します。どちらかを実施してください。他のディストリビューションではコマンドが異なる場合があります。

インストールとデバイスの登録

ビルド用のスクリプト build_wakaama.sh を用意しています。 当シェルをダウンロードし、ビルドを実行します。以下のコマンドを実行してください。

IoT SIM で接続していることを確認してください。

 $ curl soracom-files.s3.amazonaws.com/build_wakaama.sh | bash
 $ sudo cp inventory/build/lwm2mclient /usr/local/bin

 $ lwm2mclient -n $(hostname) -b -h bootstrap.soracom.io -p 5683 -4 -c

当コマンドを実行すると bootstrap が実行され、SORACOM Inventory にデバイスが登録され、d-xxxxxxxxxxxxxxxxxxxxx という形式の SORACOM Inventory のデバイス ID が払い出されます。

なお、このとき利用した endpoint 名 (-n で指定したもの) もデバイスをユニークに識別する ID であり、同一の endpoint 名を使って別デバイスの bootstrap を実行すると、先に払い出された SORACOM Inventory のデバイスと同一デバイスとみなされてしまいますのでご注意ください。

ユーザーコンソールから「デバイス一覧」画面をリロードして確認してください。うまく登録できていない場合には、コマンドオプションやネットワークの接続状況を確認してください。

ソラコムのユーザーコンソールから SORACOM Inventory にデバイスを登録し、その際に払い出されたデバイス ID とシークレットキーを使用してデバイスを管理することも可能です。この場合、IoT SIM を使用してなくても接続が可能です。 詳細は、デバイス登録時に払い出された Key でデバイスを管理する をご確認ください。

コマンドオプションの詳細は wakaama README を参照してください。

サンプルエージェント (SORACOM Inventory Agent for Java)

ここでは Raspberry Pi 向けの Linux ディストリビューション Raspbian Jessie Lite (June 2017) を例に SORACOM Inventory Agent for Java のインストールからデバイス登録の手順を解説します。他のディストリビューションではコマンドが異なる場合があります。

ビルド済みのサンプルエージェントは、「デバイスの登録」「日付などのデータの Read」「コマンド (ping/shutdown) の実行」のみが実装されたものになります。また配布するソースコードのサンプルエージェントをベースに各デバイス向けに実装を増やすことで、デバイスに合わせた拡張が可能です。

ビルド済みエージェントのインストール

SORACOM Inventory Agent for Java では、soracom-inventory-agent-example-xxx.zip (xxx はバージョン番号) が、エージェント用のビルド済みファイルとなります。エージェントを動作させるために、まずはデバイスに Java (JRE7 以上) をインストールします。既に Java がインストール済みであれば、version 7 以上であることを確認してください。

$ sudo apt-get install oracle-java8-jdk
$ java -version

SORACOM Inventory agent for Java から soracom-inventory-agent-example-xxx.zip (xxx はバージョン番号) をダウンロードしてください。

続いて、ビルド済みエージェントの zip ファイルを適当なディレクトリで展開すればインストール完了です。

デバイスの登録 (bootstrap)

インストールが完了したら、続いてデバイスの登録 (bootstrap) を行います。まず、Raspberry Pi を IoT SIM でネットワーク接続します。

次に下記のコマンドを実行し、bootstrap を実行します。

$ cd ~/soracom-inventory-agent-example-x.x.x/bin/
$ ./soracom-inventory-agent-example-start

デバイス登録時のエンドポイント名は、自動設定されます。

bootstrap が完了すると、ログ中の 2017-06-28 11:15:31,270 INFO SORACOMInventoryAgentExample - using endpoint [My-Device.local-ACDE99999999] のように出力されているエンドポイント名でデバイスがコンソールに表示されます。

また、エージェントと同じ場所に .soracom-inventory-jce というファイルが作成されます。bootstrap 以降はこのファイルを使って bootstrap なしで SORACOM Inventory と通信できるため、wifi など SIM 以外経由でも通信を行うことができます。再度ブートストラップしたい場合は、このファイルを消して再度実行するか、実行時に -b オプションを付けてください。

サンプル実装の拡張については、カスタムオブジェクトを定義して、エージェントをカスタマイズする、および SORACOM Inventory Agent for Java を参照してください。

ステップ 2: デバイスを管理する

デバイス情報の参照

エージェントの bootstrap が完了したら、ユーザーコンソール左上のメニューボタンから「デバイス管理」をクリックし、デバイス一覧画面に移動します。

登録済みデバイス一覧の中にステップ 2 で登録したデバイスが表示されていることを確認してください。一覧からデバイスをクリックするとデバイス詳細画面が表示されます。Inventory では、このページを使ってリモート管理を行います。

device detail device detail

デバイス上のデータの Observe

bootstrap が完了し、ユーザーコンソールでデバイスの登録完了が確認できたら、リモートでデバイスのデータを取得してみましょう。例として、ここではデバイス上の現在時刻を Observe してデバイス上のデバイス側で値に変化があったら通知を受けてみます。以下の手順に沿って Observe の動作確認をしてみましょう。

  • デバイス上でエージェントが起動していることを確認します。
  • ユーザーコンソールの Inventory の画面から、先ほど登録したデバイスの詳細ページを開きます。
  • ページ中ほどの Current Time (/3/0/13) の項目右側にあるアイコン Observe icon をクリックすると、Observe が開始されます。
  • 画面上にデバイス上の時刻が表示されます。表示内容が更新されることを確認してください。
  • Observe でデータ読み取りできることを確認したら、もう一度アイコン Observe icon をクリックして Observe を停止してください。

Inventory では、月に 1 回でもオンラインになったデバイスの数 (メッセージが送られたデバイス)、またはデバイス登録/Read/Write/Observe/Execute のメッセージ数に応じて料金が発生します。Observe を継続したままだとメッセージ数が多くなりますのでご注意ください。

ステップ 3: デバイスの情報を SORACOM Harvest に収集する

Inventory では、デバイス側で値に変化があった場合の通知 (Observe) を SORACOM アプリケーションサービスと連携できます。たとえば、電波強度を Observe しておき、SORACOM Harvest に送ることで電波強度の推移を確認できます。 また、SORACOM Beam、SORACOM Funnel を使用することで、お客様のサーバーやクラウドサービスにデータを送信することが可能です。

ここでは、LatitudeLongitude を Observe して Harvest にデータを収集します。 SORACOM Inventory Agent for Java のサンプルでは、定期的に LatitudeLongitude の値をインクリメントしています。

デバイスのグループ設定

SORACOM Harvest Data の設定はグループに対して行います

ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。

  1. デバイスグループの SORACOM Harvest Data を設定します。

    SORACOM Harvest Data の設定について詳しくは、Harvest Data を有効化する を参照してください。

    device detail device detail

  2. デバイスが所属するグループを切り替えます。

    デバイスの Harvest Data の設定が完了しました。

デバイス情報の Observe

デバイスを Observe します。 対象のデバイスを選択して、[詳細] をクリックします。

LatitudeLongitude を Observe します。

device detail device detail

データの確認

Harvest でデータを確認します。

デバイス一覧から対象のデバイスを選択して、[操作]->[データを確認]をクリックします。 以下のようにデータを確認できます。

device detail device detail

「SORACOM Inventory を使用してデバイスを管理し情報を収集する」は以上です。

Inventory を使用することで、デバイスの情報を読み書き、実行することが可能です。また Observe した属性は、SORACOM アプリケーションサービスを使用して、クラウド連携や Harvest にデータを蓄積できます。これにより、デバイスの状態の履歴を確認できます。

なお、デバイス側にはクライアントエージェントが必要です。クライアントエージェントはサンプルとして提供しています。これらを実装することで利用にあったデバイス管理が可能になります。