質問
Webhookでマルチキャストメッセージを送信する可能性はありますか?
LoRaWANブートローダー(現在クラスAで動作)を開発していますが、非常に効果がありません。
ファームウェア全体の転送(1つのノードの場合)は、DR4( 〜64kB)の場合80dBmで約1時間かかります。
Webhookを使用してファームウェアのダウンリンクデータをマルチキャストメッセージとして(アプリケーションの)多くのノードに送信する可能性はありますか?
各ノードは、欠落したパッケージを個別に照会する場合があります。
「OTATime」の利用を最小限に抑えることができると思います。
このためのドキュメント/情報はありますか?
エンドデバイスはTelitLoRaWAN1.0.2です
タイプ「質問」の問題に関係のないセクションを削除しました
参照番号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つすべてをプロビジョニングします。
00E4304D
)A0CAD5A30036DBE03096EB67CA975BAA
とA0CAD5A30036DBE03096EB67CA975BAA
)。次に、選択したDevAddr
とセッションキーを使用してlorawan-stack
に単一のデバイスを登録し、 multicast
フラグを設定します。
作成したばかりのデバイスにdev1
を呼び出し、アプリ名がapp1
あるとします。
次に、アプリapp1
でdev1
のダウンリンクをプッシュするとします(これを行うためのさまざまな方法についてはドキュメントを参照してください)。その後、 lorawan-stack
は単一のダウンリンクをスケジュールします。 DevAddr 00E4304D
を備えたデバイスの場合。
単一のダウンリンクは、DevAddr 00E4304D
に一致するすべてのデバイス、つまり上記でプロビジョニングした5つの(理想的には)すべてのデバイスによって受信されます。
一部の物理デバイスは、実際には複数のセッションに同時に参加できることに注意してください。
そのようなデバイスが5つあり、それらをOTAAとして動作させ、マルチキャストグループの一部であると仮定します。
ここで理解する重要な点は、登録されたマルチキャストデバイスが複数の物理デバイスを表す場合があることですが、これらの物理デバイスはすべて、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
を参照してください。
最も参考になるコメント
$
lorawan-stack
に登録されているmulticast
デバイスは、任意の数の物理デバイスを表す場合があります。したがって、マルチキャストモードで操作するデバイスが5つあるとしましょう。次に、使用する物理デバイスの5つすべてをプロビジョニングします。
00E4304D
)A0CAD5A30036DBE03096EB67CA975BAA
とA0CAD5A30036DBE03096EB67CA975BAA
)。次に、選択した
DevAddr
とセッションキーを使用してlorawan-stack
に単一のデバイスを登録し、multicast
フラグを設定します。作成したばかりのデバイスに
dev1
を呼び出し、アプリ名がapp1
あるとします。次に、アプリ
app1
でdev1
のダウンリンクをプッシュするとします(これを行うためのさまざまな方法についてはドキュメントを参照してください)。その後、lorawan-stack
は単一のダウンリンクをスケジュールします。 DevAddr00E4304D
を備えたデバイスの場合。単一のダウンリンクは、DevAddr
00E4304D
に一致するすべてのデバイス、つまり上記でプロビジョニングした5つの(理想的には)すべてのデバイスによって受信されます。一部の物理デバイスは、実際には複数のセッションに同時に参加できることに注意してください。
そのようなデバイスが5つあり、それらをOTAAとして動作させ、マルチキャストグループの一部であると仮定します。
ここで理解する重要な点は、登録されたマルチキャストデバイスが複数の物理デバイスを表す場合があることですが、これらの物理デバイスはすべて、DevAddrキーとセッションキーを共有する必要があります。