Lorawan-stack: りィザヌドを䜿甚しお゚ンドデバむスを䜜成する

䜜成日 2019幎04月28日  Â·  38コメント  Â·  ゜ヌス: TheThingsNetwork/lorawan-stack

抂芁
デバむスの远加フォヌム573で远加は珟圚、制玄に基づいおフィヌルドを構成しおいたせんABP / OTAAの遞択を陀く。 たずえば、特定のLoRaWANバヌゞョンにのみ関連するフィヌルドを非衚瀺にしたり、それに応じおフィヌルドの名前を倉曎したりできたすたずえば、 NwkSKeyずFNwkSIntKey 。

なぜ私たちはこれが必芁なのですか
より良いUXのために、誀った入力を避けおください

すでに䜕がありたすか
OTAA/ABPに基づく条件付きフィヌルドを含むデバむスの远加フォヌム

䜕が欠けおいる
より掗緎されたチェックず制玄がフォヌムに適甚され、誀った入力を防ぎたす

環境
ブラりザのコン゜ヌル

これをどのように実装するこずを提案したすか
フィヌルド倉曎むベントにフックし、それに応じおフィヌルドを構成する可胜性がありたす

これを自分で行い、プルリク゚ストを送信できたすか
はい。

console in progress uweb

党おのコメント38件

デバむスフォヌムの珟圚の実装に関する䞻な問題は、すべおが䞀緒に結合されおいるこずです。 これは〜をひき起こす

  1. 耇雑で長い怜蚌スキヌマ
  2. スタック構成に基づいお特定のフィヌルドを無効にする簡単な方法はありたせん
  3. 遞択した倀に応じおフォヌムフィヌルド/フィヌルドタむトルを倉曎する簡単な方法はありたせん
  4. バッチ䜜成/曎新/削陀および䜜成ロヌルバックロゞックのためのjsSDKの䞍必芁な耇雑さ

デバむスフォヌムをマルチステップフォヌムずしお実装するこずを提案したす。 これは次のようになりたす。
Screenshot 2019-08-26 at 11 29 16
Screenshot 2019-08-26 at 11 31 57
Screenshot 2019-08-26 at 11 34 16

このようなアプロヌチは、䞊蚘のすべおの問題に察凊したす。

  1. 1぀の耇雑なスキヌマの代わりに、ステップごずに小さなスキヌマを定矩したす。
  2. 特定の責任あるコンポヌネントがスタックで䜿甚できない堎合は、ステップ党䜓を無効にするだけです。 さらに、説明/通知を介しおこれに぀いおナヌザヌに通知するこずができたす。
  3. 以前に送信された倀に応じお、各ステップを適応させたす。 たずえば、lorawanバヌゞョン1.0.xの堎合、 Join EUIラベルをApp EUIに倉曎したす。
  4. バッチリク゚ストは必芁ありたせん。 ナヌザヌは、さたざたなコンポヌネントでデバむスを䜜成する責任がありたす。 ただし、䟿宜䞊、バッチ削陀を保持したい堎合がありたす。

線集デバむスは、アコヌディオンのスタックずしお実装できたす。
Screenshot 2019-08-26 at 11 56 36
各アコヌディオンがスタンドアロンフォヌムで拡匵される堎所。

デバむスフォヌムに加えお、アプリケヌションフォヌムのりィザヌドを䜿甚しお次のこずもできたす。

  1. でアプリケヌションを䜜成したす
  2. アプリケヌションをにリンクしたす

cc @kschiffer @johanstokking @htdvisser

特に、コンポヌネントのフィヌルドを1぀のステップでグルヌプ化できる堎合は、私には良さそうです。 そうすれば、コンポヌネントが利甚できない堎合に、手順をスキップ/無効にするこずができたす。

https://github.com/TheThingsNetwork/lorawan-stack/issues/1234も参照しおください。 JSが䜿甚可胜な堎合でも、ナヌザヌはJSフィヌルドをスキップできたす。

私はそのような図を思い぀いた
device-wizard-diagram

すべおのノヌドはステップです

  • 茪郭が点線のステップはフォヌムを送信したせんが、次のステップのためにロヌカル状態のたたにしたす。
  • 他の人は送信時にサヌバヌにリク゚ストを送信したす。

耇雑に芋えたすが、珟圚の実装では、怜蚌/送信/フィヌルドマスクの生成などに関しおさらに倧きな状態空間がありたす。

議論を始めるための最初の提案ずしお図を考えおください。

これは良いスタヌトだず思いたす。

  • おそらく、JoinServerが最初に来た方がフロヌは良くなるでしょう。
  • ただ実際には進歩しおいない重芁なこずは、デバむスリポゞトリ263のデバむステンプレヌトからフィヌルドを事前に入力するこずです。 これにより、本番環境ぞの展開プロセスを本圓に簡玠化できるず思いたす。

そしお、いく぀かの小さなこず

  • DevEUIはABPデバむスでは犁止されおいたせんオプションで蚭定できたす
  • LoRaWAN 1.0.xデバむスにはNwkKeyはなく、 AppKeyのみがありたす
  • FNwkSIntKeyはNwkSKeyず呌ばれたすナヌザヌに察しお
  • アプリケヌションサヌバヌはNwkKeyたたはAppKeyを取埗したせん

はい、玠晎らしいスタヌトです。

  • おそらく、JoinServerが最初に来た方がフロヌは良くなるでしょう。

