Lorawan-stack: デバイスタイプOTAA、ABP、およびマルチキャストを文書化する

作成日 2019年07月08日  ·  14コメント  ·  ソース: TheThingsNetwork/lorawan-stack

概要


質問

Webhookでマルチキャストメッセージを送信する可能性はありますか?
LoRaWANブートローダー(現在クラスAで動作)を開発していますが、非常に効果がありません。
ファームウェア全体の転送(1つのノードの場合)は、DR4( 〜64kB)の場合80dBmで約1時間かかります。

Webhookを使用してファームウェアのダウンリンクデータをマルチキャストメッセージとして(アプリケーションの)多くのノードに送信する可能性はありますか?
各ノードは、欠落したパッケージを個別に照会する場合があります。
「OTATime」の利用を最小限に抑えることができると思います。
このためのドキュメント/情報はありますか?

エンドデバイスはTelitLoRaWAN1.0.2です

documentation in progress

最も参考になるコメント

$ lorawan-stackに登録されているmulticastデバイスは、任意の数の物理デバイスを表す場合があります。
したがって、マルチキャストモードで操作するデバイスが5つあるとしましょう。次に、使用する物理デバイスの5つすべてをプロビジョニングします。

  • 同一のDevAddr(例: 00E4304D
  • 同一のセッションキー(たとえば、AppSKeyとNwkSKeyの場合はそれぞれA0CAD5A30036DBE03096EB67CA975BAAA0CAD5A30036DBE03096EB67CA975BAA )。

次に、選択したDevAddrとセッションキーを使用してlorawan-stack単一のデバイスを登録し、 multicastフラグを設定します。
作成したばかりのデバイスにdev1を呼び出し、アプリ名がapp1あるとします。
次に、アプリapp1dev1のダウンリンクをプッシュするとします(これを行うためのさまざまな方法についてはドキュメントを参照してください)。その後、 lorawan-stack単一のダウンリンクをスケジュールします。 DevAddr 00E4304Dを備えたデバイスの場合。
単一のダウンリンクは、DevAddr 00E4304Dに一致するすべてのデバイス、つまり上記でプロビジョニングした5つの(理想的には)すべてのデバイスによって受信されます。

一部の物理デバイスは、実際には複数のセッションに同時に参加できることに注意してください。
そのようなデバイスが5つあり、それらをOTAAとして動作させ、マルチキャストグループの一部であると仮定します。

  1. 各デバイスを、それぞれ独自のデバイスIDを持つ個別のOTAAデバイスとして登録します。 (したがって、5つのデバイスを登録します-各物理デバイスごとに1つ)
  2. 単一のデバイスを個別のデバイスIDを持つマルチキャストデバイスとして登録します(したがって、1つのデバイスを登録します-マルチキャストグループごとに1つ)

ここで理解する重要な点は、登録されたマルチキャストデバイスが複数の物理デバイスを表す場合があることですが、これらの物理デバイスはすべて、DevAddrキーとセッションキーを共有する必要があります。

全てのコメント14件

タイプ「質問」の問題に関係のないセクションを削除しました

参照番号890

Q:Webhookでマルチキャストメッセージを送信する可能性はありますか?

A:はい。スタックは、クラスCマルチキャストセッションを--multicastフラグを持つ他のエンドデバイスとして登録することをサポートしています。 これについては、スタートガイドで説明されています: https ://github.com/TheThingsNetwork/lorawan-stack/blob/master/doc/gettingstarted.md#creating -a-device

Q:Webhookを使用して、ファームウェアのダウンリンクデータをマルチキャストメッセージとして(アプリケーションの)多くのノードに送信する可能性はありますか?

A:はい、マルチキャストセッションは他のデバイスとして登録されているため、通常のデバイスの場合とまったく同じ方法で、マルチキャストセッションへのダウンリンクをスケジュールできます。

Q:これに関するドキュメント/情報はありますか?

A:現在「はじめに」にあるものを超えないようにしてください。

@rvolosatovs @adriansmares IIRC皆さんは、クラスCとマルチキャストでテストしましたよね? それについての素敵なドキュメントページを書くべきですか?

はいの場合は、#401を待ってから実行しましょう。

@ htdivsser-返信ありがとうございます。 私は始めたときにそれを見ました。

webhook(url)の構文は次のとおりです。
curl http:// localhost :1885 / api / v3 / as / Applications / ap2 / webhooks / fwup / devices / dv1 / down / push -X POST -H '認証:Bearer NNSXS.CLCIYOYYEDPLJSSWRNMYS5KCDI45HOE6M3WZIDY.E6DXAAZ4HSX2V6VL7C3244 "downlinks":[{"frm_payload": "vu8 ="、 "f_port":15、 "priority": "NORMAL"}]} '

ダウンリンクターゲットに指定された単一のデバイス名があります

では、マルチキャストメッセージを複数のデバイスに適用するWebhookの構文は何ですか?

アイデアは、複数の物理デバイスを含むマルチキャストグループを表す単一の「疑似デバイス」を登録することです。 Webhookを使用してマルチキャストグループへのダウンリンクをスケジュールする場合は、この疑似デバイスをターゲットにします。

はじめにでわかるように、このような疑似デバイスの登録は、基本的にABPデバイスの場合と同じです。 DevAddrはマルチキャストアドレス、NwkSKeyはMcNwkSKey、AppSKeyはMcAppSKeyです。

リモートマルチキャストセットアップはまだ実装していないため、デバイス側のマルチキャストセッションはアプリケーション層でセットアップする必要があります。

@htdvisserありがとう。
マルチキャスト疑似デバイスはABPである必要がありますか?
実際のエンドデバイスに直接アクセスすることで衝突しないことを願っていますか?

あなたが言及した開始時に、疑似デバイスの作成とこの「グループ」へのデバイスの追加については何も見つかりません

私もチェックしました:
ttn-lw-cli --help
ttn-lw-cli end-devs --help
ttn-lw-cli dev --help
疑似デバイスとグループの「直感的な」説明は表示されません。

これを達成するために、コマンドを提供できますか?

@ecitiesマルチキャストデバイスは、アップリンクを送信せず、定義上OTAAフローをサポートしないため、ABPである必要があります
ABPデバイスと同じ方法でデバイスを登録しますが、 multicastフラグを追加します。

@rvolosatovsありがとう
Multicast devices have to be ABP, since they do not send uplinks and hence do not support OTAA flow by definition
したがって、??の1つだけを選択する必要があります。
-ottaを使用した標準開発(クラスAまたはC)
-abp(クラスC)を使用したマルチキャスト開発-デバイスの作成時に作成されたフラグであり、削除できません。 データをまったくアップリンクできません。

または、回避策があります。たとえば、2つの異なるアプリにデバイスを追加しますか?
1)通常の(アップリンク/ダウンリンク)作業の場合(ap1)
2)マルチキャストダウンリンクのみ(ap2)
_しかし、アクセス権に問題があるのは継ぎ目です-ここで問題を報告しました_

