Soracom

Users

スタートガイド
Home スタートガイド IoT デバイス GPS マルチユニット SORACOM Edition ユーザーガイド リファレンス

SORACOM CLI / SORACOM API で動作モードを設定する

GPS マルチユニットの動作モードを SORACOM CLI / SORACOM API で設定する方法と、グループ設定に保存される userdata の仕様を説明します。

GPS マルチユニットの 動作モード は、ユーザーコンソールだけでなく、SORACOM CLISORACOM API でも設定できます。動作モードは、グループ設定と IoT SIM のタグに保存されます。このページでは、動作モードが保存されるしくみと、SORACOM CLI で動作モードを設定する手順を説明します。

ユーザーコンソールで設定できる範囲を超えた値を指定しないでください

ユーザーコンソールの GPS マルチユニットの設定画面で設定できる範囲を超えた値を userdata に指定すると、GPS マルチユニットが正常に動作しなくなることがあります。GPS マルチユニットが正常に動作しなくなった場合は、ユーザーコンソールで動作モードを設定 しなおしたうえで、再起動 (GPS マルチユニットの状態に関わらずファンクションボタンを 13 秒押す) を実行して、設定内容を GPS マルチユニットにダウンロードしてください。

動作モードが保存されるしくみ

ユーザーコンソールの [GPS マルチユニットの設定変更] 画面で [保存] をクリックすると、以下の設定が保存されます。SORACOM CLI / SORACOM API で同じ設定を保存すると、ユーザーコンソールで動作モードを設定した場合と同じように GPS マルチユニットを利用できます。

保存先保存される設定
グループの SORACOM Air for セルラー設定userdata に動作モードの設定データ (JSON) が保存されます。あわせて、metadataenabledtrue に設定されます (メタデータサービスの有効化)。
グループの SORACOM Harvest Data 設定[送信先][SORACOM Harvest Data (Lagoon)] にチェックを入れた場合は enabledtrue に、チェックを外した場合は false に設定されます。
IoT SIM のグループIoT SIM が、動作モードを保存したグループに所属します。
IoT SIM のタグタグ名 soracom.gadgets、値 GPS-Multiunit のタグが設定されます。
  • GPS マルチユニットは、メタデータサービス を利用して、userdata に保存された動作モードをダウンロードします。そのため、metadataenabled には必ず true を指定します。
  • soracom.gadgets タグは、ユーザーコンソールの [メニュー][ガジェット管理][GPS マルチユニット] 画面で、GPS マルチユニットとして利用する IoT SIM を一覧表示するために利用されます。このタグが設定されていない IoT SIM は、一覧に表示されません。