私はこれに同意する。 アクティベヌションモヌドがOTAAで、クラスタヌJSが有効になっおいる堎合、ナヌザヌはJSペヌゞでルヌトキヌを入力しおクラスタヌJSに保存するかどうかを遞択できたす。 これを無効にするず、クラスタヌにJSが有効になっおいない堎合ず同様に、NSはJSルックアップを䜿甚したす

  • 「アクティベヌションモヌド」はペむロヌドにありたす-あなたの図では、それは実際には2぀のフィヌルドに察応しおいたす- multicast boolずsupports_join bool 。 multicast && supports_joinは無効であるため、3぀の可胜なオプションがありたす。
  • frequency_plan -> frequency_plan_id
  • resets_f_cntはオプションで、デフォルトでfalseです。

  • FNwkSIntKeyは、<1.1の堎合にのみNwkKeyずしお衚瀺する必芁がありたす

  • FNwkSIntKeyが>=1.1のABPNS蚭定にありたせん
  • multicastデバむスはAppSKeyのみを必芁ずしたす-NSはmulticastデバむスが機胜するためにキヌを必芁ずせず、ASのみを必芁ずしたす

@htdvisser

おそらく、JoinServerが最初に来た方がフロヌは良くなるでしょう。

なんで

ただ実際には進歩しおいない重芁なこずは、デバむスリポゞトリ263のデバむステンプレヌトからフィヌルドを事前に入力するこずです。 これにより、本番環境ぞの展開プロセスを本圓に簡玠化できるず思いたす。

私にずっおは、この問題の範囲倖のようです

DevEUIはABPデバむスでは犁止されおいたせんオプションで蚭定できたす

ABPデバむスにも蚭定したすか フィヌルドが少なければ少ないほど良いず思いたす。 ただし、远加できる必芁がありたす。

FNwkSIntKeyはNwkSKeyず呌ばれたすナヌザヌに察しお

したがっお、ラベルは1.0.xず1.1.xの䞡方でNwkSKeyである必芁がありたすか コン゜ヌルにATMがあるのは次のずおりです。
Screenshot 2019-08-27 at 19 43 37

  • LoRaWAN 1.0.xデバむスにはNwkKeyはなく、AppKeyのみがありたす
  • アプリケヌションサヌバヌはNwkKeyたたはAppKeyを取埗したせん

修正枈み👌

@johanstokking

アクティベヌションモヌドがOTAAで、クラスタヌJSが有効になっおいる堎合、ナヌザヌはJSペヌゞでルヌトキヌを入力しおクラスタヌJSに保存するかどうかを遞択できたす。 これを無効にするず、クラスタヌにJSが有効になっおいない堎合ず同様に、NSはJSルックアップを䜿甚したす。

それで、これはナヌザヌがサヌバヌぞの参加送信ステップをスキップできるようにするだけの問題ですか jsぞのリク゚ストはたったくありたせんか

https://github.com/TheThingsNetwork/lorawan-stack/issues/1134に関しお、これらのフィヌルドが図のどこに属するかを指定するこずもできたすか

@rvolosatovs

アクティベヌションモヌド」はペむロヌドにありたす-図では、実際には2぀のフィヌルドに察応しおいたす-マルチキャストboolずsupports_joinbool。マルチキャスト&&supports_joinは無効であるため、3぀の可胜なオプションがありたす。

明確にするために

  1. supports_join=true -OTAA
  2. supports_join=false -ABP
  3. multicast=true && **no** supports_join -マルチキャスト
    これは正しいです

resets_f_cntはオプションで、デフォルトではfalseです。

それでもナヌザヌに芋せおもいいず思いたす。 ナヌザヌがマルチキャストデバむス甚に蚭定できるようにする必芁がありたすか

FNwkSIntKeyは、1.1未満の堎合にのみNwkKeyずしお提瀺する必芁がありたす

NwkSKeyずいう意味ですか

Frequency_plan-> Frequency_plan_id
FNwkSIntKeyが>=1.1のABPNS蚭定にありたせん

修正枈み👌

曎新された図

device-wizard-diagram2

@htdvisser

おそらく、JoinServerが最初に来た方がフロヌは良くなるでしょう。

なんで

ええ、私はこれに戻っおきたす。 キヌを入力する前にMACバヌゞョンを入力する方が理にかなっおいるず思いたす。 だから私は珟圚の流れをサポヌトしおいたす。 MACバヌゞョンが入力されおいる堎合NSが有効になっおいる堎合、1.1.xであるため、 NwkKeyを芁求する必芁はありたせん。

ただ実際には進歩しおいない重芁なこずは、デバむスリポゞトリ263のデバむステンプレヌトからフィヌルドを事前に入力するこずです。 これにより、本番環境ぞの展開プロセスを本圓に簡玠化できるず思いたす。

私にずっおは、この問題の範囲倖のようです

それは確かに範囲倖です。

DevEUIはABPデバむスでは犁止されおいたせんオプションで蚭定できたす

ABPデバむスにも蚭定したすか フィヌルドが少なければ少ないほど良いず思いたす。 ただし、远加できる必芁がありたす。

はい、オプションでお願いしたいず思いたす。 ゚ンドデバむスに関する識別情報が倚いほど、優れおいたす。 たた、ステヌトフルパッシブロヌミングでも必芁です。 ナヌザヌにDevEUIの入力を匷制しない理由は、DevEUIがない堎合、ナヌザヌに停の倀を入力させたくないためです。

FNwkSIntKeyはNwkSKeyず呌ばれたすナヌザヌに察しお

したがっお、ラベルは1.0.xず1.1.xの䞡方でNwkSKeyである必芁がありたすか コン゜ヌルにATMがあるのは次のずおりです。
Screenshot 2019-08-27 at 19 43 37

1.0.xの堎合NwkSKey $、1.1.xの堎合FNwkSIntKeyです。

アクティベヌションモヌドがOTAAで、クラスタヌJSが有効になっおいる堎合、ナヌザヌはJSペヌゞでルヌトキヌを入力しおクラスタヌJSに保存するかどうかを遞択できたす。 これを無効にするず、クラスタヌにJSが有効になっおいない堎合ず同様に、NSはJSルックアップを䜿甚したす。

それで、これはナヌザヌがサヌバヌぞの参加送信ステップをスキップできるようにするだけの問題ですか jsぞのリク゚ストはたったくありたせんか

それはそう。

䟋ずしお、SemtechJoinServerを䜿甚するSemtechのモデムを搭茉したデバむスがありたす。 その堎合、EUIを知る必芁があるだけです。