Register the device same way you would an ABP device, but add the multicast flag.

たぶん例:
私が2つのデバイスを持っているとしましょう(同じMcNwkSKey、McAppSKey、そしておそらくdev-addrを持つdev1、dev2)
ttn-lw-cli end-devices create app1 dev1 \
--frequency-plan-id EU_863_870 \
--lorawan-バージョン1.0.2 \
--lorawan-phy-バージョン1.0.2-b \
--abp \
--session.dev-addr 00E4304D \
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA \
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255 \
-マルチキャスト

ttn-lw-cli end-devices create app1 dev2 \
--frequency-plan-id EU_863_870 \
--lorawan-バージョン1.0.2 \
--lorawan-phy-バージョン1.0.2-b \
--abp \
--session.dev-addr 00E4304D \
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA \
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255 \
-マルチキャスト

正しいですか?

そして、webhookを使用して両方にマルチキャストメッセージを送信したいと考えています。
WebhookのURLが何であるかはまだわかりません。
http:// localhost :1885 / api / v3 / as / Applications / ap2 / webhooks / fwup / devices / 00E4304D / down / push

これは正しいです?

または多分:

http:// localhost :1885 / api / v3 / as / Applications / ap2 / webhooks / fwup / devices / dev1 / down / push

そしてそれは同じセキュリティ設定を持つ他のデバイスによって受信されます
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255

