Soracom

Users

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

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

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

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

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

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

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

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

保存先保存される設定
グループの SORACOM Air for セルラー設定userdata に動作モードの設定データ (JSON) が保存されます。あわせて、metadata の enabled が true に設定されます (メタデータサービスの有効化)。
グループの SORACOM Harvest Data 設定[送信先] で [SORACOM Harvest Data (Lagoon)] にチェックを入れた場合は enabled が true に、チェックを外した場合は false に設定されます。
IoT SIM のグループIoT SIM が、動作モードを保存したグループに所属します。
IoT SIM のタグタグ名 soracom.gadgets、値 GPS-Multiunit のタグが設定されます。
  • GPS マルチユニットは、メタデータサービス を利用して、userdata に保存された動作モードをダウンロードします。そのため、metadata の enabled には必ず 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 の仕様 を参照してください。

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

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

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

    soracom groups put-config (Group:putConfigurationParameters API) を使用します。Harvest Data にデータを保存する場合は enabled に true を、保存しない場合は 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 の倍数に丸められます。

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

Common

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

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

Common の C1 から 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"
上の表にない組み合わせを指定しないでください
  • 送信モードに対応する値 (0、5、4) は、いずれか 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 API と Subscriber:unsetGroup API を使用します。

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