1134に関しお、これらのフィヌルドが図のどこに属するかを指定するこずもできたすか

それらはJSステップに属したす。 JSがクラスタヌで有効になっおいお、ナヌザヌがJSでデバむスをプロビゞョニングする堎合は、これらのフィヌルドをJSに移動したす。

これらのフィヌルドはオプションです。

明確にするために

  1. supports_join=true -OTAA
  2. supports_join=false -ABP
  3. multicast=true && **no** supports_join -マルチキャスト
    これは正しいです

厳密に

  1. OTAA supports_join
  2. ABP !supports_join && !multicast
  3. マルチキャスト multicast

無効なのはsupports_join && multicastですが、これはNSで怜蚌されたすたたは怜蚌される必芁がありたす。

resets_f_cntはオプションで、デフォルトではfalseです。

それでもナヌザヌに芋せおもいいず思いたす。 ナヌザヌがマルチキャストデバむス甚に蚭定できるようにする必芁がありたすか

いいえ、これはマルチキャスト甚ではありたせん。 resets_f_cntはアップリンクを指したすが、マルチキャストにはアップリンクはありたせん。

FNwkSIntKeyは、1.1未満の堎合にのみNwkKeyずしお提瀺する必芁がありたす

NwkSKeyずいう意味ですか

確かにNwkSKeyである必芁がありたす。

@bafoninsは@johanstokkingの答えを芋おください。
multicastに関しお-デバむスアドレスも必芁です

  • https://github.com/TheThingsNetwork/lorawan-stack/issues/1134からフィヌルドを远加したした
  • DevEUIをabp/マルチキャストデバむスに远加したした
  • マルチキャストデバむスにDevice Addressを远加したした
    device-wizard-diagram4

multicastデバむスのネットワヌクサヌバヌ蚭定にデバむスアドレスがただありたせん

マルチキャストデバむスのネットワヌクサヌバヌ蚭定にデバむスアドレスがただありたせん

曎新されたした👌

マルチキャストは1.0.xおよび1.1.xにするこずができたす。 セッション情報 DevAddrずキヌの入力は、マルチキャストの堎合ずABPの堎合ず同じです。

たた、1.1.xのJSでresets_join_noncesを蚭定できたす

デバむスの䜜成を分割するこずは間違いなく必芁であり、ナヌザヌの耇雑さを軜枛しながら、フロヌず実装をバック゚ンドの芁件に近づけるための優れた方法です。

私が芋るいく぀かの考えず課題

  • フロヌ党䜓を䞭止する機胜を远加する必芁がありたす。その結果、既に䜜成されおいるレゞストリ゚ントリはすべお削陀されたす。

    • 同様に、前の手順に進むには、フォヌムを「曎新モヌド」にする必芁がありたすISを陀いお、゚ンドポむントは同じであるため、比范的簡単なはずです

  • 私が芋おいる問題の1぀は、アプリケヌションサヌバヌのステップが非垞に浅くこれは埌で倉曎される可胜性がありたすか、ペむロヌド圢匏オプションを远加するこずも、デバむスの䜜成䞭のナヌザヌのニヌズに実際には䞀臎しおいたせん。

    • 解決策は、ASずJSの䞡方のステップが非垞に単玔で盞互䟝存しおいないこずを前提ずしお、それらをマヌゞするこずです。 これはコンポヌネントによる分離に反するこずを私は理解しおいたすが、これは合理的な抜象化でフロヌ党䜓を単玔化するず思いたす。 特に、ステップ内でそれぞれのスタックコンポヌネントぞの接続を䌝達しないこずを考えるず。

  • スタック構成によっおは、1぀たたは2぀のステップしかないりィザヌドが䜜成される堎合がありたす。これは、りィザヌドのアンチパタヌンです。

    • たった1぀のステップの堎合、りィザヌドの偎面を非衚瀺/削陀するだけです。

    • 2぀のステップでは、この問題に察凊する必芁があるず思いたす🀷‍♂

  • りィザヌド゜リュヌションにより、ナヌザヌストヌリヌの_完了たでの時間_が倧幅に増加するこずを考慮する必芁がありたす

    • これは、倚くのデバむスを手動で䜜成する必芁がある状況で問題になる可胜性がありたすが、このナヌスケヌスのバッチ䜜成機胜を玹介し、CLI/スクリプトもそのような状況で圹立ちたす

    • それでも、V2コン゜ヌルデバむスの䜜成ずの違いず、ナヌザヌがこの倉曎をどのように認識するかを怜蚎しおください

  • 䞀般的な蚭定に察応する「セグメント化された線集」゜リュヌションが奜きです
  • フロヌ図は非垞に圹立ち、最新の状態に保぀必芁がありたす👍

バッチ䜜成/曎新/削陀および䜜成ロヌルバックロゞックのためのjsSDKの䞍必芁な耇雑さ

この堎合は䜿甚しなくおも、デバむスリク゚ストを分割およびマヌゞするためのSDKの機胜はただかなり䟡倀があるず思いたす

マルチキャストデバむスの@johanstokkingNSは、MIC蚈算に1.1のSNwkSIntKeyのみを必芁ずしたす。 実際、 FNwkSIntKeyずNwkSEncKeyはIMOを蚭定するこずを蚱可されるべきではありたせん。

  • フロヌ党䜓を䞭止する機胜を远加する必芁がありたす。その結果、既に䜜成されおいるレゞストリ゚ントリはすべお削陀されたす。

    • 同様に、前の手順に進むには、フォヌムを「曎新モヌド」にする必芁がありたすISを陀いお、゚ンドポむントは同じであるため、比范的簡単なはずです

フィニッシュか䜕かを抌す前に䜕かを䜜成するべきではないず思いたす。 りィザヌドを行ったり来たりしおブラりザりィンドりを閉じおも、デバむスが半分䜜成されるこずはありたせん。

  • 私が芋おいる問題の1぀は、アプリケヌションサヌバヌのステップが非垞に浅くこれは埌で倉曎される可胜性がありたすか、ペむロヌド圢匏オプションを远加するこずも、デバむスの䜜成䞭のナヌザヌのニヌズに実際には䞀臎しおいたせん。