SORACOM CLI で動作モードを設定する

  • SORACOM CLI を利用するには、あらかじめ SORACOM CLI をインストールし、認証情報を保存してください。詳しくは、SORACOM CLI をインストールする を参照してください。
  • 認証情報にカバレッジタイプ「日本」が設定されていない場合は、各コマンドに --coverage-type jp を指定してください。
  • SORACOM API を利用する場合は、各手順に記載した API を使用します。SORACOM API を利用するには、API キーと API トークンが必要です。詳しくは、API キーと API トークンの取り扱いについて を参照してください。
  • グループの仕組みについて詳しくは、グループ設定 を参照してください。
  1. グループを作成します。

    soracom groups create (Group:createGroup API) を使用します。既存のグループを利用する場合は、この手順は不要です。

    $ soracom groups create --body '{"tags": {"name": "gps-multiunit-group"}}'
    

    レスポンスに含まれる groupId を控えます。以降の手順では、{group_id} と記載します。

    動作モードはグループに保存されます

    同じグループに所属する IoT SIM を利用する GPS マルチユニットは、すべて同じ動作モードで動作します。複数の GPS マルチユニットを異なる動作モードで利用する場合は、GPS マルチユニットごとにグループを作成してください。

  2. グループに、動作モードとメタデータサービスの設定を保存します。

    soracom groups put-config (Group:putConfigurationParameters API) を使用します。以下は、次の動作モードを設定する例です。

    • [送信内容]: [位置情報(GPS)][温度][湿度][バッテリー残量]
    • [送信モード]: [定期送信 - 手動モード] (月曜日から金曜日の 9:00 から 17:00 まで、30 分間隔で送信)
    • [設定取得モード]: [定期設定取得 - あり] (毎日 2:00 から 3:00 までの間に取得)
    • [加速度割り込み]: あり (しきい値: 1240)
    $ soracom groups put-config --group-id {group_id} --namespace SoracomAir \
    --body '[
      {
        "key": "userdata",
        "value": {
          "SensorData": {
            "acc": { "i1": "OFF" },
            "loc": { "i1": "ON" },
            "tem": { "i1": "ON" },
            "hum": { "i1": "ON" },
            "bat": { "i1": "ON" }
          },
          "Setting": { "itr": { "i2": 1240 } },
          "Common": {
            "C1": ["null", "null", "null", "null", "null", "1981/04/01", "1981/04/01", "1981/04/01", "null", "null"],
            "C2": ["null", "null", "null", "null", "null", "2059/12/31", "2059/12/31", "2059/12/31", "null", "null"],
            "C3": ["null", "null", "null", "null", "null", "09:00", "02:00", "00:00", "null", "null"],
            "C4": ["null", "null", "null", "null", "null", "17:00", "03:00", "23:59", "null", "null"],
            "C5": [-20000, -20000, -20000, -20000, -20000, 30, 1440, 2160, -20000, -20000],
            "C6": ["null", "null", "null", "null", "null",
              ["null", "MON", "TUE", "WED", "THU", "FRI", "null"],
              ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"],
              ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"],
              "null", "null"],
            "C7": "5,6,7"
          }
        }
      },
      {
        "key": "metadata",
        "value": {
          "enabled": true,
          "minimizeResponseBody": false,
          "allowOrigin": "",
          "readonly": true
        }
      }
    ]'
    

    userdata に指定する JSON について詳しくは、userdata の仕様 を参照してください。

    既存のメタデータサービス設定を上書きしないでください

    すでにメタデータサービスを設定しているグループでは、metadataenabled 以外のプロパティ (minimizeResponseBodyallowOriginreadonly) は、既存の設定に合わせてください。既存の設定は、soracom groups get (Group:getGroup API) で確認できます。

  3. Harvest Data にデータを保存するかどうかに応じて、グループの SORACOM Harvest Data 設定を変更します。

    soracom groups put-config (Group:putConfigurationParameters API) を使用します。Harvest Data にデータを保存する場合は enabledtrue を、保存しない場合は false を指定します。

    $ soracom groups put-config --group-id {group_id} --namespace SoracomHarvest \
    --body '[{"key": "enabled", "value": true}]'
    
    Harvest Data を有効にすると利用料金が発生します

    Harvest Data は、利用料金が発生します。詳しくは、SORACOM Harvest を参照してください。既存のグループを利用する場合は、Harvest Data にデータを保存しないときも enabled の値を確認し、意図せず true のままにならないようにしてください。

  4. GPS マルチユニットで利用する IoT SIM を、グループに所属させます。

    soracom subscribers set-group (Subscriber:setGroup API) を使用します。

    $ soracom subscribers set-group --imsi {imsi} --group-id {group_id}
    
  5. IoT SIM に soracom.gadgets タグを設定します。

    soracom subscribers put-tags (Subscriber:putSubscriberTags API) を使用します。

    $ soracom subscribers put-tags --imsi {imsi} \
    --body '[{"tagName": "soracom.gadgets", "tagValue": "GPS-Multiunit"}]'
    

    SIM ID を指定してタグを設定する場合は、soracom sims put-tags (Sim:putSimTags API) も利用できます。詳しくは、IoT SIM にタグを設定する を参照してください。

  6. 設定内容を GPS マルチユニットにダウンロードします。

    動作モードは、GPS マルチユニットが設定内容をダウンロードしたときに反映されます。詳しくは、ステップ 2: 設定内容を GPS マルチユニットにダウンロードする を参照してください。

userdata の仕様

userdata には、GPS マルチユニットが解釈する動作モードの設定データを JSON で指定します。userdata に保存した設定データは、ユーザーコンソールのグループの設定画面 ([SORACOM Air for セルラー設定][ユーザーデータ]) でも確認できます。詳しくは、メタデータサービスを設定する を参照してください。

