概要
Things Cloudは、Sigfoxネットワーク事業者による Sigfox Cloud を通じて、Sigfoxデバイスと接続するインターフェースを提供します。次のことができます。
- Things Cloudのデバイス管理アプリケーションを使用して、Sigfoxデバイスを簡単にプロビジョニングできます。
- Webベースのユーザーインターフェースを使用して、アップストリームのペイロードパケットをデコードします。
- Things Cloud のイベントを通じて、デバイスの生データをデバッグおよび後処理を行います。
- Things Cloud の操作によって、ダウンストリーム データをデバイスに送信します。
- Sigfox デバイスの接続監視、デバイス管理、ダッシュボードによるデータ可視化、リアルタイム分析など、既存のThings Cloudの機能を活用できます。
次の図は、Things CloudにおけるSigfox統合の概要を示しています。
次のセクションでは、以下の方法について説明します。
- Things Cloudでの接続設定の管理
- Things Cloudのデータベースでデバイスプロトコルの作成を行う。
- Things Cloud でデバイス登録し、Sigfox ペイロードを可視化
- 一般デバイス登録したデバイスの更新
- デバイスにオペレーション送信
さらに、チェックしてください。
- アップリンクメッセージ処理中に作成されたメジャーメントとイベントに関する情報
- 問題が発生した場合のトラブルシューティング
接続設定の管理
デバイスを登録する前に、管理アプリケーションの接続ページで、Sigfox Cloudの認証情報を構成する必要があります。このSigfox Cloudの認証情報は、Sigfoxで準備しなくてはいけません。
また、Things CloudへのAPIアクセスを作成する前に、Sigfox CloudでThings Cloudグループに追加され、以下のプロファイルを持つ「Associated user」が必要です。
- Customer [R]
- Device Manager [W]
ステップ1
すでにユーザーが関連付けられている場合は、そのユーザーが以下のプロファイルを持っていることを確認し、ステップ2に進んでください。
グループ名には制約がありません。残りのステップでは、グループ名のサンプルとして 「NTT Communications」を使用します。
まず、Sigfox Cloud のアカウントに入り、新しいユーザーを作成します。ユーザーをグループに追加し、「Customer [R]」と「Device Manager [W]」 のプロファイルを選択します。
ステップ2
適切なグループとプロファイルを持つ「Associated user」を作成した後、GROUPページに移動します。API ACCESSタブで、新しいエントリを作成し、次のプロファイルを追加します。
- Customer [R]
- Device Manager [W]
ステップ3
API ACCESSエントリの作成後、管理アプリケーションの接続ページからSigfox Cloud アカウントを Things Cloud に接続することができます。接続ページに移動し、Sigfox プロバイダー設定タブに切り替えます。
接続タブは、複数のSigfox接続の作成、更新、削除を容易にします。
接続を作成するには、以下の情報を提供する必要があります。
-
名前: 作成される Sigfox 接続の名前です。
-
説明: 作成される Sigfox 接続の説明です。
-
ログイン: ログイントークンは、Sigfox CloudのAPI ACCESSエントリにあります。
-
パスワード: パスワードトークンは、Sigfox Cloud の API ACCESSエントリの Password の横にあります。
-
親グループID: このIDは、Sigfoxアカウントにログインし、「NTT Communications」グループを選択したときに、URLに書き込まれます。例えば、https://backend.sigfox.com/group/9823ruj29j9d2j9828hd8/infoのようになります。
-
ベースURL: Sigfoxアカウントを指すURLです。
保存をクリックして、設定を保存します。正しく設定されていれば、「Credentials successfully saved」というメッセージが表示されます。
別の接続を追加するには、接続の追加をクリックし、上記の手順に従ってください。
接続の更新
更新する接続を選択し、編集を行い、接続を保存します。
接続に関連付けられているデバイスがある場合、以下のようなエラーメッセージが表示されます。「Can not update the LNS Connection with <name of LNS Connection>
as it's associated with <number of devices>
.リンクをクリックして、影響を受けるデバイスを含むファイルをダウンロードしてください。: /service/<agent-context-path>/lns-connection/<lns-connection-name>/device
」
接続の削除
削除する接続を選択し、削除をクリックします。
接続に関連付けられているデバイスがある場合、以下のようなエラーメッセージが表示されます。「Can not update the LNS Connection with <name of LNS Connection>
as it's associated with <number of devices>
.リンクをクリックして、影響を受けるデバイスを含むファイルをダウンロードしてください。: /service/<agent-context-path>/lns-connection/<lns-connection-name>/device
」
Sigfox プラットフォームへの認証に失敗
Sigfox プラットフォームへの認証に失敗しました。親グループIDや認証情報が正しいか確認してください。
この問題を解決するには、正しいベースUrlまたは親グループID、ユーザー名、パスワードを入力し、再試行してください。
デバイスプロトコルの作成
Sigfoxデバイスからのデータを処理するには、Things Cloudがデバイスのペイロード形式を理解する必要があります。ペイロードデータをThings Cloudのデータにマッピングするには、Sigfoxデバイスプロトコルを作成することで可能です。
デバイス登録の際に、このデバイスプロトコルを関連付けることができます。すると、16進数のペイロードを持つこのデバイスの受信アップリンクコールバックは、デバイスプロトコルで設定したものにマッピングされます。
Sigfoxデバイス登録時に割り当てられたデバイスプロトコルは、デバイスの詳細ページのLPWANタブで変更できます。
デバイスプロトコルを作成するには、デバイス管理アプリケーションのナビゲータのデバイスタイプメニューでデバイスプロトコルを選択します。既存のデバイスプロトコルをインポートするか、新規に作成することができます。
デバイスプロトコルのインポート
デバイスプロトコルページで、インポートをクリックします。
必要な事前定義されたデバイスタイプを選択するか、ファイルからアップロードします。準備ができたら、再度インポートをクリックします。
新しいデバイスプロトコルの作成
デバイスプロトコルページで、デバイスプロトコルを追加をクリックし、オプションリストからSigfoxを選択します。
デバイスプロトコルの名前と任意で説明を入力し、作成をクリックします。
メッセージタイプで、メッセージのタイプを指定します。Sigfoxデバイスは、タイプごとに異なるエンコーディングでさまざまなタイプのメッセージを送信できます。デバイスによっては、メッセージのFPortパラメータ(ソース: FPort)またはメッセージのペイロードのサブセット(ソース: Payload)のいずれかを見て、タイプを決定することができます。
ソースフィールドで、メッセージタイプのエンコード方法を選択します。
- Payload:メッセージのペイロードのサブセットを見ることで、メッセージタイプを決定できます。
次のペイロード構造例では、最初のバイトがメッセージタイプのソースを示しています(赤枠の箇所)。
ユーザーインターフェースでは、このタイプのメッセージタイプのソース情報を、次のように入力することができます。 開始ビットフィールドには、ペイロード内のメッセージタイプ情報の開始位置を示し、ビット数フィールドには、この情報の長さを示します(例:開始ビット=「0」、ビット数=「8」)。
値の構成設定
値セクションで、値を追加をクリックし、値の構成を作成します。
次のウィンドウで、この例に示すように関連する値を構成します。
新しい値 ウィンドウ part 1
新しい値 ウィンドウ part 2
値の構成は、メッセージタイプのペイロードにある値をThings Cloudデータにマッピングします。
メッセージタイプでは、デバイスのメッセージ仕様に従ってメッセージIDを設定します。メッセージIDは、メッセージタイプを識別する数値です。メッセージIDは、デバイスプロトコルのメインページで指定されたソース(PayloadまたはFPort)にあるメッセージIDと照合されます。メッセージ ID は 10 進数で入力する必要があります(16 進数ではありません)。
この例のペイロード構造では、メッセージIDは 「1」です。
一般で、値の名前と、値リストに表示されるカテゴリを指定します。
値の選択で、値を抽出する場所を指定します。開始ビット フィールドで、値情報の開始位置を、ビット数フィールドでその情報の長さを指定します。ビット数の最大値は、32ビット(4バイト)です。
この例では、「Channel 1 Type」情報は2バイト目(開始ビット=「16」)で始まり、長さは1バイト(ビット数=「8」)です。
16進数値は10進数に変換され、その後「値の正規化」が適用されます。
値の正規化では、プラットフォームに保存する前に生の値をどのように変換するかを指定し、以下の適切な値を入力してください。
- 乗算: この値は、値の選択から抽出された値と乗算させます。10進数で、負の数、正の数を指定できます。デフォルトでは1が設定されています。
- オフセット:加算または減算されるオフセットを定義します。10進数で、負の数、正の数を指定できます。デフォルトでは0に設定されています。
- 単位(任意):値とともに保存される単位を定義できます(例:摂氏温度単位 「C」)。
ペイロードのデコード方法の詳細については、デバイスのドキュメントをご覧ください。
必要に応じて、任意で次のオプションのいずれかを選択します。
- 符号付き - 値が符号付き数値の場合
- パック10進数 - 値がBCDエンコードされている場合
機能で、このデバイスプロトコルがどのように動作するかを指定します。
- 計測値を送信:デコードされた値でメジャーメントを作成します。
- アラームを発生させる:値が0(ゼロ)と等しくない場合、アラームを発生させます。
- イベントを送信:デコードされた値でイベントを作成します。
- 管理対象オブジェクトの更新:マネージドオブジェクトのフラグメントをデコードされた値で更新します。
また、メジャーメント、イベント、またはマネージドオブジェクトのフラグメントの中に、複数の値を含むネスト構造を持つことができます。メジャーメントの場合、同じタイプのすべてのプロパティがマージされ、ネスト構造が作成されます。イベントやマネージドオブジェクトの場合、同じフラグメントを持つすべてのプロパティがマージされ、ネスト構造が作成されます(次の「「Position」デバイスプロトコルのネスト構造による例をご覧ください)。
保存をクリックすると、値がデバイスプロトコルに追加されます。
保存をクリックすると、定義した値でデバイスプロトコルが作成されます。
単一プロパティの例
次の画面は、バッテリー残量が変化したときにメジャーメントを送信するメッセージ例です。
新しい値 ウィンドウ part 1
新しい値 ウィンドウ part 2
次の画面は、GPSデバイスの現在位置を報告するデバイスプロトコルのネスト構造の例を示しています。デバイスプロトコル名は「Position」で、経度と緯度の値が含まれています。
メッセージIDは、すべての値で同じである必要があります。残りのパラメータは、上記の手順に従って入力してください。管理対象オブジェクトのフラグメント フィールドに「c8y_Position」を入力し、経度と緯度のそれぞれに新しい値を作成します。
新しい値 ウィンドウ 緯度
新しい値 ウィンドウ 経度
結果は次のようになります。
カスタムデコード/エンコードの使用
Sigfoxエージェントは。カスタムマイクロサービスをプラグインすることで、デコード/エンコード機能をサポートしています。
Sigfoxデバイスの登録
Things CloudにSigfoxデバイスを登録するには、デバイス管理アプリケーションのデバイス > 登録ページに移動し、右上のデバイスを登録をクリックしドロップダウンから 単一登録 > Sigfox を選択します。
- Sigfox Cloud プラットフォームで作成されるデバイスタイプは、以下の命名規則があります。
c8y_{tenantId}_{device-protocol-name}_{contractId}
例:c8y_myTenant_mySigfoxDeviceProtocol_aabbcc5b78c901d64eecf4faaa
- 構築された名前が100文字を超える場合、100文字未満になるまで切り捨てられます。
次のウィンドウで、必要な情報を入力してください。
- ID: 一意のデバイス ID。値は 16 進数でなければいけません。
- PAC: デバイスの移植認証コード。値は 16 進数でなければいけません。
- 接続: テナント内で設定されているすべての Sigfox 接続を一覧表示します。次の契約オプションは、選択した Sigfox 接続に基づいて入力されます。
- 契約: 希望する契約を選択します(有効な契約と期限切れの契約を含め、すべての契約が表示されます。)。
- デバイスタイプ: ドロップダウンリストから希望のデバイスプロトコルを選択します。
- 製品の証明書キー: このキーは、https://partners.sigfox.com/ にあります。デバイスに移動して、証明書キーをコピーしてください。チェックボックスを選択しないで製品の証明書キーが指定されていない場合、そのデバイスはプロトタイプと見なされます。
登録をクリックすると、デバイス登録リクエストが送信され、デバイスが作成されます。
デバイスが本当に接続されていることを確認するには、イベントが実際に受信されるかを確認します。デバイスをクリックし、イベントタブを開いてください。このデバイスに関連するすべてのイベントがここに一覧表示されます。
接続されているデバイスの表示と管理の詳細については、デバイス管理もご覧ください。
あるLNS接続から別のLNS接続にデバイスを移行するには、デバイスを再登録する必要があります。 デバイスのLPWANタブに移動しプロバイダー接続ドロップダウンをクリックします。 あるLNS接続から別のLNS接続にデバイスを移行するには、デバイスを再登録する必要がある旨のプロンプトが表示されます。 再登録ボタンをクリックしてください。
ユーザは、上記のステップに従って再登録を実行し、希望するLNS接続を選択することができるデバイス登録ページに誘導されます。
一般デバイス登録したデバイスの更新
過去に Things Cloud の「一般デバイス登録」から登録したデバイスがある場合、以下のURLをSigfoxクラウド上で手動で変更する必要があります。
- 変更前:
https://sigfox-agent.je1.thingscloud.ntt.com/sigfoxDataCallback
変更後:https://<tenantId>.je1.thingscloud.ntt.com/service/sigfox-agent/sigfoxDataCallback
- 変更前:
https://sigfox-agent.je1.thingscloud.ntt.com/sigfoxServiceAcknowledgeCallback
変更後:https://<tenantId>.je1.thingscloud.ntt.com/service/sigfox-agent/sigfoxServiceAcknowledgeCallback
- 変更前:
https://sigfox-agent.je1.thingscloud.ntt.com/sigfoxServiceStatusCallback
変更後:https://<tenantId>.je1.thingscloud.ntt.com/service/sigfox-agent/sigfoxServiceStatusCallback
- 変更前:
https://sigfox-agent.je1.thingscloud.ntt.com/sigfoxErrorCallback
変更後:https://<tenantId>.je1.thingscloud.ntt.com/service/sigfox-agent/sigfoxErrorCallback
オペレーション送信
デバイスが16進数コマンドの送信をサポートしている場合、シェルからコマンドを送信することができます。デバイス管理アプリケーションのすべてのデバイスページで、オペレーションを送信したいデバイスに移動します。シェルタブに切り替えます。
アップリンクメッセージ処理
アップリンクメッセージを受信すると、Things Cloudプラットフォームは以下のメジャーメントとイベントを作成し、対応するデバイスのマネージドオブジェクトを更新します。
- Unprocessed data -
com_sigfox_UnprocessedDataEvent
タイプのイベントが、未処理のデータを含んだ形で作成されます。 - Position - デバイスのマネージドオブジェクトの
c8y_Position
フラグメントは、デバイスの緯度、経度、高度、精度情報を利用するために更新されます。 - Signal strength - デバイス信号強度の RSSI 値と SNR 値にで、メジャーメントが作成されます。
Sigfox接続機能 操作マニュアル
1. はじめに
本書では、Things Cloud Sigfox接続機能に関する操作について説明します。
Sigfox接続機能では、Sigfoxネットワーク事業者の提供する Sigfox Cloud と Things Cloud を接続するインターフェースを提供します。このインターフェースを用いることにより、Sigfox 対応デバイスを Things Cloud のデバイスとして登録し、データを可視化することができます。
一度 Things Cloud への接続設定を行えば、以後 Sigfox Cloud へのデバイス登録により Things Cloud に簡単に Sigfox 対応デバイスを接続することができます。
本書に含まれる内容は以下の通りです。 Sigfox対応デバイスを準備し、Things Cloud に接続するまでの一連の手順を記載しています。
表題 | 内容 | 備考 |
---|---|---|
2. 利用条件 および 制約事項 | Sigfox接続機能の利用条件及び制約事項を記載しています。 | |
3. Sigfoxプロバイダー設定 | Sigfox Cloudのアカウント情報をThings Cloudに登録します。 | Sigfox Cloud - Things Cloud間通信の認証に必要な設定です。(テナント毎に設定が必要です。) |
4. デバイスプロトコル登録 | Things Cloud にデバイスプロトコル(デバイスがアップロードするフォーマットを定義したもの)を登録します。 | 新しいデバイスプロトコルのデバイスを接続する際に行います。 |
5. デバイス登録 | デバイスをThings Cloud へSigfoxデバイスとして登録します。 | Sigfoxデバイスの登録によりSigfox Cloudにも自動的にデバイス登録が行われます。 |
6. デバイスデータの確認 | Sigfox対応デバイスからのデータが Things Cloud に接続されたかを確認します。 | デバイス接続後、いつでも確認できます。 |
7. デバイスの操作 | デバイスにコマンドを実行させるためのオペレーションを送信します。 | デバイス制御のコマンドが用意されているデバイスのみに対応しています。 |
8. サブテナントでのSigfox接続機能利用 | サブテナントにおいてSigfox接続機能を利用するために、Sigfoxアプリケーションをサブスクライブします。 | Sigfox接続設定済の親テナントからサブテナントを作成し、サブテナントでSigfox接続機能を利用する場合には、サブテナントに対してSigfoxアプリケーションを追加します。 |
9. FAQと利用上の注意事項 | Sigfox接続機能(Sigfox接続)利用時のFAQおよび注意事項を記載しています。 |
2. 利用条件 および 制約事項
- Sigfox Cloudと Things Cloud の状態同期、および異常時のアラーム通知等により、本機能利用時は毎分 3 回程度のデバイスAPIコールを消費します。
- prototype (Sigfox certificate ID を持たない)デバイスはサポート対象外です。
- Things Cloud のデバイス管理からデバイス削除を行うことができますが、デバイスから Uplink がくると、自動的に再度デバイスが登録されてしまいます。
- これを防ぐためには、手動で Sigfoxクラウド の callback を削除する必要があります。
- Things Cloud からデバイス登録を行うと、Sigfoxクラウドへのデバイス登録が自動で行われます。この後、初回デバイス通信により回線のアクティベーションが行われ、回線契約形態により課金される場合があります。
- Sigfox Cloudの仕様により、Things Cloud からデバイス登録後は、Sigfox Cloud上でアクティベートされたデバイスをSigfox Cloudから削除することは、基本的にはできません。
- Things Cloudデバイス情報画面で削除(デプロビジョン)ボタンが表示されますが、機能しません。
- 1回のデバイスからのデータ送信(Uplink)に対し、デバイスAPIは最低でも5回程度(cacheがない場合11回)カウントされます。
- アンダースコアを含むテナント名は利用できません。(デバイス登録でエラーとなります。)
- デバイスプロトコル名称で利用できない文字種類があります。(&(アンパサンド) ‘(シングルクオーテーション), (バックスラッシュ), "(ダブルクオーテーション), <(小なり), >(大なり)の計6種)
- Sigfox Cloudでは、同じデバイスプロトコル名を複数のcontractに登録することができないため、Things Cloudからデバイス登録をする際に、同一テナント内でデバイス登録時に使用済みのデバイスプロトコルを選択し、先に登録したデバイスと異なる Sigfoxの契約を選択すると、デバイス登録ができません。
- これを防ぐためには、一度デバイスプロトコルをエクスポートし、インポートして別の名前で登録する必要があります。
3. Sigfoxプロバイダー設定
3.1. 事前準備
Things CloudにSigfoxプロバイダ設定を行う前に、まずはSigfox Cloud上で、APIを利用するために必要な認証情報(API ACCESS)を作成しておく必要があります。
以下の2つのステップを実行することで、Sigfox Cloudでのセットアップは完了します。
Step 1
※Step 1は、必要な権限を持った “Associated user"をまだ作成していない場合のみ、実行してください。
Sigfox Cloudにログインし、新しくユーザを作成します。ユーザを任意のグループに追加し、次の権限プロファイルを選択してください。
- DEVICE MANAGER [W]
Step 2
“GROUP” ページから “Associated user” を作成したグループを選択し、 “API ACCESS” タブを選択したら、以下の権限プロファイルを設定した新しいエントリーを作成します。
- Device Manager [R]
- Device Manager [W]
Sigfox Cloudでのセットアップは以上です。
3.2 接続設定
ここからは Things Cloud で設定を行います。
管理アプリケーションを表示し、左側のナビゲータから「接続」を選択します。
「接続」画面の「Sigfoxプロバイダ設定」タブを選択した状態で表示される、下記の入力項目を設定します。
入力項目 | 内容 | 備考 |
---|---|---|
ログイン | Sigfox Cloud で作成した API ACCESS のログイントークン | |
パスワード | Sigfox Cloud で作成した API ACCESS のパスワードトークン | |
親グループ ID | Sigfox Cloud で作成した該当するグループのID | Sigfox CloudでGROUPの一覧画面から該当するグループを選択した画面で、URLからIDを確認することができます。 例) “https://backend.sigfox.com/group/9823ruj29j9d2j9828hd8/info” |
入力後、「資格情報を保存」ボタンを押します。
4. デバイスプロトコル登録
4.1. デバイスプロトコルを新規に作成する場合
デバイス管理アプリケーションを開き、「デバイスタイプ」>「デバイスプロトコル」を選択します。
デバイスプロトコルの画面で「デバイスプロトコルを追加」を選択します。
デバイスプロトコルを選択するウィンドウが表示されるので、「Sigfox」を選択し、名前を設定したら「作成」ボタンを押します。
入力項目が現れるので、それらに入力します。 なお、付録2でデバイスプロトコルの設定例を掲載しています。
入力項目 | 内容 | 備考 |
---|---|---|
説明 | デバイスプロトコルの説明 | デバイスプロトコルに関して説明事項があれば入力する。 |
ソース | メッセージのタイプが決定されるソース | メッセージタイプが表されているペイロードの位置(開始ビットとビット長)を入力する。 |
値 | デバイスメッセージのデコードロジック定義 | 追加を押下し、デバイスメッセージ仕様を元に以下を入力する。 ・メッセージID: メッセージタイプを識別する数値 ・名前: 測定対象等の名前 ・表示カテゴリ: 測定対象等のカテゴリ (例:Temperature Mode) ・開始ビット/ビット数: データ位置の指定 ・乗数: データに乗算する場合に設定する値(デフォルト値は1) ・オフセット: データに加算もしくは減算する場合に設定する値(デフォルト値は0) ・単位: データの単位(任意入力) ・オプション: データ形式に応じて選択 ・機能: 実行するアクションを選択 (選択した機能に応じタイプ/シリーズ/テキスト等を入力) |
入力後、「保存」ボタンを押します。
保存後、デバイスプロトコルの画面上に以下のように表示されます。
4.2. デバイスプロトコルをインポートする場合
デバイスプロトコルをファイル(JSON形式)から取り込んで登録(インポート)することもできます。
JSON形式のデバイスプロトコル情報は、テナントに登録済みのデバイスプロトコルがあれば、その情報を取得(エクスポート)して利用することもできます。
テナントに登録済みのデバイスプロトコルからファイルを取得する場合は、「デバイスプロトコル」画面からエクスポートします。
インポート
「デバイスプロトコル」画面の「インポート」を選択し、「デバイスプロトコルのインポート」画面を表示します。
ファイルを指定し、必要であれば名前を変更します。「インポート」ボタンを押して、登録します。
5. デバイス登録
デバイス管理アプリケーションの左のメニュー「登録」を押下し、「デバイスを登録」ボタンを押下します。
「Sigfox」を押下します。
表示された入力フォームに必要事項を設定します。
入力項目 | 内容 | 備考 |
---|---|---|
ID | デバイスを一意に識別する値 | 一意な16進数の値です。通常、Sigfox対応の通信モジュールに工場出荷時に書き込まれています。 |
PAC | 移植認証コード | Sigfoxクラウドへのデバイス登録時に必要な、16進数のワンタイム認証コードです。初期値は通常、Sigfox対応の通信モジュールに工場出荷時に書き込まれています。 |
契約 | Sigfoxクラウドの契約情報 | デバイス登録を行う契約情報を選択します。 |
デバイスタイプ | 項目3で設定したデバイスプロトコルを選択 | 登録したいデバイスと対応するものを選択してください。 |
製品の証明書キー | Sigfox Ready certificate(P2認証)の認証番号 | P_から始まる番号で、Sigfox Partner networkサイトからも確認可能です。 |
入力後、「次へ」ボタンを押します。正常に登録されると、以下のように表示されます。
デバイス一覧からも、登録したデバイスが確認できるようになります。
デバイス登録後、Sigfox Cloudへ自動的にデバイス登録が行われます。Sigfox Cloudへデバイスが登録されることをデバイスのプロビジョニングと呼びます。
6. デバイスデータの確認
デバイスからのデータは、イベントとして Things Cloud に格納されます。
デバイス管理アプリケーションから、該当デバイスを選び、計測値やイベントを見ることでデータの到着を確認することができます。
イベントには Sigfox の payload がヘキサ文字列として “com_Sigfox_UnprocessedDataEvent.data” プロパティに格納されます。
デバイスプロトコルでのデバイスプロトコル設定に関わらず、以下のデータはSigfoxデバイスからのデータアップロード時に共通して作成されます。
- event: c8y_SigfoxDeviceRegistration(プロビジョン完了時1回のみ)
- event: com_sigfox_UnprocessedDataEvent
- measurement: c8y_SignalStrength
7. デバイスの操作
7.1. 事前準備
downlinkによってオペレーションを送信するには、Sigfox Cloudのcallback設定のdownlinkを有効にします。
次に、callbackの設定を変更します。変更対象は、SERVICE callbacks - Acknowledge のみです。
Bodyの値を以下のように変更してください。
-
変更後
{"device":"{device}","time":"{time}","infoCode":"{infoCode}","infoMessage":"{infoMessage}","downlinkAck":"{downlinkAck}","downlinkOverusage":"{downlinkOverusage}"}
-
【参考】変更前
{"device":"{device}","time":"{time}","duplicate":"{duplicate}","avgSnr":"{avgSnr}","station":"{station}","lat":"{lat}","lng":"{lng}","infoCode":"{infoCode}","infoMessage":"{infoMessage}","downlinkAck":"{downlinkAck}","downlinkOverusage":"{downlinkAck}"}
Sigfox Cloudでのセットアップは以上です。
7.2. コマンドの送信
ここからは Things Cloud で操作を行います。
デバイス管理アプリケーションを開き、オペレーションの送信先となる該当デバイスを選択します。次に"シェル"タブをクリックします。
シェルコマンドを入力するか、または">_定義済みのコマンドを取得"項目で定義済みのコマンドを表示/編集します。
“実行"をクリックすると、デバイスへのオペレーション送信待機状態となります。
送信待機状態のコマンドが送信されるタイミング
デバイスから送信されたデータに “ack=true” が含まれているcallbackを受信すると、そのHTTPレスポンスとして、保留中となっているコマンドが送信されます。
デバイスから"ack=true"が送信されるタイミングは、デバイスによって決められています。また、Sigfoxサービスの契約内容によって1日に送信可能なDownlinkの上限回数が異なります。
ステータス
Sigfox Cloudへの送信が成功すると、以下のようにステータスが"成功"に変わります。
定義済みコマンド
頻繁に利用するコマンドなどを定義済みのコマンドとして保存し、利用時に取得して送信することが可能です。
コマンドを新規に定義するには、“定義済みのコマンド"を押し、“新しいテンプレート"を押します。
名前、カテゴリ、コマンドを入力し、“保存"します。
定義済みのコマンドを送信する場合、“シェル"タブから"定義済みのコマンド"を押し、実行したいコマンドを選択し"使用"を押します。
8. サブテナントでのSigfox接続機能利用
Sigfox接続機能を利用中の親テナントから作成したサブテナントで、Sigfox接続機能を利用するために必要な事前設定です。
管理>サブテナント画面から、Sigfox接続機能を利用するサブテナントを選択します。
“アプリケーション"のタブを押し、右側の利用可能なアプリケーションから"Sigfox-agent"を選択したときに表示される登録ボタンを押します。
左側の登録済みアプリケーションに"Sigfox-agent"が追加されます。
サブテナントでSigfox接続機能を利用するために必要な事前設定は以上です。
9. FAQと利用上の注意事項
9.1. FAQ
No. | Q | A |
---|---|---|
1 | Things Cloud 内でのデバイス名は? | 初期デバイス名は SigFox device {デバイスID} の形式になります。例えば、デバイスID が 0017B46C であった場合、SigFox device 0017B46C となります。 |
2 | デバイス名は変えられないの? | デバイスが登録された後、自由に名称を変更することができます。変更しても、デバイス管理アプリケーションからデバイスを選択し、「アイデンティティ」から デバイスID 値を確認することができます。 |
3 | デバイスからデータが送信されていないことを検知するには? | 通常の Things Cloud 利用の場合と同様、可能です。デバイス管理アプリケーションからデバイスを選択し、「情報」タブを選び、「接続の監視」セクションの要求間隔に値を記入することで、その時間内にデータ送信がない場合にアラームを発生させることができます。 |
9.2. トラブルシューティング
こちらを参照してください。
トラブルシューティング
backend.sigfox.com の Sigfox コールバックが正しく作成されない
デバイスの登録
空きスロットのあるアクティブな契約はありません
空きスロットを持つアクティブな契約は、アクティベーション終了時刻と使用中のトークンに基づいてフィルタリングされます。アクティベーション終了時刻が現在時刻以降である、またはアクティベーション終了時刻が無制限である契約、および最大トークン数が使用中トークン数より多い、または最大トークン数が無制限である契約が空きスロットを持つアクティブな契約と見なされます。
このエラーを解決するには、support.sigfox.com に連絡して、Sigfox アカウントの契約を作成してください。
Sigfoxプロバイダー設定が見つからない
この警告メッセージは、Sigfoxアカウントに認証情報が設定されていない場合に表示されます。
これを解決するためには、接続設定の管理をご覧ください。
設定されているSigfoxデバイスタイプはありません
この警告メッセージは、デバイス登録に使用するSigfoxデバイスプロトコルが存在しない場合に表示されます。
これを解決するには、デバイスタイプの管理で少なくとも1つのデバイスプロトコルを設定します。
接続設定
backend.sigfox.com の Sigfox コールバックが正しく作成されない
コールバック設定の情報は、マイクロサービスによって取得されます。
設定が正しいかどうかを確認するには、以下のREST APIリクエストを実行します。
GET {{url}}/tenant/currentTenant
この警告メッセージは、Sigfox アカウントに接続が設定されていない場合に表示されます。これを解決するには、設定をクリックして、接続が設定されている管理アプリケーションに移動します。
デバイスプロトコルが設定されていない
この警告メッセージは、デバイス登録に使用する Sigfox デバイスプロトコルが存在しない場合に表示されます。これを解決するには、デバイスプロトコル をクリックして、プロトコルが設定されている デバイスプロトコル ページに移動します。
アラームプロビジョニングに関する問題
アラームプロビジョニングに関する問題
「transfer operation failed」アラームが発生した場合、デバイスはすでにSigfoxプラットフォームにプロビジョニングされており、Sigfoxプラットフォームでのデバイスタイプの変更に失敗しています。この問題を解決するには、Sigfoxプラットフォームで目的のデバイスタイプに手動で変更する必要があります。
プロビジョニング済みステータスはfalseに設定されている
このアラームの場合、プロビジョニング済み ステータスが「false」に設定されていることが分かります。これは、Sigfox プラットフォームからデータが送信されていないことを意味します。アラームメッセージには、エラーに関するより詳細な情報が記載されています。この場合、登録時に指定された PAC コードが無効であることを意味します。
デバイスのプロビジョニング処理が完了し、Sigfoxプラットフォームから成功情報を受信すると、プロビジョニング済み ステータスがtrueに設定されます。さらに、デバイスからアップリンクメッセージが取得されると、trueに設定されます。
コールバックの作成に失敗
このアラームは、Sigfoxプラットフォームで1つ以上のコールバック作成リクエストが失敗した場合に作成されます。このアラームは アラーム ページまたは ホーム ページで見ることができます。
この問題を解決するには、Sigfox プラットフォームの Web インターフェースに移動して、アラームに記載されているIDでデバイスタイプを確認します。
この場合、次のアドレスに移動してください。
https://backend.sigfox.com/devicetype/5cd3d97ee833d9746698b27d/callbacks
前述のコールバックが Sigfox プラットフォームに存在しない場合、手動で作成する必要があります。コールバックの作成に必要なすべての必要情報は、アラームの説明ですでに与えられています。上記のアラームの場合、次のコールバックが最初に表示されます。
- [[callback=[type=DATA_BIDIR, url=«tenant_url»/service/sigfox-agent/sigfoxDataCallback, httpMethod=POST, bodyTemplate={“device”:"{device}",“time”:"{time}",“snr”:"{snr}",“station”:"{station}",“data”:"{data}",“rssi”:"{rssi}",“seqNumber”:"{seqNumber}",“ack”:"{ack}"}, contentType=application/json, headers={Authorization=Basic …}]]
手動でコールバックを作成するためには、以下のプロパティを設定する必要があります。
- type
- url
- httpMethod
- bodyTemplate
- contentType
- headers
アラームに記載されていないプロパティは、次の通りです。
- sendSni
- sendDuplicate
これらのプロパティは、falseに設定されます。
Sigfoxクラウドにデバイスが追加されない
Things Cloudにはデバイス登録できたが、Sigfoxクラウドにデバイスが追加されないという場合、下記のアラームが作成されていないかご確認ください。
上記画像のアラームが作成されている場合、お使いのデバイスは prototype としてのみ登録可能なデバイスです。通常のデバイス登録手順ではお使いいただけませんが、以下の手順でデバイス登録することができます。
ただし、prototype デバイスについては、Things Cloudではサポート対象外となります。
(1) Sigfoxクラウドに該当デバイスで使用するデバイスタイプを作成する
該当デバイスに紐付けるデバイスタイプがすでにSigfoxクラウドに存在する場合は、この手順をスキップしてください。
入力項目 | 設定値 | 備考 |
---|---|---|
Name | デバイスタイプの名称です。次の命名規則で設定してください。 c8y_{テナントid}_{デバイスタイプ名} 例)c8y_testTenant_SensitDiscovery |
{デバイスタイプ名}は、Things Cloudで紐付けるデバイスタイプ名と同じである必要があります。 |
Description | 特に何も記載する必要はありません。 | |
Keep-alive (in minutes) | 0 | |
Subscription automatic renewal | 有効 | |
Contract | 使用する契約情報を選択してください。 | |
Alert email | 特に何も記載する必要はありません。 | |
Downlink mode | callback | |
Downlink data in hexa | デフォルト値から変更しないでください。 | |
Payload parsing | Display in ASCII |
(2) 作成したデバイスタイプにcallbackを登録する
Custom callbackから、次の4つのcallbackを設定します。
(2)-1 DATA callbacks
入力項目 | 設定値 | 備考 |
---|---|---|
Type | DATA, BIDIR | |
Channel | URL | |
Send duplicate | 無効 | |
Custom payload config | 特に何も記載する必要はありません。 | |
Url pattern | 次の値を設定してください。 https://{テナントドメイン}/service/sigfox-agent/sigfoxDataCallback 例)https://sigfoxtest.je1. thingscloud.ntt.com/service/ sigfox-agent/sigfoxDataCallback |
|
Use HTTP Method | POST | 一度プルダウンを設定後、もう一度プルダウンをクリックすると入力フォームが表示されます。 |
Send SNI | 無効 | |
Headers | Authorizationヘッダーを追加します。以下の値をBase64エンコードした値を設定してください。 {テナントid}/sigfox_cumulocity_agent_user:sigfox_pass_{テナントid} 設定例)Basic dDAwMDAwMDAwL3Np Z2ZveF9jdW11bG9j aXR5X2FnZW50X3Vz ZXI6c2lnZm94X3Bh c3NfdDAwMDAwMDAw ※base64文字列は表示上スペースを入れていますが、実際の設定ではスペースを入れないで下さい |
テナントidとテナント名は異なるパラメータです。ご注意ください。 |
Content type | application/json | |
Body | {“device”:"{device}", “time”:"{time}", “snr”:"{snr}", “station”:"{station}", “data”:"{data}", “avgSignal”:"{avgSnr}", “lat”:"{lat}", “lng”:"{lng}", “rssi”:"{rssi}", “seqNumber”:"{seqNumber}", “ack”:"{ack}"} |
(2)-2 SERVICE callbacks - ACKNOWLEDGE
入力項目 | 設定値 | 備考 |
---|---|---|
Type | SERVICE, ACKNOWLEDGE | |
Channel | URL | |
Send duplicate | 無効 | |
Url pattern | 次の値を設定してください。 https://{テナントドメイン}/service/sigfox-agent/sigfoxServiceAcknowledgeCallback 例)https://sigfoxtest.je1. thingscloud.ntt.com/service/ sigfox-agent/sigfoxServiceAcknowledgeCallback |
|
Use HTTP Method | POST | 一度プルダウンを設定後、もう一度プルダウンをクリックすると入力フォームが表示されます。 |
Send SNI | 無効 | |
Headers | Authorizationヘッダーを追加します。以下の値をBase64エンコードした値を設定してください。 {テナントid}/sigfox_cumulocity_agent_user:sigfox_pass_{テナントid} 設定例)Basic dDAwMDAwMDAwL3Np Z2ZveF9jdW11bG9j aXR5X2FnZW50X3Vz ZXI6c2lnZm94X3Bh c3NfdDAwMDAwMDAw ※base64文字列は表示上スペースを入れていますが、実際の設定ではスペースを入れないで下さい |
テナントidとテナント名は異なるパラメータです。ご注意ください。 |
Content type | application/json | |
Body | {“device”:"{device}", “time”:"{time}", “duplicate”:"{duplicate}", “avgSnr”:"{avgSnr}", “station”:"{station}", “lat”:"{lat}", “lng”:"{lng}", “infoCode”:"{infoCode}", “infoMessage”:"{infoMessage}", “downlinkAck”:"{downlinkAck}", “downlinkOverusage”:"{downlinkAck}"} |
(2)-3 SERVICE callbacks - STATUS
入力項目 | 設定値 | 備考 |
---|---|---|
Type | SERVICE, STATUS | |
Channel | URL | |
Send duplicate | 無効 | |
Url pattern | 次の値を設定してください。 https://{テナントドメイン}/service/sigfox-agent/sigfoxServiceStatusCallback 例)https://sigfoxtest.je1. thingscloud.ntt.com/service/ sigfox-agent/sigfoxServiceStatusCallback |
|
Use HTTP Method | POST | 一度プルダウンを設定後、もう一度プルダウンをクリックすると入力フォームが表示されます。 |
Send SNI | 無効 | |
Headers | Authorizationヘッダーを追加します。以下の値をBase64エンコードした値を設定してください。 {テナントid}/sigfox_cumulocity_agent_user:sigfox_pass_{テナントid} 設定例)Basic dDAwMDAwMDAwL3Np Z2ZveF9jdW11bG9j aXR5X2FnZW50X3Vz ZXI6c2lnZm94X3Bh c3NfdDAwMDAwMDAw ※base64文字列は表示上スペースを入れていますが、実際の設定ではスペースを入れないで下さい |
テナントidとテナント名は異なるパラメータです。ご注意ください。 |
Content type | application/json | |
Body | {“device”:"{device}", “time”:"{time}", “duplicate”:"{duplicate}", “avgSnr”:"{avgSnr}", “station”:"{station}", “lat”:"{lat}", “lng”:"{lng}", “batt”:"{batt}", “temp”:"{temp}", “seqNumber”:"{seqNumber}"} |
(2)-4 ERROR callbacks
入力項目 | 設定値 | 備考 |
---|---|---|
Type | ERROR | |
Channel | URL | |
Url pattern | 次の値を設定してください。 https://{テナントドメイン}/service/sigfox-agent/sigfoxErrorCallback 例)https://sigfoxtest.je1. thingscloud.ntt.com/service/ sigfox-agent/sigfoxErrorCallback |
|
Use HTTP Method | POST | 一度プルダウンを設定後、もう一度プルダウンをクリックすると入力フォームが表示されます。 |
Send SNI | 無効 | |
Headers | Authorizationヘッダーを追加します。以下の値をBase64エンコードした値を設定してください。 {テナントid}/sigfox_cumulocity_agent_user:sigfox_pass_{テナントid} 設定例)Basic dDAwMDAwMDAwL3Np Z2ZveF9jdW11bG9j aXR5X2FnZW50X3Vz ZXI6c2lnZm94X3Bh c3NfdDAwMDAwMDAw ※base64文字列は表示上スペースを入れていますが、実際の設定ではスペースを入れないで下さい |
テナントidとテナント名は異なるパラメータです。ご注意ください。 |
Content type | application/json | |
Body | {“device”:"{device}", “time”:"{time}", “info”:"{info}", “severity”:"{severity}"} |
(3) Sigfoxクラウドに prototype としてデバイス登録する
Sigfoxクラウドにデバイスを登録します。
入力項目 | 設定値 |
---|---|
Identifier (hex!) | デバイスのIDを設定してください。 |
Name | デバイスの名称です。次の命名規則で設定してください。 c8y_{テナントid}_{デバイスタイプ名}00{デバイスid} 例)c8y_testTenant_SensitDiscovery00B43F14 |
PAC | デバイスの移植認証コードを設定してください。 |
End product certificate | 何も入力せず、“Where can I find the end product certificate?” というリンクを押下し、表示されたチェックボックス(Register as a prototype (remaining prototypes which can be registered in your group: 999))にチェックを入れてください。 |
Type | 作成したデバイスタイプを選択してください。 |
Lat (-90° to +90°) | 必要であれば任意の値を設定してください。 |
Lng (-180° to +180°) | 必要であれば任意の値を設定してください。 |
Subscription automatic renewal | 有効 |
Activable | 有効 |
(4) Things Cloudにデバイスを登録する
Things Cloudにデバイスを登録します。デバイス登録時、必ずSigfoxクラウドに作成したデバイスタイプと同じ名前のデバイスタイプを選択してください。
また、“製品の証明書キー"には “P_100” などダミー値を設定してください。
登録が完了すると、以下のようなアラームが作成されますが、問題ありません。
以上でデバイス登録は完了です。
デバイスからアップロードされたデータが、Things Cloudに反映されていることをご確認ください。
デバイスの登録設定ができない
次のようなエラーメッセージが出る場合①
Sigfoxプロバイダ接続設定をしていない または Sigfoxプロバイダ接続設定で入力したパスワードが誤っている可能性があります。設定内容をご確認ください。
次のようなエラーメッセージが出る場合②
何らかの理由でサーバへの接続に失敗しています。少し時間をおいてから、もう一度お試しください。
次のようなエラーメッセージが出る場合③
同一テナントで登録済みのデバイスで使用したデバイスタイプを使って、別のSigfox契約を選択しデバイス登録をしている可能性があります。登録フォームでの設定値をご確認ください。
デバイスからデータがアップロードされない
該当のデバイスに、アラームが作成されていないかご確認ください。
上記のアラームが作成されている場合、別テナントに既に同デバイスが登録されている可能性があります。
Sigfoxクラウド上のデバイスタイプは、先に登録したテナントに紐づくデバイスタイプが登録されているため、後から登録したテナントにデータをアップロードしたい場合は、以下の手順でSigfoxクラウド上のデバイスタイプにcallbackを作成し、デバイスに紐付いているデバイスタイプを変更する必要があります。
(1) Sigfoxクラウドのデバイスタイプにcallbackを設定する
Sigfoxクラウドに作成されたデバイスタイプを見つけ、callbacks画面を表示します。
デバイスタイプの命名規則は、c8y_{テナントid}_{デバイスタイプ名}
です。
1-(2) 作成したデバイスタイプにcallbackを登録するの手順を参考にして、callbackを設定します。
(2) デバイスタイプを変更する
該当デバイスのInformation画面を表示し、Transferを押下します。
New Device Typeに先ほど作成したデバイスタイプを選択します。
必要な操作は以上です。
デバイスからアップロードされたデータが、意図したテナントにアップロードされていることをご確認ください。
デバイスタイプを変更したい
一度登録したデバイスのデバイスタイプは、GUIからは変更できません。(デバイス情報画面から手動で書き換えても、反映されません。)
APIで直接managedObjectを更新するか、一度デバイスを削除して登録し直す必要があります。
API経由でデバイスタイプを変更する
デバイスタイプは、該当デバイスのmanagedObject.c8y_LpwanDevice.typeで設定されているので、変更後のデバイスタイプのmanagedObjectIdを設定し、managedObjectを更新することでデバイスタイプを変更できます。以下のbodyを参考にして、エンドポイントにPUTリクエストを投げることで更新できます。
-
エンドポイント
- /inventory/managedObjects/{デバイスのmanagedObjectId}
-
body
{ "c8y_LpwanDevice": { "provisioned": <<ManagedObjectの現在値を参照>>, "errorMessage": <<ManagedObjectの現在値を参照>>, "type": "inventory/managedObjects/<<変更したいデバイスタイプのmanagedObjectId>>" } }
Sigfoxプロバイダの接続設定ができない
Sigfox Cloud の認証情報(ログイン/パスワード/親グループ ID)の組み合わせに誤りがある可能性があります。入力内容をご確認ください。