ここでアプリケヌションパッケヌゞの構成を远加したす぀たり、リモヌトマルチキャストセットアップ、断片化されたデヌタブロック転送、Semtechモデムオプションなど。 そうです、今は浅いですが、拡匵されたす。

  • 解決策は、ASずJSの䞡方のステップが非垞に単玔で盞互䟝存しおいないこずを前提ずしお、それらをマヌゞするこずです。 これはコンポヌネントによる分離に反するこずを私は理解しおいたすが、これは合理的な抜象化でフロヌ党䜓を単玔化するず思いたす。 特に、ステップ内でそれぞれのスタックコンポヌネントぞの接続を䌝達しないこずを考えるず。

私たちの将来のために、私はそれらを別々に保぀こずをお勧めしたす。 たた、それらを組み合わせるず、コンポヌネントの可甚性を条件ずしおこれらのペヌゞにレンダリングが行われるため、すでに耇雑なフロヌが耇雑になりたす。

  • スタック構成によっおは、1぀たたは2぀のステップしかないりィザヌドが䜜成される堎合がありたす。これは、りィザヌドのアンチパタヌンです。

    • たった1぀のステップの堎合、りィザヌドの偎面を非衚瀺/削陀するだけです。
    • 2぀のステップでは、この問題に察凊する必芁があるず思いたす🀷‍♂
  • りィザヌド゜リュヌションにより、ナヌザヌストヌリヌの_完了たでの時間_が倧幅に増加するこずを考慮する必芁がありたす

    • これは、倚くのデバむスを手動で䜜成する必芁がある状況で問題になる可胜性がありたすが、このナヌスケヌスのバッチ䜜成機胜を玹介し、CLI/スクリプトもそのような状況で圹立ちたす
    • それでも、V2コン゜ヌルデバむスの䜜成ずの違いず、ナヌザヌがこの倉曎をどのように認識するかを怜蚎しおください

コンポヌネントの分離ず柔軟な展開シナリオは、V2ず比范した堎合の重芁な倉曎の1぀であるため、これがV3コン゜ヌルで効果的であるこずは完党に理にかなっおいたす。

実際、倧量のデバむスを䜜成するには、ずにかくAPIずCLIを䜿甚する必芁がありたす。

1぀のステップでシナリオはありたせん。垞に、少なくずも2぀のステップです。

ペヌゞの代わりにタブをレンダリングするのはどうですか そうすれば、それはただ1ペヌゞですが、段階的に行ったり来たりするこずなく、物事に簡単にアクセスできたす。

@johanstokking

フィニッシュか䜕かを抌す前に䜕かを䜜成するべきではないず思いたす。

最埌のステップでのみ実際のリク゚ストを行う堎合は、3〜4回のリク゚ストを行うこずを意味したす。 さたざたなコンポヌネントから返された゚ラヌをどのように凊理したすか これを凊理し、゚ラヌのあるステップ/リセットストアなどにナヌザヌを移動したす。 耇雑です。 そのため、すべおのステップで倀を送信するこずをお勧めしたす。これは、埌続のすべおのステップで、送信された倀が有効であるず信頌できるためです。

りィザヌドを行ったり来たりしおブラりザりィンドりを閉じおも、デバむスが半分䜜成されるこずはありたせん。

私は、ナヌザヌがりィザヌドでデヌタを線集できるようにするこずに反察しおいたす送信に぀ながるステップに぀いお。 Mb、単䞀のコンポヌネントに栌玍されおいるオプションのフィヌルドのみおよび他のコンポヌネントはそれらを必芁ずしたせん、たずえばname 、 description 。 そうしないず、これの凊理が非垞に耇雑になりたす。

@kschiffer

スタック構成によっおは、1぀たたは2぀のステップしかないりィザヌドが䜜成される堎合がありたす。これは、りィザヌドのアンチパタヌンです。

ええず、私たちは代替゜リュヌションを受け入れおいたす。 䜕か提案はありたすか

最埌のステップでのみ実際のリク゚ストを行う堎合は、3〜4回のリク゚ストを行うこずを意味したす。 さたざたなコンポヌネントから返された゚ラヌをどのように凊理したすか これを凊理し、゚ラヌのあるステップ/リセットストアなどにナヌザヌを移動したす。 耇雑です。 そのため、すべおのステップで倀を送信するこずをお勧めしたす。これは、埌続のすべおのステップで、送信された倀が有効であるず信頌できるためです。

わかった。 コン゜ヌルがERにあるデバむスを凊理できるが、そのステップが倱敗したか、ナヌザヌがタブなどを閉じたためにJS / NS / ASで芋぀からない限り、これは問題ありたせん。

私は、ナヌザヌがりィザヌドでデヌタを線集できるようにするこずに反察しおいたす送信に぀ながるステップに぀いお。 Mb、単䞀のコンポヌネントに栌玍されおいるオプションのフィヌルドのみおよび他のコンポヌネントはそれらを必芁ずしたせん、たずえばname 、 description 。 そうしないず、これの凊理が非垞に耇雑になりたす。

どう蚀う意味ですか

たずえば、ASはフィヌルドを必芁ずせず、デバむスが存圚する必芁があるだけであるこずに泚意しおください。 したがっお、ASが存圚する堎合、ナヌザヌがASの倀を入力しなくおも、ASに空のデバむスを䜜成する必芁がありたす。

どう蚀う意味ですか

ごめん。 これは@kschifferの提案に向けられたした

同様に、前の手順に進むには、フォヌムを「曎新モヌド」にする必芁がありたすISを陀いお、゚ンドポむントは同じであるため、比范的簡単なはずです

りィザヌドを行ったり来たりしおブラりザりィンドりを閉じおも、デバむスが半分䜜成されるこずはありたせん。

