概要
Things Cloudは、ActilityのThingPark Wireless、EnterpriseまたはCommunityエディションを通じてLoRaデバイスと接続できます。以下のことが可能です。
- Things Cloudのデバイス管理アプリケーションを使用して、LoRa デバイスのプロビジョニングとプロビジョニング解除を簡単に行うことができます。ThingParkのユーザーインターフェースでの操作は不要です。
- Webベースのユーザーインターフェースを使用して、アップストリームのペイロードパケットをデコードします。
- Things Cloud のイベントを通じて、デバイスの生データをデバッグおよび後続処理を行います。
- Things Cloud のオペレーションによって、ダウンストリーム データをデバイスに送信します。
- LoRaデバイスの接続監視、デバイス管理、ダッシュボードによるデータ可視化、リアルタイム分析など、既存のThings Cloudの機能を活用できます。
Things CloudのActility LoRa統合の概要を、以下の図に示します。
次のセクションでは、以下の方法について説明します。
- Things CloudでのThingParkアカウントの認証情報を設定
- すべてのデバイスに対して、デバイスプロトコルの作成
- Things Cloudを使用して、デバイスの登録とActilityペイロードの可視化
- ThingParkのデバイスのプロビジョニング解除
- デバイスへのオペレーション操作
さらに、以下の詳細情報があります。
- Things CloudのThingPark API可用性の監視
- アップリンクのメッセージ処理中に作成されるメジャーメントとイベント
- 警告メッセージのトラブルシューティング
複数のThingParkアカウント接続の設定
LoRa デバイスを Things Cloud で使用する前に、管理アプリケーションで ThingPark アカウントの詳細を構成する必要があります。複数の Actility 接続を作成、編集、削除、または更新するには、Settings メニューの Connectivity タブをクリックします。
新規接続を追加するには
初めてConnectivityを選択すると、接続を作成するよう求められます。Add Connectionをクリックします。
以下の情報を入力します。
- 名前: 作成されるActility接続の名前
- 説明: 作成されるActility接続の説明
- Actility ThingPark URL: Actility ThingPark URLは、使用するActility ThingParkアカウントのタイプ(ワイヤレス、コミュニティ、エンタープライズエディションなど)に応じて変更される場合があります。
- プロファイルID: ThingParkアカウントと環境に依存します。例えば、Dev1 ThingPark環境を使用している場合、プロファイルIDは「dev1-api」となります。複数のテナントが同じプロファイルIDを持つことができます。
- アプリケーションサーバID: ThingParkプラットフォームとエージェント間のTLSセキュリティに使用されるアプリケーションサーバーIDです。これは任意のフィールドです。セキュリティを無効にするには空のままの状態にします。有効にした場合、エージェントはトークンを生成し、すべてのアップリンクメッセージとダウンリンクメッセージに使用します。
- アプリケーションサーバーキー: ThingParkプラットフォームとエージェント間のアップリンクおよびダウンリンク通信のTLSセキュリティに使用されるアプリケーションサーバーの秘密鍵。値は16進数で16バイトで指定します。これは任意のフィールドです。セキュリティを無効にするには空の状態にします。有効にした場合、エージェントはトークンを生成し、すべてのアップリンクとダウンリンクのメッセージに使用します。
- 管理APIバージョン: ThingPark admin API が使用するバージョン。デフォルトでは “latest “に設定されています。
- コアAPIバージョン: ThingPark コア API が使用するバージョン。デフォルトでは “latest “に設定されています。
- ユーザー名: ThingParkアカウントのユーザー名
- パスワード: ThingParkアカウントのパスワード
- 接続タイプ: 使用されるThingParkアカウントタイプ。エンタープライズまたはワイヤレスのいずれかになります。
保存をクリックします。正しい情報を入力すると、「Connection created(接続が作成されました)」というメッセージが表示されます。
他の接続を追加するには、Add Connectionをクリックし、上記の手順に従ってください。
接続を更新するには
更新する接続を選択し、編集を行い、接続を保存します。
接続に関連するデバイスがある場合、「<LNS接続名>が<デバイス数>に関連付けられているため、<LNS接続名>のLNS接続を更新できません。」というエラーメッセージが表示されます。「service/<agent-context-path>/lns-connection/<lns-connection-name>/device
」のリンクをクリックして、関連するデバイスの詳細が記載されたファイルをダウンロードしてください。
接続を削除するには
削除する接続を選択し、Deleteをクリックします。
接続に関連するデバイスがある場合、 「<LNS接続名>のLNS接続は、<デバイス数>に関連付けられているため、削除できません。」というエラーメッセージが表示されます。「/service/<agent-context-path>/lns-connection/<lns-connection-name>/device
」 のリンクをクリックして、関連するデバイスの詳細が記載されたファイルをダウンロードしてください。
デバイスプロトコルの作成
LoRaデバイスからのデータを処理するために、Things Cloudはデバイスのペイロード形式を理解する必要があります。ペイロードデータをThings Cloudのデータにマッピングするには、LoRaデバイスプロトコルを作成します。
デバイス登録の際に、デバイスプロトコルを関連付けることができます。すると、16進数のペイロードを持つデバイスの受信アップリンクコールバックは、デバイスプロトコルに設定したものにマッピングされます。
デバイス登録時に割り当てられたデバイスプロトコルは、デバイス詳細ページの LPWAN タブから変更できます。
デバイスプロトコルを作成するには、デバイス管理アプリケーションに移動し、ナビゲータのデバイスタイプメニューでデバイスプロトコルを選択します。既存のデバイスプロトコルをインポートするか、新規に作成するか、LPWANカスタムコーデックマイクロサービスによって作成されたデバイスプロトコルを使用することができます。
事前定義されたデバイスプロトコルのインポート
デバイスプロトコルページで、インポートをクリックします。
「LoRaWAN Demonstrator」などの事前定義されたデバイスタイプを選択するか、ファイルからアップロードします。インポートをクリックします。
また、デバイスプロトコルをファイルから読み込んでインポートすることもできます。
新しいデバイスプロトコルの作成
デバイスプロトコルページで、上部メニューバーのデバイスプロトコルを追加をクリックすると、以下のウィンドウが表示されます。
デバイスプロトコルのタイプとしてLoRaを選択し、名前を指定して作成をクリックします。
メッセージタイプで、メッセージのタイプを指定します。LoRaデバイスは、タイプごとにエンコーディングでさまざまなタイプのメッセージを送信できます。
ソースドロップダウンボックスで、メッセージタイプのエンコード方法を選択します。
- FPort:メッセージのFPortパラメータを見ることで、メッセージタイプを決定できます。
- Payload:メッセージのペイロードのサブセットを見ることで、メッセージタイプを決定できます。
次のペイロード構造例では、最初のバイトがメッセージタイプのソースを示しています(赤枠の箇所)。
ユーザーインターフェースでは、このタイプのメッセージタイプソース情報を、次のように入力できます。開始ビットフィールドには、ペイロード内のメッセージタイプ情報の開始位置を示し、ビット数フィールドには、この情報の長さを示します(例:開始ビット=「0」、ビット数=「8」)。
値を追加をクリックすると、値の構成が作成されます。
次のウィンドウで、この例に示すように関連する値を構成します。
新しい値 ウィンドウ part 1
新しい値 ウィンドウ part 2
値の構成は、メッセージタイプのペイロードにある値をThings Cloudのデータにマッピングします。
メッセージタイプでは、デバイスのメッセージ仕様に従ってメッセージIDを構成し、Things Cloudデータにマッピングします。メッセージ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」を入力し、経度と緯度のそれぞれに新しい値を作成します。
新しい値 ウィンドウ 緯度
新しい値 ウィンドウ 経度
結果は次のようになります。
カスタムデコード/エンコードの使用
Actilityエージェントは、カスタムマイクロサービスをプラグインすることで、デコード/エンコード機能もサポートしています。
LoRaデバイスの登録
LoRa デバイスを Things Cloud に登録するには、デバイス管理アプリケーションの Devices > Registration を開き、右上の Register device をクリックし、ドロップダウンから Single device registration > Actility LoRa を選択します。
Things Cloudは、LoRaネットワークに接続するための最も安全な方法であるOTAA(Over-the-Air Activation)によるLoRaデバイスプロビジョニングを完全にサポートしています。 Activation by Personalization(ABP)を使用する必要がある場合は、ABPによるLoRaデバイス登録 セクションをご覧ください。
次のウィンドウで、必要な情報を入力してください。
- 接続: テナント内のすべての構成済みActility接続を一覧表示します。次のデバイスプロファイルと接続プランオプションは、選択したActility接続に基づいて取得されます。
- デバイスプロファイル:ドロップダウンリストから、登録するデバイスに一致するActility Thingparkデバイスプロファイルを選択します。 Actility ThingParkデバイスプロファイルは、複数のRFプロファイルを管理し、異なるLoRaWANクラスの互換性(A、B、C)を保証し、サードパーティアプリケーションを簡単に統合できるようにアプリケーションペイロードをデコードすることができます。
- デバイスタイプ: ドロップダウンリストから適切なデバイスプロトコルを選択します。デバイスプロトコルの作成方法の詳細についてはデバイスプロトコルの作成をご覧ください。
- デバイスEUI: デバイスの一意な識別子です。16文字(8バイト)長の16進数です。デバイス本体で確認できます。
- アプリケーションEUI: IEEE EUI64アドレス空間のグローバルアプリケーションIDで、デバイスのアプリケーションプロバイダーを一意に識別します。16文字(8バイト)長の16進数です。1つのテナント対して存在できるアプリケーションEUIは1つだけですが、複数のテナントが同じアプリケーションEUIを持つことは可能です。
- アプリケーションキー: アプリケーション所有者からデバイスに割り当てられ、暗号化を行うデバイスに固有のAES-128アプリケーション・キーです。アプリケーション・キーは32文字(16バイト)長の16進数です。JOIN通信です。このキーは、デバイス本体で確認できます。
- 接続プラン: ドロップダウンリストから適切な接続プランを選択します。
登録をクリックすると、デバイス登録リクエストが送信され、デバイスを作成します。
デバイスが本当に接続されているかどうかは、実際にイベントが受信されることで確認できます。これを行うには、デバイスをクリックして イベントタブを表示します。このデバイスに関連するすべてのイベントがここに一覧表示されます。
プロビジョニングステータスは、デバイスの 情報 タブでデバイスデータ に表示されます。
接続されているデバイスの表示と管理の詳細については、ユーザーガイドのデバイス管理もご覧ください。
LNS接続から他のLNS接続にデバイスを移行するには、デバイスを再登録する必要があります。 デバイスのLPWANタブに移動します。Provider connectionドロップダウンをクリックします。 LNS 接続から他の接続にデバイスを移行するには、デバイスを再登録する必要がある旨のプロンプトが表示されます。 Re-Registerボタンをクリックします。 ユーザは、上記のステップに従い、任意のLNS接続を選択することで、再登録を行うデバイス登録ページに遷移します。
LoRaデバイスの登録プロセス
上記ワークフローに基づいて、デバイスが作成されます。
まず、デバイスがすでに存在するかどうかを確認します。ThingParkアカウントに同じデバイスEUIを持つデバイスが存在しない場合、デバイスはまずThingParkプラットフォームでプロビジョニングされ、次に、 ThingPark プラットフォーム内のデバイスへのリンクを使用して、 Things Cloudプラットフォーム上に作成されます。デバイスがThingParkアカウントに存在する場合、アプリケーションEUI(OTAAアクティベーション)とデバイスプロファイルに基づいて、これらのデバイスを比較する検証が適用されます。検証が成功した場合、デバイスはThings Cloudにのみ作成され、ThingParkプラットフォームのデバイスへのリンクが作成されます。検証が失敗した場合、失敗メッセージが表示され(トラブルシューティング > デバイス登録参照)、デバイスはThings Cloudに作成されません。
ABPによるLoRaデバイス登録
パーソナライズによるデバイスのアクティブ化は推奨されておらず、Things Cloud LoRaデバイス登録では完全にはサポートされていません。
ただし、このアクティベーションタイプのデバイスをThings Cloudに作成し、デバイスへのオペレーション送信、デバイスのプロビジョニング解除、カスタムデバイスプロトコル構成によるLoRaデバイスプロトコルタイプの設定などのLoRa機能を使用したい場合は、まずThingParkプラットフォームでデバイスをプロビジョニングする必要があります。さらに、Destination https://iottf.je1.thingscloud.ntt.com:50000
を「Third Party AS (HTTP)」として使用し、Things Cloud向けの「AS Routing Profile」を作成し、デバイスに手動で割り当てる必要があります。その後、LoRa デバイス登録を使用して、このデバイスを登録できます。この場合、LoRa デバイス登録のアプリケーション・キーフィールドは無効です。
一般的なデバイス登録による LoRa デバイス作成の制限事項
LoRaデバイスの一般的なデバイス登録はサポート終了となりました。
一般的なデバイス登録プロセスで、 Things Cloud で作成された既存のLoRaデバイスには制限があります。これらのデバイスでは、デバイスへのオペレーション送信、デバイスのプロビジョニング解除、および、カスタムデバイスプロトコル構成によるLoRaデバイスプロトコルタイプを設定できません。
LoRa機能を最大限に活用するには、LoRa デバイス登録を使用して、これらのデバイスを削除し、再登録することをお勧めします。
LoRaデバイスのプロビジョニング解除
ThingParkプラットフォームで、LoRaデバイスのプロビジョンを解除することができます。これは、デバイスがネットワークに接続されなくなることを意味します。履歴データはThings Cloudで利用可能ですが、デバイスはThingParkで削除されます。
デバイスをデプロイするには、デバイス管理アプリケーションのすべてのデバイスの下にあるそれぞれのデバイスに移動します。右上の参照をクリックし、プロビジョン解除デバイスを選択します。
プロビジョニング解除を確認すると、ThingParkでデバイスのプロビジョニング解除されます。
再度デバイスをプロビジョニングするには、デバイスを削除し、LoRaデバイス登録で再登録する必要があります。
オペレーション送信
LoRaデバイスが16進数コマンドの受信をサポートしている場合、シェルオペレーションでコマンドを送信することができます。これらのコマンドは、シリアルモニターコマンドではないことに注意してください。 オペレーションを送信するには、デバイス管理アプリケーションのすべてのデバイスから、オペレーションを送信したいデバイスに移動します。シェルタブに切り替えます。
次のスクリーンショットでは、デバイスプロトコルの事前定義されたコマンドとその形式例をいくつか示します。
コマンドフィールドにシェルコマンドを入力するか、定義済みのコマンドを表示/編集します。
ポートを定義せずにコマンドを入力すると、デバイスのデフォルトの対象ポート(ポート1です)に送信されます。コマンドを入力してポートを定義すると(command:port形式)、デフォルトのポートではなく、指定された対象ポートに送信されます。
実行をクリックします。オペレーションをデバイスに送信するよう Actility に通知されます。実際にデバイスに送信するタイミングは、Actility ThingPark - デバイス間で決定されます。
オペレーションがThingParkプラットフォームに正常に送信されると、オペレーションのステータスは成功に設定されます。コマンドの検証、または ThingPark プラットフォームに送信された後に問題が発生した場合、オペレーションのステータスは FAILED に設定されます。
ThingPark API 可用性の監視
ThingPark APIを監視し、到達できない場合、この機能を使用してサブスクライブしているすべてのテナントに通知するアラームが作成されます。アラームは、ThingPark APIが再び到達可能になった直後に解除されます。
アップリンクメッセージ処理
アップリンクメッセージを受信すると、Things Cloudプラットフォームは以下のメジャーメントとイベントを作成し、対応するデバイス管理オブジェクトを更新します。
- 未処理データ - 未処理データで
c8y_ActilityUplinkRequest
タイプのイベントが作成されます。 - 位置 - デバイス管理オブジェクトの
c8y_Position
フラグメントが更新され、デバイスの緯度、経度、高度、精度情報を取得します。また、位置情報を利用してイベントが作成されます。 - 拡散率 - デバイス管理オブジェクトの
c8y_SpreadingFactor
フラグメントが更新され、デバイスの拡散率を取得します。 - 信号強度 - デバイス信号強度の RSSI 値と SNR 値を使用して、メジャーメントが作成されます。
LoRaWAN接続機能 操作マニュアル
1. はじめに
本書では、Things Cloud LoRaWAN接続機能に関する操作について説明します。
LoRaWAN接続機能では、LoRaWAN事業者の提供する Actility ThingPark と Things Cloud を接続するインターフェースを提供します。このインターフェースを用いることにより、LoRaWAN 対応デバイスを Things Cloud のデバイスとして登録し、データを可視化することができます。
一度 Things Cloud への接続設定を行えば、以後 ThingPark へのデバイス登録により Things Cloud に簡単に LoRaWAN 対応デバイスを接続することができます。
本書に含まれる内容は以下の通りです。
LoRaWAN対応デバイスを準備し、Things Cloud に接続するまでの一連の手順を記載しています。
2.Actilityプロバイダー登録 | Actility ThingParkのアカウント情報をThings Cloudに登録します。 | ThingPark-Things Cloud間通信の認証に必要な設定です。 (テナント毎に設定が必要です。) |
3.デバイスプロトコル登録 | Things Cloud にデバイスプロトコル(デバイスがアップロードするフォーマットを定義したもの)を登録します。 | 新しいデバイスプロトコルのデバイスを接続する際に行います。 |
4.デバイス登録 | デバイスをThings Cloud へLoRaデバイスとして登録します。 | LoRaデバイスの登録によりThingParkにも自動的にデバイス登録が行われます。 |
5.デバイスデータの確認 | LoRaWAN対応デバイスからのデータが Things Cloud に接続されたかを確認します。 | デバイス接続後、いつでも確認できます。 |
6.デバイスのデプロビジョニング | ThingParkからデバイスを削除します。 | デバイスはネットワークに接続されなくなり、ThingPark上で削除されますが、Things Cloud上の履歴は残ります。Things Cloudからもデバイスを削除したい場合には、別途デバイスを削除する動作が必要です。 |
7.デバイスの操作 | デバイスにコマンドを実行させるためのオペレーションを送信します。 | デバイス制御のコマンドが用意されているデバイスのみに対応しています。 |
8.サブテナントでのLoRaWAN接続機能利用 | サブテナントにおいてLoRaWAN接続機能を利用するために、LoRaアプリケーションをサブスクライブします。 | LPWA接続設定済の親テナントからサブテナントを作成し、サブテナントでLoRaWAN接続機能を利用する場合には、サブテナントに対してLoRaアプリケーションを追加します。 |
9.FAQと利用上の注意事項 | LoRaWAN接続機能(LoRaWAN接続)利用時のFAQおよび注意事項を記載しています。 | |
付録1 | LoRaWAN Network Server と Things Cloud 間の通信仕様について記載しています。 | |
付録2 | デバイスプロトコルの設定例 | 実デバイスから送信されるデータフォーマットから設定したデバイスプロトコルの設定内容を例として掲載しています。 |
付録3 | ABP方式のデバイス登録手順 | デバイスアクティベーション方式がABPの場合の登録手順を掲載しています。なお、デフォルトの方式はOTAAです。Things CloudではOTAAを推奨しています。 |
2. Actilityプロバイダー登録
「管理」画面を表示し、左側のナビゲータから「接続」を選択します。 「接続」画面の「LoRaプロバイダの設定」タブを選択した状態で表示される、下記の入力項目を設定します。
プロファイルID | LoRaプロバイダー(ThingPark)を識別するID | ThingParkアカウントと環境によって異なります。例えば、NTTネオメイトのThingPark環境(https://ntt-neo.thingpark.com )を使用している場合、profile IDはntt-neo-api になります。ntt-neo はThingPark環境依存、-api は固定値です。 |
ユーザ名 | ThingParkアカウントのユーザ名 | 1つのテナントに登録できるThingParkアカウントは1つです。同一のThingParkアカウントを複数のテナントで使用することは出来ません。もし複数テナントへ同一のThingParkアカウントを登録した場合は、先に登録していたテナントの設定が無効になります。 |
パスワード | ThingParkアカウントのパスワード | |
アプリケーションEUI | デバイスのアプリケーションプロバイダーを一意に識別するIEEE EUI64アドレス空間内のグローバルアプリケーションID | 16桁の英数字。1テナントにつきアプリケーションEUIは1つしか存在できません。 |
入力後、「資格情報を保存」ボタンを押します。
3. デバイスプロトコル登録
3.1. デバイスプロトコルを新規に作成する場合
「デバイス管理」画面を表示し、左側のナビゲータから「デバイスタイプ」>「デバイスプロトコル」を選択します。 デバイスプロトコルの画面で「デバイスプロトコルを追加」を選択します。
デバイスプロトコルを選択するウィンドウが表示されるので、「LoRa」を選択し、名前を設定したら「作成」ボタンを押します。
入力項目が現れるので、それらに入力します。 なお、付録2でデバイスプロトコルの設定例を掲載しています。
説明 | デバイスプロトコルの説明 | デバイスプロトコルに関して説明事項があれば入力する。 |
ソース | メッセージのタイプが決定されるソース | FPortもしくはPayloadを選択し、Payloadを選択した場合はメッセージ内の位置(開始ビットとビット長)を入力する。 |
値 | デバイスメッセージのデコードロジック定義 | 追加を押下し、デバイスメッセージ仕様を元に以下を入力する。 ・メッセージID: メッセージタイプを識別する数値 ・名前: 測定対象などの名前 ・表示カテゴリ: 測定対象などのカテゴリ ・開始ビット/ビット数: データ位置の指定 ・乗数: データに乗算する場合に設定する値(デフォルト値は1) ・オフセット: データに加算もしくは減算する場合に設定する値(デフォルト値は0) ・単位: データの単位(任意入力) ・オプション: データ形式に応じて選択 ・機能: 実行するアクションを選択 (選択した機能に応じタイプ/シリーズ/テキストなどを入力) |
入力後、「保存」ボタンを押します。
保存後、デバイスプロトコルの画面上に以下のように表示されます。
3.2. デバイスプロトコルをインポートする場合
デバイスプロトコルをファイル(JSON形式)から取り込んで登録(インポート)することもできます。
JSON形式のデバイスプロトコル情報は、ThingsCloudで提供しているものが利用できる他、テナントに登録済みのデバイスプロトコルがあれば、その情報を取得(エクスポート)して利用することもできます。
インポート
ThingsCloudで提供しているファイルを利用する場合は、「デバイスプロトコル」画面の「インポート」を選択し、「デバイスプロトコルのインポート」画面を表示します。
「事前定義された項目から選択」にあるデバイスプロトコルの中から適切なものを探し出し、任意の名前を設定して「インポート」を押下します。
「事前定義された項目から選択」にあるデバイスプロトコルは、右側にあるボタンを押してその情報をダウンロードすることもできます。
ファイルを用意
jsonファイルで定義したデバイスプロトコルを取込む場合は、「デバイスデータベース」画面の「インポート」を選択し、「デバイスプロトコルのインポート」画面を表示します。
ファイルを指定し、必要であれば名前を変更します。 「インポート」ボタンを押して、登録します。
注記:テナントに登録済みのデバイスプロトコルからファイルを取得する場合は、「デバイスデータベース」画面から取得します。 右側にあるボタンを押して情報を取得(エクスポート)します。
4. デバイス登録
Things Cloud にログインし、デバイス管理アプリケーション左のメニュー「登録」を押下し、「デバイスを登録」ボタンを押下します。
「LoRa」を押下します。
表示された入力フォームに必要事項を設定します。
デバイスプロファイル | デバイスの種類(LoRa Network Serverにおける設定値に対応) | ThingPark上のプロファイルと同じ項目が表示されます。 |
デバイスプロトコル | 項目4で設定したデバイスプロトコルを選択 | 登録したいデバイスと対応するものを選択してください。 |
デバイスEUI | デバイスを一意に識別する値 | 一意な16桁の値になるように設定します。通常、工場出荷時にデバイスに設定されています。 |
アプリケーションキー | デバイスに固有のAES-128アプリケーションキー | アプリケーション所有者によってデバイスに割り当てられ、JOIN通信を暗号化します。通常、工場出荷時にデバイスに記載されています。 |
接続プラン | LoRa Network Serverと接続するためのプラン | ThingParkのConnctivity plansに対応しています。プルダウンから適切なものを選択します。 |
入力後、「次へ」ボタンを押します。正常に登録されると、以下のように表示されます。
デバイス一覧からも、登録したデバイスが確認できるようになります。
デバイス登録後、ThingParkへ自動的にデバイス登録が行われます。ThingParkへデバイスが登録されることをデバイスのプロビジョニングと呼びます。
多くのデバイスでは ThingPark 上の設定として デバイスEUI や鍵情報などの登録を行い、購入後電源を入れることで LoRaWAN に接続することができます。詳細はデバイス製造メーカーのマニュアル、および LoRaWAN 事業者のマニュアルなどをご確認ください。
LoRaWAN デバイスから、データ送信を開始してください。
5. デバイスデータの確認
デバイスからのデータは、イベントとして Things Cloud に格納されます。 デバイス管理アプリケーションから、該当デバイスを選び、計測値やイベントを見ることでデータの到着を確認することができます。
イベントには LoRaWAN の payload がヘキサ文字列として “c8y_ActilityUplinkRequest.payloadHex” プロパティに格納されます。
デバイスデータベースでのデバイスプロトコル設定に関わらず、以下のデータはLoRaデバイスからのデータアップロード時に共通して作成されます。
- event:c8y_ActilityUplinkRequest
- event:c8y_Position
- measurement:c8y_SignalStrength
6. デバイスのデプロビジョニング
ThingParkプラットフォーム上のLoRaデバイスのデプロビジョニング(ThingParkからのデバイス削除)を行うことができます。デプロビジョニングにより、デバイスはネットワークに接続されなくなり、ThingPark上でデバイスは削除されますが、Things Cloud上の履歴は残ります。デプロビジョニングしたデバイスを再度プロビジョニングすることは出来ません。
デバイス管理>デバイス一覧から該当デバイスを選択してください。
注記:デバイス選択時に右側に出る"デバイスを削除"というアイコンを押すと、デバイスの履歴全てが削除されてしまうので、誤って押さないようにご注意ください。
次に"もっと見る"をクリックし、“プロビジョン解除デバイス"を選択してください。
確認メッセージが表示されるので、「OK」ボタンを押します。
デバイスデプロビジョニング後も、該当のデバイスはデバイス一覧から確認できます。 Things Cloudからもデバイスを削除したい場合は、デバイス一覧から削除ボタンを押下することで削除できます。(デバイスをThings Cloudから削除した場合は過去のデータも確認できなくなります。)
注記:デバイスを削除しない限り、デプロビジョニング状態でも従量課金デバイス数の対象となります。
デバイス画面でデバイスデータの準備済みフラグがfalseになっていればデプロビジョニング状態と確認できます。
ThingPark の画面では、該当のデバイスが削除されるため表示されなくなります。
注記:ThingParkの画面はお使いの環境やバージョンによって異なる場合があります。
7. デバイスの操作
downlinkによってオペレーションを送信するには、デバイス管理アプリケーションを開き、オペレーションの送信先となる該当デバイスを選択します。次に"シェル"タブをクリックします。
シェルコマンドを入力するか、または">_Command"項目で定義済みのコマンドを表示/編集します。
ポートを定義せずにコマンドを入力すると、デバイスのデフォルトのポート(“1"です)に送信されます。コマンドを入力してポートを定義(“command:port"形式)すると、指定されたポートへ送信されます。
“実行"をクリックすると、オペレーションがデバイスへ送信されます。送信のタイミングは ThingPark Actility 側で決定します。ThingParkへの送信が成功すると、以下のように成功とレスポンスが表示されます。
注記:ThingParkからのレスポンスのみが確認できます。ThingPark~デバイスの通信の確認はサポート対象外です。
頻繁に利用するコマンドなどを定義済みのコマンドとして保存し、利用時に取得して送信することが可能です。 コマンドを新規に定義するには、“定義済みのコマンドを取得"を押し、“新規追加"を押します。
名前、カテゴリ、コマンドを入力し、“保存"します。
定義済みのコマンドを送信する場合、前の画面に戻り、定義済みのコマンドを選択し"実行"を押します。
8. サブテナントでのLoRaWAN接続機能利用
LPWA接続設定済の親テナントから作成したサブテナントで、LoRaWAN接続機能を利用するために必要な事前設定です。
管理>サブテナント画面から、LoRaWAN接続機能を利用するサブテナントを選択します。
“アプリケーション"のタブを押し、右側の利用可能なアプリケーションから"Actility"を選択したときに表示される登録ボタンを押します。
左側の登録みアプリケーションに"Actility"が追加されます。
サブテナントでLoRaWAN接続機能を利用するために必要な事前設定は以上です。
9. FAQ と利用上の注意事項
9.1. FAQ
Things Cloud 内でのデバイス名は? | 初期デバイス名は Actility_{DevEUI} の形式になります。例えば、DevEUI が 000DB53114873546 であった場合、Actility_000DB53114873546 となります。 デバイス登録を行う際に投入するデバイスID は {DevEUI} ですので、間違えないようご注意ください。 |
デバイス名は変えられないの? | デバイスが登録された後、自由に名称を変更することができます。変更しても、デバイス管理アプリケーションからデバイスを選択し、「アイデンティティ」から DevEUI 値を確認することができます。 |
デバイスからデータが送信されていないことを検知するには? | 通常の Things Cloud 利用の場合と同様、可能です。 デバイス管理アプリケーションからデバイスを選択し、「情報」タブを選び、「接続の監視」セクションの要求間隔に値を記入することで、その時間内にデータ送信がない場合にアラームを発生させることができます。 |
9.2. トラブルシューティング
こちら をご覧ください。
9.3. 利用上の注意事項
デバイスのデプロビジョニング | 一度デプロビジョニングしたデバイスは元に戻す(プロビジョニングする)ことができないためご注意ください。Things Cloud上でデバイスをデプロビジョニングした場合、ThingPark上のデバイス削除の必要はありません。 |
登録済のデバイスプロトコルの編集 | すでに登録済もしくはインポート済のデバイスプロトコルをデバイスデータベースから選択し、画面上で編集する場合、全ての場合でソースがPayload のデバイスプロトコルでもFPort が選択されている状態となるため、再保存する際は正しいソースを選択するようご注意ください。登録済のソースがPayload の場合、Payload を選択すると開始ビットとビット数の値は登録済の値が自動セットされます。 |
ThingParkとの疎通確認アラーム | Things CloudとThingsParkの疎通確認(2分間隔)が取れない場合、サブテナントを含むLoRaWAN接続機能を利用中の全てのテナントの Actility Server Monitoring Agent に対してアラームが発生します。アラームは、デバイス管理>デバイス一覧から、Actility Server Monitoring Agent を検索し、そのアラームタブから確認できます(Actility Server Monitoring Agentはデバイス一覧にデフォルトでは表示されていません)。疎通が可能になると、アラームは自動的にクリアされます。 |
(付録1)LoRaWAN Network Server と Things Cloud 間通信仕様
ここでは LoRaWAN Network Server から Things Cloud にデバイスのデータを伝送する場合の接続仕様および、その他の接続仕様(Things CloudからLoRaWAN Network Serverへの通信)の一覧を記載します。 本情報は技術参考情報として記載しています。今後の Things Cloud 機能追加変更、LoRaWAN 仕様への追従などにより、仕様が変更となったりパラメータが追加される可能性があることをご了承ください。
LoRaWAN Network Server から Things Cloud にデバイスのデータを伝送する場合の接続仕様
規定部分
本節で規定する接続I/Fは下図に示す部分とします。
通信条件
LoRaWAN Network Server と Things Cloud 間の通信方式は以下の通りです。
項目 | 規定値(仕様) | 備考 |
---|---|---|
ネットワーク | インターネット | |
通信プロトコル | TCP/IP, https | |
接続元アドレス/ポート | 制限なし | LoRaWAN Network Server 側 |
接続先アドレス | iottf.je1.thingscloud.ntt.com | Things Cloud 側サーバアドレス |
接続先ポート | 50000 | Things Cloud 側サーバアドレス |
HTTPヘッダ | Content-Type: application/xml | application/json は不可 |
URL query パラメータ | LrnDevEui={DevEUI}&LrnFPort={fport} 指定必須 | {DevEUI} は16文字のヘキサ文字列 {fport} は fport(数値) 他のパラメータは無視されます |
HTTPボディ | XML | フォーマットは次項参照 |
LoRaWAN に関するオプションは以下の通りです。
項目 | 規定値(仕様) | 備考 |
---|---|---|
セキュリティオプション | なし | payload は Network Server 側で復号のこと |
アクティベーション方式 | OTAA(推奨) | ABPも可 |
アクティベーション方式として ABP も扱うことができますが、将来のバージョンアップで提供機能の一部または全部が使えなくなる可能性があります。Things Cloud では OTAA 方式を推奨しています。
XML フォーマット
XMLとして必要な要素は以下の通りです。これらは<DevEUI_uplink xmlns="http�//uri.actility.com/lora”>要素に含めます。他の要素は無視されます。
必須XML要素 | 値 | 例 | 備考 |
---|---|---|---|
<Time> | yyyy-MM-ddThh:mm:ss.SSSXXX の形式 | <Time>2017-04-10T09:41:34.922+02:00</Time> | |
<DevEUI> | DevEUI値 16文字のヘキサ文字列 | <DevEUI>000DB53114873546</DevEUI> | |
<FPort> | fport 値, 整数 | <FPort>1</FPort> | |
<payload_hex> | payload_hex 値、ヘキサ文字列 | <payload_hex>00025f0211705b08139d7b </payload_hex> |
|
<LrrRSSI> | RSSI 数値 | <LrrRSSI>-57.000000</LrrRSSI> | |
<LrrSNR> | SNR 数値 | <LrrSNR>9.500000</LrrSNR> | |
<FCntUp> | アップリンクカウンタ値、整数 | <FCntUp>3</FCntUp> | 予約 |
<FCntDn> | ダウンリンクカウンタ 値、整数 | <FCntDn>4</FCntDn> | 予約 |
<SpFact> | デバイスで使っている SF 値 | <SpFact>12</SpFact> | 予約 |
<DevAddr> | デバイスの DevAddr ヘキサ文字列 | <DevAddr>14873546</DevAddr> | 予約 |
例
URL例
https://iottf.je1.thingscloud.ntt.com:50000/?LrnDevEui=000DB53114873546&LrnFPort=1
ヘキサ文字列はThings Cloud でのデバイス登録IDと大文字、小文字含めて一致する必要があります。
ヘッダ例
Content-Type: application/xml
body例(最低限の要素のみ)
<DevEUI_uplink xmlns="http://uri.actility.com/lora">
<Time>2018-07-26T10:22:51.545+09:00</Time>
<DevEUI>01CAFEBABEFACADE</DevEUI>
<FPort>1</FPort>
<payload_hex>000102030405</payload_hex>
<LrrRSSI>-57.000000</LrrRSSI>
<LrrSNR>9.500000</LrrSNR>
</DevEUI_uplink>
body例(Actility から送信される XMLの例)
<?xml version="1.0" encoding="UTF-8"?>
<DevEUI_uplink xmlns="http://uri.actility.com/lora">
<Time>2018-04-10T09:41:34.922+02:00</Time>
<DevEUI>{DevEUI値}</DevEUI>
<FPort>2</FPort>
<FCntUp>3</FCntUp>
<MType>4</MType>
<FCntDn>4</FCntDn>
<payload_hex>00025f0211705b08139d7b</payload_hex>
<mic_hex>aad53643</mic_hex>
<Lrcid>00000201</Lrcid>
<LrrRSSI>-57.000000</LrrRSSI>
<LrrSNR>9.500000</LrrSNR>
<SpFact>12</SpFact>
<SubBand>G0</SubBand>
<Channel>LC5</Channel>
<DevLrrCnt>1</DevLrrCnt>
<Lrrid>{Lrrid値}</Lrrid>
<Late>0</Late>
<Lrrs>
<Lrr>
<Lrrid>{Lrrid値}</Lrrid>
<Chain>0</Chain>
<LrrRSSI>-57.000000</LrrRSSI>
<LrrSNR>9.500000</LrrSNR>
<LrrESP>-57.461838</LrrESP>
</Lrr>
</Lrrs>
<CustomerID>{customerID値}</CustomerID>
<CustomerData>{CustomerData値}</CustomerData>
<ModelCfg>0</ModelCfg>
<DevAddr>{DevAddr値}</DevAddr>
<AckRequested>1</AckRequested>
</DevEUI_uplink>
その他の接続仕様一覧
Things CloudからLoRaWAN Network Serverへの接続仕様について記載します。 以下項目は共通です。
項目 | 規定値(仕様) | 備考 |
---|---|---|
ネットワーク | インターネット | |
通信プロトコル | TCP/IP, https | |
接続先アドレス | https://dx-api.thingpark.com/ | ThingPark 側サーバアドレス |
接続時の動作一覧は以下です。
動作 | 概要 | 本書との対応 |
---|---|---|
LoRa Network Serverの初回認証 | ThingParkに対してLoRaプロバイダ設定のアカウント情報を送信し認証を行います | 2. Actilityプロバイダー登録 |
デバイスのプロビジョニング | ThingParkに対してデバイス登録の情報を送信してデバイスを登録します | 4. デバイス登録 |
デバイスのデプロビジョニング | ThingParkにあるデバイスの情報を削除します | 6. デバイスのデプロビジョニング |
ダウンリンクメッセージの送信 | デバイスに対する操作コマンドを送信します | 7. デバイスの操作 |
(付録2)デバイスプロトコルの設定例
EASEL社の照度センサユニット(ES920LRI)のデバイスプロトコル設定例を説明します。 なお、照度センサユニット(ES920LRI)の取扱説明書にデバイスから送信されるデータフォーマット情報が記載されています。
新規デバイス登録画面において、以下のように設定します。
3つの値を追加します。
-
再送回数(count number of resend)を設定します。
-
照度(illuminance)を設定します。
-
電圧(Volt)を設定します。
以上の設定を保存して完了です。
設定した内容のjsonは以下の通りです。
{
"c8y_ModbusDeviceTypeInfo": {
"name": "照度センサユニット(ES920LRI)",
"minFieldbusUI": 4,
"fieldbusType": "actility"
},
"c8y_Coils": [],
"c8y_Registers": [
{
"measurementMapping": {
"series": "times",
"type": "c8y_CountNumberOfResend"
},
"offset": 0,
"multiplier": 1,
"fieldbusType": null,
"signed": false,
"number": null,
"input": false,
"divisor": 1,
"unit": "times",
"decimalPlaces": 0,
"startBit": 4,
"noBits": 4,
"messageTypeId": 1,
"name": "count number of resend",
"category": "照度センサユニット"
},
{
"measurementMapping": {
"series": "lux",
"type": "c8y_illuminance"
},
"offset": 0,
"multiplier": 1,
"fieldbusType": null,
"signed": false,
"number": null,
"input": false,
"divisor": 1,
"unit": "lux",
"decimalPlaces": 0,
"startBit": 8,
"noBits": 32,
"messageTypeId": 1,
"name": "illuminance",
"category": "照度センサユニット"
},
{
"measurementMapping": {
"series": "volt",
"type": "c8y_Voltage"
},
"offset": 0,
"multiplier": 1,
"fieldbusType": null,
"signed": false,
"number": null,
"input": false,
"divisor": 1,
"unit": "V",
"decimalPlaces": 0,
"startBit": 40,
"noBits": 16,
"messageTypeId": 1,
"name": "voltage",
"category": "照度センサユニット"
}
],
"c8y_MessageIdConfiguration": {
"messageIdMapping": {
"startBit": 0,
"noBits": 4
},
"source": "PAYLOAD"
}
}
(付録3)ABP方式のデバイス登録手順
ここでは、デバイスアクティベーション方式がABPであるデバイスを登録する手順を説明します。 ABP方式の場合、Things Cloudでのデバイス登録の前にThingParkでの設定とデバイス登録が必要です。 ThingPark上においてThings Cloud向けのAS ROuting ProfileをThird Party AS(HTTP)としてThings CloudのActility Serverアドレスをdestinationに設定した上で、デバイスを手動登録します。
0. ThingPark への事前設定
ThingPark に Things Cloud への接続情報を登録します。(ASルーティング設定) 一度接続情報を登録すれば2回目以降は設定不要です。
Actility ThingPark に対し、Things Cloud への接続情報を設定します。ThingPark への設定方法は詳しくは LoRaWAN 事業者にご確認ください。
Actility ThingPark の Device Manager から設定します。
0.1. Application servers 設定
「Application servers」で新規Application serverとして Things Cloud を設定します。
設定項目 | 設定内容 | 備考 |
---|---|---|
Name | Things Cloud | 名称は任意です |
Type | HTTP Application Server (LoRaWAN) | - |
Content Type | XML | JSON / JSON untyped は利用できません |
Uplink/downlink security | Inactive | - |
Route - Source ports | * | - |
Routing strategy | Sequential | - |
Destination | https://iottf.je1.thingscloud.ntt.com:50000 | - |
0.2. AS routing profiles 設定
続いて、「AS routing profiles」 を設定します。
設定項目 | 設定内容 | 備考 |
---|---|---|
Name | Things Cloud | 名称は任意です |
Type | LoRaWAN | - |
Destinations - Type | Local application server | - |
Is default | チェック | 利用状況に応じ適宜変更ください |
Destinations - Destination | Application servers で設定したものを選択 | - |
1. ThingParkでデバイスを登録する
Device Manager > Devices > Create で、以下項目を設定後、createボタンを押下。
項目 | 内容 | 設定値例 |
---|---|---|
Device name | デバイスの名前 | GlobalSat LT-100_ABP |
Device activation | デバイスのアクティベーション方式 | Activation By Personalization (ABP) を選択 |
DevEUI | デバイスEUI デバイスを一意に識別する16桁の値 |
BECB44968B2CA96F |
DevAddr | デバイスアドレス | 12345678 |
NwkSKey | ネットワークセッションキー | 7222B392141E74652BED9B6011FDD93D |
Manufacturer | デバイス製造者 | Unknown を選択 |
Model | デバイスプロファイル(デバイスの種類) | LoRaWAN 1.0 - class A - ETSI - Rx2_SF9 を選択 |
Connectivity plan | 接続プラン | ご利用中のプランを選択 |
Application server / routing profile | SSAサーバへの接続先情報 | https://iottf.je1.thingscloud.ntt.com:50000 を選択。(すでにOTAA方式の他のデバイスが登録済の場合、自動で作成されたApplication servers / routing profilesの設定値を選択) |
AppSKey | アプリケーションセッションキー Addを1回クリックすると右の値が自動設定される。編集する場合は値をクリックしする。 |
00000000000000000000000000000000 |
2. Things CloudでLoRaデバイスを登録する
以下項目以外は上記でThingParkに登録した情報と同じ値を設定します。
項目 | 設定値例 | 備考 |
---|---|---|
デバイスプロファイル | LoRaWAN 1.0 - class A - ETSI - Rx2_SF9 | - |
application key | 4AC4B926939EA8FEF1B3586E25EE322A | ABP方式の場合、application keyは設定不要(前提として存在しない)のため入力値は無効だが、必須項目のためダミー値を入力する。 |
デバイスプロトコル | GlobalSat LT-100 | - |
接続プラン | ご利用中のプランを選択 | - |
以上でABP方式のデバイス登録設定は完了です。
トラブルシューティング
デバイス登録
Access to device denied(デバイスへのアクセスが拒否されました)
この警告メッセージは、デバイス登録に使用したデバイスEUIと同じプロビジョニングされたデバイスがThingParkにすでに存在し、アプリケーションEUI(OTAAアクティベーション)およびデバイスプロファイルに基づいて、デバイスを比較する検証が失敗した場合に表示されます。
この問題を解決するには、接続のアプリケーションおよびデバイスプロファイルから正しいアプリケーションEUIを指定して、もう一度試してみてください。
LoRa プロバイダー設定が見つかりませんでした
この警告メッセージは、ThingParkのアカウントに認証情報が設定されていない場合に表示されます。解決するには、Settingsをクリックして、接続が設定されている管理アプリケーションに移動します。
この問題を解決するには、ThingPark認証情報の構成をご覧ください。
また、この警告メッセージは、ThingParkの接続プランがデバイス数の制限に達した場合でも表示されることがあります。その場合、この問題を解決するには、接続プランのデバイス割り当て制限についてThingParkに問い合わせるか、Things CloudとThingParkから未使用のデバイスを削除してThings Cloudでデバイスの登録を再試行してください(フリースロットを利用した接続プランはありません 参照)。
プロバイダーからのデバイスプロファイルの取得に失敗しました
この警告メッセージは、Actility Thingparkへのテナントのアクセストークンが無効になった場合に表示されます。トークンの無効化は、同一のThingPark 認証情報を他のテナントに使用した場合に発生する場合があります。
この問題は、アクセストークンを更新するためにThingPark認証情報を再構成することで解決できます。認証情報の再構成については、ThingParkアカウント認証情報の構成 をご覧ください。
デバイスプロトコルが設定されていません
この警告メッセージは、デバイス登録に使用するLoRaデバイスプロトコルが存在しない場合に表示されます。この問題を解決するには、Device protocolsをクリックして、プロトコルが設定されているDevice protocolsページに進みます。
この問題を解決するには、デバイスデータベースに少なくとも1つのデバイスプロトコルを設定します。
フリースロットを利用した接続プランはありません
この警告メッセージは、Actility ThingParkの接続プランがデバイス数の上限に達している場合に表示されます。
この問題を解決するには、接続プランのデバイス割り当て制限についてThingParkに問い合わせるか、Things CloudとThingParkから未使用のデバイスを削除してThings Cloudでデバイスの登録を再試行してください。
接続
LoRa プラットフォームへの認証に失敗しました
この警告メッセージは、提供されたプロファイルID、ユーザー名、またはパスワードが無効な場合に表示されます。
この問題を解決するには、正しい認証情報を入力し、再試行してください。
Actility プラットフォームへの認証に失敗しました。基本URLが正しいか確認してください。
この問題を解決するには、正しいURLを入力し、再試行してください。
Actilityプラットフォームへの認証がステータスコード「400」で失敗しました。プロファイルIDが正しいか確認してください。
この問題を解決するには、正しいプロファイルIDを入力して再試行してください。
Actility プラットフォームへの認証がステータスコード「401」で失敗しました。認証情報が正しいか確認してください。
この問題を解決するには、正しいユーザー名とパスワードを入力し、再試行してください。