GPS マルチユニットの 動作モード は、ユーザーコンソールだけでなく、SORACOM CLI や SORACOM API でも設定できます。動作モードは、グループ設定と IoT SIM のタグに保存されます。このページでは、動作モードが保存されるしくみと、SORACOM CLI で動作モードを設定する手順を説明します。
ユーザーコンソールで設定できる範囲を超えた値を指定しないでください
ユーザーコンソールの GPS マルチユニットの設定画面で設定できる範囲を超えた値を userdata に指定すると、GPS マルチユニットが正常に動作しなくなることがあります。GPS マルチユニットが正常に動作しなくなった場合は、ユーザーコンソールで動作モードを設定 しなおしたうえで、再起動 (GPS マルチユニットの状態に関わらずファンクションボタンを 13 秒押す) を実行して、設定内容を GPS マルチユニットにダウンロードしてください。
動作モードが保存されるしくみ
ユーザーコンソールの 画面で をクリックすると、以下の設定が保存されます。SORACOM CLI / SORACOM API で同じ設定を保存すると、ユーザーコンソールで動作モードを設定した場合と同じように GPS マルチユニットを利用できます。
| 保存先 | 保存される設定 |
|---|---|
| グループの SORACOM Air for セルラー設定 | userdata に動作モードの設定データ (JSON) が保存されます。あわせて、metadata の enabled が true に設定されます (メタデータサービスの有効化)。 |
| グループの SORACOM Harvest Data 設定 | で にチェックを入れた場合は enabled が true に、チェックを外した場合は false に設定されます。 |
| IoT SIM のグループ | IoT SIM が、動作モードを保存したグループに所属します。 |
| IoT SIM のタグ | タグ名 soracom.gadgets、値 GPS-Multiunit のタグが設定されます。 |
- GPS マルチユニットは、メタデータサービス を利用して、
userdataに保存された動作モードをダウンロードします。そのため、metadataのenabledには必ずtrueを指定します。 soracom.gadgetsタグは、ユーザーコンソールの → → 画面で、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 トークンの取り扱いについて を参照してください。
- グループの仕組みについて詳しくは、グループ設定 を参照してください。
グループを作成します。
soracom groups create(Group:createGroup API) を使用します。既存のグループを利用する場合は、この手順は不要です。$ soracom groups create --body '{"tags": {"name": "gps-multiunit-group"}}'レスポンスに含まれる
groupIdを控えます。以降の手順では、{group_id}と記載します。動作モードはグループに保存されます
同じグループに所属する IoT SIM を利用する GPS マルチユニットは、すべて同じ動作モードで動作します。複数の GPS マルチユニットを異なる動作モードで利用する場合は、GPS マルチユニットごとにグループを作成してください。
グループに、動作モードとメタデータサービスの設定を保存します。
soracom groups put-config(Group:putConfigurationParameters API) を使用します。以下は、次の動作モードを設定する例です。- : 、、、
- : (月曜日から金曜日の 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) で確認できます。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のままにならないようにしてください。GPS マルチユニットで利用する IoT SIM を、グループに所属させます。
soracom subscribers set-group(Subscriber:setGroup API) を使用します。$ soracom subscribers set-group --imsi {imsi} --group-id {group_id}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 にタグを設定する を参照してください。設定内容を GPS マルチユニットにダウンロードします。
動作モードは、GPS マルチユニットが設定内容をダウンロードしたときに反映されます。詳しくは、ステップ 2: 設定内容を GPS マルチユニットにダウンロードする を参照してください。
userdata の仕様
userdata には、GPS マルチユニットが解釈する動作モードの設定データを JSON で指定します。userdata に保存した設定データは、ユーザーコンソールのグループの設定画面 ( の ) でも確認できます。詳しくは、メタデータサービスを設定する を参照してください。
設定データは、以下の 3 つのプロパティで構成されます。
| プロパティ | 説明 |
|---|---|
SensorData | 取得、送信するセンサーデータ () を指定します。 |
Setting | 加速度割り込みのしきい値を指定します。 |
Common | データを送信したり設定を取得したりするスケジュール (シナリオ) を指定します。 |
SensorData
センサーデータの種類ごとに、送信の有効 / 無効を、文字列 "ON" / "OFF" で指定します。
| プロパティ | ユーザーコンソールの設定項目 | 指定できる値 |
|---|---|---|
acc.i1 | の | "ON" / "OFF" |
loc.i1 | の | "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 は、以下のとおりです。
- : 、、、
- : (常に、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) でグループを削除してください。