これは将来の改善だず思いたす。 今のずころ、未完了のフロヌに関する通知をナヌザヌに衚瀺するだけです。 埌で、ナヌザヌは䞀般蚭定ペヌゞでデバむスを線集/削陀できたす。

ええず、私たちは代替゜リュヌションを受け入れおいたす。 䜕か提案はありたすか

ええず、この特定の状況の_゚ッゞ-casiness_を考えるず、この問題を抱えお生きおも倧䞈倫だず思いたす。 あなたの蚀葉遣いは、私が提案された解決策なしで懞念を蚀葉にするべきではないこずを瀺唆しおいたすが、私がすぐに芋぀けるこずができない堎合、私は他の人にいく぀かを思い付く機䌚を䞎えたいず思いたす。

私は、ナヌザヌがりィザヌドでデヌタを線集できるようにするこずに反察しおいたす送信に぀ながるステップに぀いお。 Mb、単䞀のコンポヌネントに栌玍されおいるオプションのフィヌルドのみおよび他のコンポヌネントはそれらを必芁ずしたせん、たずえばname 、 description 。 そうしないず、これの凊理が非垞に耇雑になりたす。

これも、りィザヌドパタヌンのベストプラクティスに違反したす。 特にこれらが盞互に䟝存しおいるこずを考えるず、ナヌザヌは以前のフィヌルドを修正たたは単に怜査したいず思うでしょう。 最初はこの機胜を含めなくおも倧䞈倫ですが、最終的には远加する必芁がありたすたずえば、問題を远跡したす。

そうしないず、これの凊理が非垞に耇雑になりたす。

䞀般的に蚀っお、耇雑なフロント゚ンドロゞックを実装する必芁性は、UXぞの取り組みに圱響を䞎えるべきではありたせん。

これは将来の改善だず思いたす。 今のずころ、未完了のフロヌに関する通知をナヌザヌに衚瀺するだけです。 埌で、ナヌザヌは䞀般蚭定ペヌゞでデバむスを線集/削陀できたす。

最適ではありたせんが、最終的にこれを匷化する限り、私には受け入れられたす。

オフラむンで説明したように、これが最初の提案です。

デバむスを䜜成する

  1. 䞀般蚭定

    • 田畑



      • ids


      • オプションのname


      • オプションのdescription


      • オプションのattributes


      • 必芁なアクティベヌションモヌドOTAA、ABPたたはマルチキャスト


      • クラスタヌ内のNSの堎合





        • lorawan_version



        • lorawan_phy_version






    • この手順では、ISでのみデバむスを䜜成したす。 そうすれば、識別子が無料であるこずがわかりたす

    • アクティベヌションモヌドはセッション状態で䜿甚されたす

    • クラスタ内のNSでない堎合は、りィザヌドを簡単にするために、セッション状態で既知の最も高いバヌゞョン぀たり、それぞれ1.1.0ず1.1.0-Aを䜿甚できたす。

  2. LoRaWAN蚭定

    • クラスタ内のNSの堎合フィヌルド

      • lorawan_version 必須

      • lorawan_phy_version 必須

      • supports_joinアクティベヌションモヌドがOTAAの堎合に蚭定必須

      • multicastは、アクティベヌションモヌドがマルチキャストの堎合に蚭定されたす

      • supports_class_b

      • supports_class_c

      • frequency_plan_id 必須

      • mac_settings.supports_32_bit_f_cnt

      • mac_settings.factory_preset_frequencies

      • mac_settings.ping_slot_data_rate_index.value

      • mac_settings.ping_slot_frequency

      • mac_settings.ping_slot_periodicity.value

      • mac_settings.rx2_data_rate_index.value

      • min_frequency

      • max_frequency

    • クラスタ内のNSの堎合アクティベヌションモヌドがOTAAの堎合のフィヌルド

      • 倖郚JSを䜿甚するかどうかのチェックボックスデフォルトでオン

    • アクティベヌションモヌドがABPたたはマルチキャストの堎合のフィヌルド

      • クラスタ内のNSたたはASの堎合 session.dev_addr

      • クラスタ内のNSたたはASの堎合 session.keys.session_key_idを生成したす

      • クラスタ内のNSの堎合 session.keys.f_nwk_s_int_key.key -必須

      • クラスタ内のNSの堎合 session.keys.s_nwk_s_int_key.key LW> = 1.1.0の堎合-必須

      • クラスタ内のNSの堎合 session.keys.nwk_s_enc_key.key LW> = 1.1.0の堎合-必須

      • クラスタ内のASの堎合 session.keys.app_s_key.key -必須

      • クラスタ内のNSの堎合 session.last_conf_f_cnt_down

      • クラスタ内のNSの堎合 session.last_n_f_cnt_down

    • クラスタ内のNSの堎合アクティベヌションモヌドがABPの堎合のフィヌルド

      • mac_settings.resets_f_cnt

    • クラスタ内のNSたたはASの堎合アクティベヌションモヌドがABPの堎合のフィヌルド

      • session.last_f_cnt_up -これはセキュリティのために必芁です

    • クラスタヌ内のNSの堎合アクティブ化モヌドがABPたたはOTAAの堎合のフィヌルド

      • mac_settings.adr_margin
      • mac_settings.class_b_timeout
      • mac_settings.class_c_timeout
      • mac_settings.desired_adr_ack_delay_exponent.value
      • mac_settings.desired_adr_ack_limit_exponent.value
      • mac_settings.desired_max_duty_cycle.value
      • mac_settings.desired_rx1_data_rate_offset
      • mac_settings.desired_rx1_delay.value
      • mac_settings.desired_rx2_data_rate_index.value
      • mac_settings.desired_rx2_frequency
      • mac_settings.max_duty_cycle.value
      • mac_settings.rx1_data_rate_offset
      • mac_settings.rx1_delay.value
      • mac_settings.status_count_periodicity
      • mac_settings.status_time_periodicity
      • mac_settings.supports_32_bit_f_cnt
      • mac_settings.use_adr
    • これにより、デバむスがNSおよびASに蚭定されたすクラスタヌ内の堎合。 OTAAデバむスを䜿甚しおいる堎合、珟時点ではASに蚭定するものはありたせんが、䞀貫性を求める必芁がありたす。

  3. クラスタ内のASの堎合アプリケヌション蚭定

    • 田畑



      • payload_formatters



    • これにより、デバむスがASに蚭定されたす

  4. JSがクラスタヌ内にあり、OTAAの堎合、および倖郚JSを䜿甚しおいない堎合セキュリティ蚭定

    • 田畑



      • root_keys.root_key_idを生成したす


      • root_keys.app_key.key


      • root_keys.nwk_key.key LW> = 1.1.0の堎合


      • resets_join_nonces


      • home_net_id


      • network_server_kek_label


      • application_server_kek_label


      • application_server_id



    • これにより、デバむスがJSに蚭定されたす

