デバイス ID とデバイスシークレットを使用して Harvest にデータを送信する
SORACOM Inventory では、デバイス登録時に払い出されるデバイス ID とデバイスシークレットを使用した HTTP リクエストで SORACOM Harvest 連携ができます。 SORACOM Air やデバイスエージェントを使用することなく Harvest にデータを蓄積し、可視化できます。
はじめに
当ガイドでは、デバイス登録時に払い出された Key を使用して、IoT SIM を使用することなく SORACOM Harvest にデータを送信します。 当ガイドの前提は以下のとおりです。
- SORACOM のアカウントを作成済みであること
- デバイス (OS:Linux) が準備されており、インターネット接続可能であること
ステップ 1: デバイスを登録する
デバイス管理メニューからデバイスを登録します。 メニューの[デバイス管理]から[デバイスを追加]を選択します。
注意
デバイス登録費用が発生します。無料枠がありますので 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 リクエストしたデータは、以下のように確認できます。 デバイスを選択し、「操作」→「データを確認」をクリックします。
以下のように送信データを確認できます。