設定データは、以下の 3 つのプロパティで構成されます。

プロパティ説明
SensorData取得、送信するセンサーデータ ([送信内容]) を指定します。
Setting加速度割り込みのしきい値を指定します。
Commonデータを送信したり設定を取得したりするスケジュール (シナリオ) を指定します。

SensorData

センサーデータの種類ごとに、送信の有効 / 無効を、文字列 "ON" / "OFF" で指定します。

プロパティユーザーコンソールの設定項目指定できる値
acc.i1[送信内容][加速度]"ON" / "OFF"
loc.i1[送信内容][位置情報(GPS)]"ON" / "OFF"
tem.i1[送信内容][温度]"ON" / "OFF"
hum.i1[送信内容][湿度]"ON" / "OFF"
bat.i1[送信内容][バッテリー残量]"ON" (固定)

Setting

加速度割り込みのしきい値を指定します。

プロパティユーザーコンソールの設定項目指定できる値
itr.i2[加速度割り込み][しきい値]62~7874 の整数 (単位: mG)。ユーザーコンソールでは 62 mG 単位で設定します。62 の倍数以外の値を指定した場合は、加速度センサーの仕様によって 62 の倍数に丸められます。

加速度割り込みを利用するには、しきい値の指定に加えて、CommonC77 を含めます。

Common

GPS マルチユニットは、データの送信や設定の取得のスケジュールを「シナリオ」という単位で管理します。シナリオには 0 から 9 の番号が割り当てられていて、それぞれの用途は以下のとおりです。

シナリオ番号用途
0~3[定期送信 - 自動モード] で利用されます。GPS マルチユニットが移動状態に応じて自動的に制御するため、スケジュールは設定しません。
4[定期送信 - なし] を表すために利用されます。スケジュールは設定しません。
5[定期送信 - 手動モード] の定期送信のスケジュールを設定します。
6定期設定取得のスケジュールを設定します。
7加速度割り込み送信の動作期間を設定します。
8、9利用されません。

CommonC1 から C6 は、要素数 10 の配列です。配列のインデックス (0~9) がシナリオ番号に対応します。たとえば、C5 の 6 番目の要素 (インデックス 5) は、シナリオ 5 (定期送信 - 手動モード) の送信間隔です。C7 には、有効化するシナリオ番号を指定します。

プロパティ説明指定できる値
C1開始日"YYYY/MM/DD" 形式の文字列。最も古い日付は "1981/04/01" です。期間を指定しない場合 ([常に送信する] / [常に取得する]) は、"1981/04/01" を指定します。
C2終了日"YYYY/MM/DD" 形式の文字列。最も新しい日付は "2059/12/31" です。期間を指定しない場合は、"2059/12/31" を指定します。
C3開始時刻"HH:mm" 形式の文字列 (日本時間)。時刻を指定しない場合は、"00:00" を指定します。
C4終了時刻"HH:mm" 形式の文字列 (日本時間)。時刻を指定しない場合は、"23:59" を指定します。日本時間で 0:00 をまたぐ時間帯 (例: 20:00~8:00) は指定できません。
C5送信間隔 / 取得間隔 (分)1~1440 の整数。スケジュールを設定しないシナリオに指定する値については、以下の警告を参照してください。
C6動作する曜日シナリオごとの値は、要素数 7 の配列です。日曜日から土曜日の順に、動作する曜日は "SUN""MON""TUE""WED""THU""FRI""SAT"、動作しない曜日は "null" を指定します (例: 月曜日から金曜日まで動作する場合は ["null", "MON", "TUE", "WED", "THU", "FRI", "null"])。
C7有効化するシナリオ番号シナリオ番号をカンマで連結した文字列 (例: "5,6,7")。指定する値について詳しくは、以下の C7 に指定する値 を参照してください。
スケジュールを設定しないシナリオには文字列の null を指定します
  • スケジュールを設定しないシナリオ (シナリオ 0~4、8、9 など) では、C1 から C4 および C6 に、JSON の null ではなく文字列の "null" を指定します。また、C5 には -20000 を指定します。ただし、シナリオ 7 の C5 は、加速度割り込みの利用の有無にかかわらず 2160 を指定します。
  • 特に、シナリオ 0~3 に日付や時刻を設定すると、[定期送信 - 自動モード] の動作中に終了日時によってシナリオが停止するなど、GPS マルチユニットが正常に動作しなくなることがあります。シナリオ 0~3 の値は、必ず "null" および -20000 のままにしてください。