デバむスを曎新する

ここでは、基本的にりィザヌドのステップをタブずしお、タブ付きのアプロヌチを䜿甚したす。

ここで重芁なのはそれです。

  • ids 、 supports_join 、 multicastは読み取り専甚です
  • アクティベヌションモヌドは次の順序で評䟡されたす。

    • OTAAクラスタヌにNSがない堎合、たたはクラスタヌにNSがあり、NSがsupports_joinず蚀っおいる堎合

    • ABPクラスタヌ内にNSが必芁ですその堎合にのみ関連したす !supports_join && !multicast

    • マルチキャストクラスタヌ内にNSが必芁ですその堎合にのみ関連したす !supports_join && multicast ただし、 multicastで十分です

デバむスの曎新をサポヌトするためのいく぀かの䜿甚䟋

  • コン゜ヌルはクラスタヌ内にNS、AS、およびJSを含めるこずができたすが、デバむスはNS、AS、たたはJSに含たれおいない可胜性がありたすコン゜ヌルは404を取埗したす。 これは有効なケヌスであり、コン゜ヌルがこれを凊理する必芁がありたす。 䟋ずしお、クレヌムされたデバむスがありたす。このデバむスはERずJSに蚭定されおいたすが、NSずASにはただ蚭定されおいたせん。
  • 前のバヌゞョンに基づいおERずJSにのみ存圚するデバむスのLoRaWANずアプリケヌションの蚭定を蚭定したす぀たり、NSずASに蚭定したす
  • lorawan_versionずlorawan_phy_versionを倉曎するこれにより制玄が倉曎されたす
  • 「倖郚JS」オプションの倉曎。 ぀たり、既存のデバむスがあり、cluster-JSでルヌトキヌを構成するずしたす。 次に、このチェックボックスをオフにするず、ナヌザヌは[セキュリティ蚭定]タブでルヌトキヌを蚭定できるようになりたす。
  • 䞀括むンポヌトを介しお、デバむスはJSで䜜成され、ルヌトキヌを持぀こずができたすが、それらは公開されたせん。 今日のように、ナヌザヌはルヌトキヌがそこにあるこずを確認できるはずですが root_keys != nil 、公開されおいたせん root_keys.app_key == nullなど。 ナヌザヌはルヌトキヌをそのたたにしおおくこずができるはずです

䞀般的なもの

  • キヌの堎合、入力フィヌルドたたはランダム生成ボタン
  • 倖郚JSず公開されおいないルヌトキヌの違い。

    • 倖郚JSは、JSがNSず同じクラスタヌ内にない堎所です。 これにより、OTAAデバむスを䜜成できたすが、キヌは別の堎所で構成されおいるため、セキュリティ蚭定を入力する必芁はありたせん。

    • 公開されおいないルヌトキヌは、デバむスがクラスタヌロヌカルJS内にある堎所ですが、JSはルヌトキヌを公開したせん。 これはセキュリティのためです。぀たり、JSがルヌトキヌにアクセスできるが、それらを公開しない安党な芁玠の堎合です。

https://github.com/TheThingsNetwork/lorawan-stack/issues/579#issuecomment -525719408には、NSに必芁なすべおのものがすでに含たれおいるず思いたす。
すべおのmac_settingsは、すべおの非マルチキャストデバむスに蚭定できるようにする必芁があるず思いたす。
マルチキャストデバむスの堎合、以䞋のみが意味をなしたす。

  • "mac_settings.factory_preset_frequencies"
  • "mac_settings.ping_slot_data_rate_index.value"
  • "mac_settings.ping_slot_frequency"
  • "mac_settings.ping_slot_periodicity.value"
  • "mac_settings.rx2_data_rate_index.value"
  • "mac_settings.rx2_frequency"

倚分明確にするためにいく぀かのこず

䜜成

  1. 䞀般蚭定
    a。 ERでデバむスを䜜成する堎合、NS / AS/JSアドレスは蚭定したせん。 デバむスがそれらに蚭定されおいるずきにER登録を曎新したすか 倖郚JSを䜿甚しおいる堎合はどうなりたすか
    b。 アクティベヌションモヌドをERに保存したすか
    c。 phy / macバヌゞョンをERに保存したすか
  2. LoRaWAN蚭定
    a。 supports_class_bどうですか
  3. アプリケヌションの蚭定
    a。 はい、これは、デバむスをASに2回蚭定したこずを意味する可胜性がありたす

アップデヌト

  • アクティベヌションモヌドこれをERに保存するず、はるかに簡単になりたす
  • 404のみを確認したすか、それずもERのNS / AS / JSアドレスも確認したすか
  • たずえば、「倖郚JS」をtrueに倉曎するずきに、個々のNS / AS / JS登録を削陀したり、NSでデバむスの状態をリセットしたりできるず䟿利だず思いたす。

䞀般的なもの

  • _ "倖郚JSは、JSがNSず同じクラスタヌ内にない堎所です" _これは「join_server_addressがコン゜ヌル構成のJSアドレスず同じではない」のようになりたす。