??

$ lorawan-stackに登録されているmulticastデバイスは、任意の数の物理デバイスを表す場合があります。
したがって、マルチキャストモードで操作するデバイスが5つあるとしましょう。次に、使用する物理デバイスの5つすべてをプロビジョニングします。

  • 同一のDevAddr(例: 00E4304D
  • 同一のセッションキー(たとえば、AppSKeyとNwkSKeyの場合はそれぞれA0CAD5A30036DBE03096EB67CA975BAAA0CAD5A30036DBE03096EB67CA975BAA )。

次に、選択したDevAddrとセッションキーを使用してlorawan-stack単一のデバイスを登録し、 multicastフラグを設定します。
作成したばかりのデバイスにdev1を呼び出し、アプリ名がapp1あるとします。
次に、アプリapp1dev1のダウンリンクをプッシュするとします(これを行うためのさまざまな方法についてはドキュメントを参照してください)。その後、 lorawan-stack単一のダウンリンクをスケジュールします。 DevAddr 00E4304Dを備えたデバイスの場合。
単一のダウンリンクは、DevAddr 00E4304Dに一致するすべてのデバイス、つまり上記でプロビジョニングした5つの(理想的には)すべてのデバイスによって受信されます。

一部の物理デバイスは、実際には複数のセッションに同時に参加できることに注意してください。
そのようなデバイスが5つあり、それらをOTAAとして動作させ、マルチキャストグループの一部であると仮定します。

  1. 各デバイスを、それぞれ独自のデバイスIDを持つ個別のOTAAデバイスとして登録します。 (したがって、5つのデバイスを登録します-各物理デバイスごとに1つ)
  2. 単一のデバイスを個別のデバイスIDを持つマルチキャストデバイスとして登録します(したがって、1つのデバイスを登録します-マルチキャストグループごとに1つ)

ここで理解する重要な点は、登録されたマルチキャストデバイスが複数の物理デバイスを表す場合があることですが、これらの物理デバイスはすべて、DevAddrキーとセッションキーを共有する必要があります。

@rvolosatovsは、非常に優れた「ステップバイステップ」の説明に感謝します。これにより、ほとんどの仮定が排除されます。

これは実際にはそれほど明白ではないので、入門マニュアルまたはマルチキャストドキュメントにコピーする価値があると思います

よろしく、

ロバート

@ecitiesどういたしまして、お役に立ててうれしいです!
@adriansmaresあなたはこれを拾うことができますか?

@adriansmaresは、OTAA、ABP、およびマルチキャストデバイス、特に後者についてもう少し詳しく説明することを提案しています。

--multicast deviceを作成しようとしています(開始例からコピーしたコマンド)

ttn-lw-cli end-devices create ap3 lldv3 \
--frequency-plan-id EU_863_870 \
--lorawan-バージョン1.0.2 \
--lorawan-phy-バージョン1.0.2-b \
--abp \
--session.dev-addr 11E4304D \
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA \
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255 \
-マルチキャスト

そしてメッセージを受け取りました:
不明なフラグ:-マルチキャスト

ttn-lw-cliバージョン
Things Networkコマンドラインインターフェイス:ttn-lw-cli
バージョン:3.0.3
Goバージョン:go1.12.5
OS / Arch:linux / amd64

v3.1.0を待つか、ソースからmasterをビルドしてください。 DEVELOPMENT.mdを参照してください。

このページは役に立ちましたか?
0 / 5 - 0 評価