デバイス ID とデバイスシークレットを使用して Harvest にデータを送信する
SORACOM Inventory のデバイスでは、デバイス登録時に払い出されるデバイス ID とデバイスシークレットを使用した HTTP リクエストで Harvest Data にデータを送信できます。 SORACOM Air やデバイスエージェントを使用することなく Harvest Data にデータを蓄積し、可視化できます。
ここでは、デバイス登録時に払い出された Key を使用して、IoT SIM を使用することなく SORACOM Harvest Data にデータを送信します。
ステップ 1: デバイスを登録する
デバイスを登録すると、デバイス登録費用が発生します。なお、Inventory には無料枠があります。詳しくは、SORACOM Inventory のご利用料金 を参照してください。
ユーザーコンソールの
→ → の順にクリックして、 をクリックします。
デバイス名とグループを設定します。
グループがない場合は、グループを作成 します。
デバイスを作成するとデバイス ID とシークレットキーが生成されます。必ずメモしてください。
ステップ 2: グループの設定
次に「ステップ 1: デバイスを登録する」で作成したグループで Harvest Data を有効化 します。
SORACOM Harvest Data の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
デバイスグループの SORACOM Harvest Data を設定します。
SORACOM Harvest Data の設定について詳しくは、Harvest Data を有効化する を参照してください。
ステップ 3: HTTP リクエストの実行
ステップ 1 で払い出された Key を使用して Inventory と接続します。
HTTP リクエストは GET、POST で送信できます。いずれも {"temp":20}
を送信しています。
当サンプルは日本カバレッジの Inventory の例です。グローバルカバレッジの Inventory をご利用の場合は、以下それぞれのコマンドに記載されている https://api.soracom.io
の箇所を https://g.api.soracom.io
に置き換えてください。
API リクエスト数の制限
https://api.soracom.io/v1/devices/<デバイスID>/publish
へのリクエストは呼び出し元の IP アドレス単位で 1 分間あたりの最大リクエスト数を定めています。リクエスト数の上限に達した場合は、HTTP レスポンスのステータスコードとして 429
(Too Many Requests) が返却されます。少し間をおいてから再度実行してください。POST
curl -X POST --header "x-device-secret: <シークレットキー>" -d "{\"temp\":20}" https://api.soracom.io/v1/devices/<デバイスID>/publish
GET
curl -X GET --header "x-device-secret: <シークレットキー>" "https://api.soracom.io/v1/devices/<デバイスID>/publish?temp=20"
GET
curl -X GET "https://api.soracom.io/v1/devices/<デバイスID>/publish?device_secret=<シークレットキー(URL encode)>&temp=20"
シークレットキーをクエリパラメータで指定する場合は、URL エンコーディングが必要となります。
Harvest データの確認
HTTP リクエストしたデータは、以下のように確認できます。 デバイスを選択し、「操作」→「データを確認」をクリックします。
以下のように送信データを確認できます。