トップレベルのフィヌルドに぀いお話しおいる堎合
https://github.com/TheThingsNetwork/lorawan-stack/blob/375c82cc068bbadb72b887e25631f8f2dc03a366/api/end_device.proto#L395 -L418このチャンク党䜓はNSに属しおいたすただし、これらすべおが必芁なわけではありたせん

m{in,ax}_frequencyはマルチキャストには適甚されたせん

@rvolosatovs

579コメントにはすでにNSに必芁なものがすべお含たれおいるず思いたす。

すべおのmac_settingsは、すべおの非マルチキャストデバむスに蚭定できるようにする必芁があるず思いたす。
マルチキャストデバむスの堎合、以䞋のみが意味をなしたす。

この問題の問題の1぀は、コメントに埋め蟌たれおいる情報の量です。

適切な堎所にフィヌルドを_正確に_远加しおいただけたすか 箇条曞きのリスト党䜓をコピヌしおいただければ問題ないので、最終バヌゞョンが完成するたで段階的に取り組んでいきたす。


@htdvisser

  1. 䞀般蚭定
    a。 ERでデバむスを䜜成する堎合、NS / AS/JSアドレスは蚭定したせん。 デバむスがそれらに蚭定されおいるずきにER登録を曎新したすか 倖郚JSを䜿甚しおいる堎合はどうなりたすか

AS / NS / JSでデバむスを蚭定するずきに、アドレスを曎新する必芁があるず思いたす。

b。 アクティベヌションモヌドをERに保存したすか

いいえ、珟時点ではそのためのフィヌルドはありたせん。実際には必芁ありたせん。これにより、䞍敎合の䜙地が生たれたす。

c。 phy / macバヌゞョンをERに保存したすか

いいえ、APIドキュメントを参照しおください。 繰り返しになりたすが、私はその必芁性を認識しおおらず、それは矛盟の䜙地を生み出したす。

a。 supports_class_bどうですか

ええ、19たで、それを远加する必芁があるず思いたす。 @rvolosatovs必芁に応じお、これを曎新バヌゞョンに含めおください。

  1. アプリケヌションの蚭定
    a。 はい、これは、デバむスをASに2回蚭定したこずを意味する可胜性がありたす

はい、それは害はありたせん

アップデヌト

  • アクティベヌションモヌドこれをERに保存するず、はるかに簡単になりたす

はい、でも簡単に行けばいいのか、それが完党に圓おはたるのかわかりたせん。 ホットパスで利甚できるようにする必芁がありたす。

たた、きれいな状態から始めるこずができれば簡単です。 ただし、䞋䜍互換性が必芁です。 lorawan_versionがERにない堎合はヒュヌリスティックを远加し、NSからの条件付き取埗を導入したす。

  • 404のみを確認したすか、それずもERのNS / AS / JSアドレスも確認したすか

アドレスが蚭定されおいる堎合にのみ404を取埗できたす。それ以倖の堎合は、取埗するものがありたせん。 䞡方を「そのレゞストリにない」ず解釈する必芁がありたす。 ISずAS/NS / JSでの䜜成が同時に行われないずいう理由だけで、ここで゚ラヌを起こすこずはできたせん以前ず同じように。ナヌザヌは、コン゜ヌルによっお䜜成された䞍敎合を回埩できるはずです。

  • たずえば、「倖郚JS」をtrueに倉曎するずきに、個々のNS / AS / JS登録を削陀したり、NSでデバむスの状態をリセットしたりできるず䟿利だず思いたす。

はい、埌でやりたしょう

  • _ "倖郚JSは、JSがNSず同じクラスタヌ内にない堎所です" _これは「join_server_addressがコン゜ヌル構成のJSアドレスず同じではない」のようになりたす。

はい、それは確かにそれをチェックする方法です。 join_server_addressは、盞互運甚機胜を䜿甚しお空にするこずもできたす。

@bafoninsグラフの゜ヌスはただありたすか
すでにそれを構築するために倚くの䜜業が行われたので、明確な衚珟を持぀ためにそれを完党にするためにそれを曎新する必芁があるず思いたすか
ここでの議論を乱雑にしないために、NS郚分をオフラむンで曎新するこずもできたす。

graph
可胜なすべおのNSフィヌルドでグラフを曎新したした
赀のフィヌルドは必須です

@rvolosatovsは、デバむスを䜜成および曎新するずきにコン゜ヌルに衚瀺するフロヌずフィヌルドを定矩するこずを目的ずしおいたす。

そのような、

  • mac_state.lorawan_versionの倉曎を蚱可するべきではありたせん
  • 今のずころ、CLIを介しおmac_state.ping_slot_periodicityを実行できたす
  • ナヌザヌがsupports_class_b 、 supports_class_c 、 mac_state.device_classをどのように蚭定するかを考えおください。 これは䜜成の䞀郚であり、曎新の䞀郚ですが、盞互にどのように関係しおいたすか
  • 個々のカりンタヌを倉曎するべきではありたせん。 「フレヌムカりンタヌのリセット」ボタンで実行できたすこれは、V2コン゜ヌルの堎合のように、カりンタヌを0に蚭定する別のアクションにするこずができたす。
  • mac_settingsずmac_state.desired_parametersのコン゜ヌルで必芁な蚭定を慎重に遞択する必芁がありたす。 @htdvisserここで考えられたすか

https://github.com/TheThingsNetwork/lorawan-stack/issues/579#issuecomment-553347858で順序を倉曎したした。 そのリストで段階的に䜜業しおください。

適切な堎所に正確にフィヌルドを远加しおいただけたすか

私はこの質問に答えたした。぀たり、NSで蚭定でき、蚭定する必芁があるすべおのフィヌルドを提瀺したした。 たたは、少なくずもそれが私があなたの質問を理解した方法です。

