Soracom

Users

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

Inventory デバイスから SORACOM Harvest Data にデータを送信する

Inventory デバイスで、SORACOM Air (IoT SIM など) やエージェントを使用することなく Harvest Data にデータを送信し、可視化できます。エージェントを使用しない場合は、Inventory にデバイスを登録したときに払い出されるデバイス ID とデバイスシークレットを使用して、HTTP リクエストで Harvest Data にデータを送信します。

エージェントを使用して、デバイスで値が変化したときに Harvest Data にデータを送信する方法は、デバイスを管理し情報を収集する を参照してください。

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

(1) デバイス (OS:Linux) が準備されていること

(2) デバイスがインターネットに接続できること

準備完了

ステップ 1: Inventory にデバイスを登録する

Inventory にデバイスを登録します。このデバイスを、Inventory デバイスと呼びます。

Inventory にデバイスを登録すると、デバイス登録費用が発生します。なお、Inventory には無料枠があります。詳しくは、SORACOM Inventory のご利用料金 を参照してください。

  1. ユーザーコンソール にログインして、データを送信する Harvest Data のカバレッジタイプを選択します。

    たとえば、グローバルカバレッジの Harvest Data にデータを送信する場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][SORACOM INVENTORY][デバイス管理] の順にクリックします。

  3. [+デバイスを追加] をクリックします。

  4. 以下の項目を設定します。

    項目説明
    [名前]デバイスの名前を入力します。
    [グループ]Inventory デバイスが所属するグループ (Inventory グループ) を選択します。「新しいグループを作成」を選択すると、Inventory グループを作成 できます。

  5. [作成] をクリックします。

    Inventory デバイスが作成され、デバイス ID、デバイスキー ID、シークレットキーが表示されます。必ずメモしてください。

  6. [閉じる] をクリックします。

ステップ 2: グループを設定する

ステップ 1: Inventory にデバイスを登録する で選択した Inventory グループで、Harvest Data を有効化します。詳しくは、SORACOM Harvest Data を有効化する を参照してください。

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

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

ステップ 3: Harvest Data にデータを送信する

ステップ 1: Inventory にデバイスを登録する でメモしたデバイス ID (${device_id}) およびシークレットキー (${secret_key}) を指定して、Harvest Data にデータを送信します。

以下のサンプルはグローバルカバレッジの例です

以下のサンプルはグローバルカバレッジの Inventory を利用して、Harvest Data にデータを送信する例です。日本カバレッジの Inventory を利用して、Harvest Data にデータを送信する場合は、以下のコマンドに記載されている https://g.api.soracom.iohttps://api.soracom.io に読み替えてください。

以下のいずれかの方法で Harvest Data に送信できます。

  • Harvest Data にリクエストボディで JSON を送信する例:

    POST リクエストで送信します。シークレットはヘッダーに指定します。

    $ curl -X POST https://g.api.soracom.io/v1/devices/${device_id}/publish \
    -H "x-device-secret: ${secret_key}" \
    -d '{
      "temperature": 20
    }' 
    
  • Harvest Data にクエリパラメータでデータを送信する例 (1):

    GET リクエストで送信します。シークレットキーは、ヘッダーに指定します。データは、URL エンコーディングして、クエリパラメータに指定します。

    $ curl -X GET "https://g.api.soracom.io/v1/devices/${device_id}/publish?temperature=21" \
    -H "x-device-secret: ${secret_key}"
    
  • Harvest Data にクエリパラメータでデータを送信する例 (2):

    GET リクエストで送信します。シークレットキーとデータは、URL エンコーディングして、クエリパラメータに指定します。

    $ url_encoded_secret_key=$(python3 -c "import sys, urllib.parse; print(urllib.parse.quote_plus('${secret_key}'))")
    $ curl -X GET "https://g.api.soracom.io/v1/devices/${device_id}/publish?device_secret=${url_encoded_secret_key}&temperature=22"
    
  • 以下のレスポンスが返されたときは、Inventory デバイスに設定した Inventory グループで Harvest Data が有効化されていることを確認してください。

    {"code":"DEM0005","message":"Device d-3j21u474egfo3diktgp is not configured to use application endpoint"}
    
  • 以下のレスポンスが返されたときは、指定したカバレッジタイプに指定した Inventory デバイスが存在することを確認してください。

    {"code":"DIC0000","message":"No such resource found"}
    
API リクエスト数の制限

https://g.api.soracom.io/v1/devices/${device_id}/publish へのリクエストは、呼び出し元の IP アドレス単位で 1 分間あたりの最大リクエスト数が定められています。リクエスト数の上限に達した場合は、HTTP レスポンスのステータスコード 429 (Too Many Requests) が返されます。少し時間をあけて再度実行してください。

GET リクエストで送信した場合のデータ形式について

GET リクエストで送信した場合は、文字列で保存されます。数値形式など、任意のデータ形式で送信するには、POST リクエストを利用してください。

Harvest Data のデータを確認する

  1. ユーザーコンソール にログインし、データを送信した Inventory デバイスにあわせてカバレッジタイプを変更します。

    たとえば、グローバルカバレッジの Inventory デバイスでデータを送信した場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][SORACOM INVENTORY][デバイス管理] の順にクリックします。

    デバイス管理画面が表示されます。

  3. データを送信した Inventory デバイスにチェックを入れ、[操作][データを確認] の順にクリックします。

    SORACOM Harvest Data 画面が表示されます。SORACOM Harvest Data 画面の操作については、SORACOM Harvest Data に保存したデータを確認 / 削除する を参照してください。