C7 に指定する値

C7 には、ユーザーコンソールの設定項目に応じて、以下の値をカンマで連結した文字列を指定します。

ユーザーコンソールの設定項目C7 に含める値
[送信モード][定期送信 - 自動モード] を選択0
[送信モード][定期送信 - 手動モード] を選択5
[送信モード][定期送信 - なし] を選択4
[設定取得モード][定期設定取得 - あり] を選択6
[加速度割り込み][しきい値を超える加速度を検知したらデータを送信する] にチェック7

指定例:

設定内容C7 の値
定期送信 - 自動モード、定期設定取得 - あり"0,6"
定期送信 - 手動モード、定期設定取得 - あり、加速度割り込み - あり"5,6,7"
定期送信 - 手動モード、定期設定取得 - なし"5"
定期送信 - なし、定期設定取得 - あり"4,6"
上の表にない組み合わせを指定しないでください
  • 送信モードに対応する値 (054) は、いずれか 1 つだけを含めてください。複数の値を含めると (例: "0,5")、GPS マルチユニットが正常に動作しなくなることがあります。
  • シナリオ 1~3 は、C7 に含めないでください。GPS マルチユニットが移動状態に応じて自動的に有効 / 無効を制御するため、C7 に含めると正常に動作しなくなることがあります。
  • [定期送信 - なし] (4) を指定すると、加速度割り込みも動作しません。
  • C7 で指定しないシナリオの C1 から C6 の値は、GPS マルチユニットの動作に影響しません。なお、ユーザーコンソールで動作モードを保存すると、C7 で指定しないシナリオにも設定値が保存されることがあります。

設定例

ユーザーコンソールで、以下の動作モード (初期設定) を保存した場合の userdata は、以下のとおりです。

  • [送信内容]: [位置情報(GPS)][温度][湿度][バッテリー残量]
  • [送信モード]: [定期送信 - 手動モード] (常に、10 分間隔で送信)
  • [設定取得モード]: [定期設定取得 - あり] (毎日 2:00 から 3:00 までの間に取得)
  • [加速度割り込み]: なし
{
  "SensorData": {
    "acc": { "i1": "OFF" },
    "loc": { "i1": "ON" },
    "tem": { "i1": "ON" },
    "hum": { "i1": "ON" },
    "bat": { "i1": "ON" }
  },
  "Setting": { "itr": { "i2": 2048 } },
  "Common": {
    "C1": ["null", "null", "null", "null", "null", "1981/04/01", "1981/04/01", "1981/04/01", "null", "null"],
    "C2": ["null", "null", "null", "null", "null", "2059/12/31", "2059/12/31", "2059/12/31", "null", "null"],
    "C3": ["null", "null", "null", "null", "null", "00:00", "02:00", "00:00", "null", "null"],
    "C4": ["null", "null", "null", "null", "null", "23:59", "03:00", "23:59", "null", "null"],
    "C5": [-20000, -20000, -20000, -20000, -20000, 10, 1440, 2160, -20000, -20000],
    "C6": ["null", "null", "null", "null", "null",
      ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"],
      ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"],
      ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"],
      "null", "null"],
    "C7": "5,6"
  }
}

動作モードの設定を解除する

ユーザーコンソールの [設定削除] と同じ操作を、SORACOM CLI で行うには、IoT SIM の soracom.gadgets タグを削除して、IoT SIM をグループから解除します。

$ soracom subscribers delete-tag --imsi {imsi} --tag-name soracom.gadgets
$ soracom subscribers unset-group --imsi {imsi}

SORACOM API を利用する場合は、Subscriber:deleteSubscriberTag APISubscriber:unsetGroup API を使用します。

グループおよびグループに保存された動作モードの設定は、削除されません。グループが不要な場合は、soracom groups delete (Group:deleteGroup API) でグループを削除してください。