コン゜ヌルに䜕を衚瀺するかに぀いおは、すべおのmac_stateはおそらくCLIを介しおのみ蚭定可胜である必芁がありたすが、既存のセッションに登録されおいるABP/マルチキャストデバむスやOTAAデバむスの堎合はそれが必芁になる堎合がありたす。したがっお、MAC状態。
コメントを曎新したす。

個々のカりンタヌを倉曎するべきではありたせん。 「フレヌムカりンタヌのリセット」ボタンで実行できたすこれは、V2コン゜ヌルの堎合のように、カりンタヌを0に蚭定する別のアクションにするこずができたす。

ABPずマルチキャストのダりンリンクフレヌムカりンタヌを蚭定できる必芁がありたす。そうしないず、NSはダりンリンクを送信できたせん。
アップリンクフレヌムカりンタヌの堎合、ABPのセキュリティの芳点からも非垞に圹立ちたす

デバむスを曎新する

ここでは、基本的にりィザヌドのステップをタブずしお、タブ付きのアプロヌチを䜿甚したす。

@bafoninsからの最初のコメントに瀺されおいるように、ここではアコヌディオンアプロヌチを䜿甚したしょう。
image

氎平方向のスペヌスに関する問題が少なくなり、 Edit / Createボタンでモヌドを区別できるようになりたす。

@rvolosatovs

ABPずマルチキャストのダりンリンクフレヌムカりンタヌを蚭定できる必芁がありたす。そうしないず、NSはダりンリンクを送信できたせん。
アップリンクフレヌムカりンタヌの堎合、ABPのセキュリティの芳点からも非垞に圹立ちたす

これが簡単であれば、私たちはそれを行うこずができたす。 実際、2぀たたは3぀の入力ボックスは、特定のアクションをトリガヌするリセットボタンよりも単玔な堎合がありたす。

コン゜ヌルに䜕を衚瀺するかに぀いおは、すべおのmac_stateはおそらくCLIを介しおのみ蚭定可胜である必芁がありたすが、既存のセッションに登録されおいるABP/マルチキャストデバむスやOTAAデバむスの堎合はそれが必芁になる堎合がありたす。したがっお、MAC状態。

わかりたした。 「新しいABPデバむスずリセットされたABPデバむス」を「すでにネットワヌク䞊にある既存のABPデバむス」から分離する必芁があるず思いたす。

前者は完党である必芁があるため、 mac_state ぀たり、工堎出荷時のリセット呚波数、RX1遅延、RX2蚭定などを含める必芁がありたすが、$$ 2 mac_state.desired_parameters $は含めないでください。

埌者は移行を介しお実行する必芁があり、埌でコン゜ヌルで埮調敎蚭定を远加できたす。 今のずころCLIを䜿甚する必芁がありたす。


曎新しおいただきありがずうございたす

LoRaWAN蚭定

  • クラスタ内のNSの堎合フィヌルド

    • mac_settings.factory_preset_frequencies

    • mac_settings.ping_slot_data_rate_index.value

    • mac_settings.ping_slot_frequency

    • mac_settings.ping_slot_periodicity.value

    • mac_settings.rx2_data_rate_index.value

これらはOTAAに必芁ですか これはABPずマルチキャストだけではありたせんか

@johanstokking

LoRaWAN蚭定

  • クラスタ内のNSの堎合フィヌルド

    • mac_settings.factory_preset_frequencies

    • mac_settings.ping_slot_data_rate_index.value

    • mac_settings.ping_slot_frequency

    • mac_settings.ping_slot_periodicity.value

    • mac_settings.rx2_data_rate_index.value

これらはOTAAに必芁ですか これはABPずマルチキャストだけではありたせんか

すべおのMAC蚭定は蚭蚈䞊オプションです。
これらが「必須」である唯䞀のケヌスは、クラスBのマルチキャストデバむスです。これは、クラスBの操䜜の詳现によるものです。
それずは別に、最良の結果を埗るにはABPにfactory_preset_frequenciesが必芁になる可胜性がありたすが、OTAAデバむスがその蚭定を行うこずを劚げるものは䜕もありたせん。

すべおのMAC蚭定は蚭蚈䞊オプションです。
これらが「必須」である唯䞀のケヌスは、クラスBのマルチキャストデバむスです。これは、クラスBの操䜜の詳现によるものです。

わかった

それずは別に、最良の結果を埗るにはABPにfactory_preset_frequenciesが必芁になる可胜性がありたすが、OTAAデバむスがその蚭定を行うこずを劚げるものは䜕もありたせん。

OTAAには効果がありたせん。 仕様ではデフォルトの結合呚波数が必芁であり、チャネルはjoin-acceptおよびMACコマンドを介しお着信したす。 OTAAデバむスのプリセット呚波数の垯域倖構成があっおはなりたせん。

@bafoninsは、この問題に関するステヌタスの曎新ずタむムラむンを提䟛できたすか

app_s_keyずskip_payload_cryptoの堎合、次のようになりたす。

  • ASは、゚ンドデバむスのフィヌルドskip_payload_cryptoを尊重したす。 trueの堎合、ASはペむロヌドの暗号化ず埩号化を実行したせん

    • ASは、アプリケヌションレベルでもペむロヌドフォヌマッタヌのようにリンクを介しお skip_payload_cryptoを取埗したす。これは、゚ンドデバむスの蚭定よりも優先されたす。

  • ASにはおそらく垞にapp_s_keyがありたすが、ラップされおいる可胜性がありたす。぀たり、 session.keys.app_s_key.keyは蚭定されおいたせんただし、 encrypted_keyずkek_labelは蚭定されおいたす

    • ASにKEKがない堎合、぀たり暗号化されたキヌをアンラップできない堎合。 さお、その゚ラヌ。 おそらく暗号化されたapp_s_keyをそのたたクラむアントに返したす

  • コン゜ヌルで、 skip_payload_cryptoがtrue ゚ンドデバむスたたはアプリケヌションリンク䞊に蚭定されおいる堎合は、 app_s_keyを気にしないでください無効にしおください。気にしないでください
このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