Lorawan-stack: Letzte Uplink-Nachricht und Up- & Downlink-Fcount anzeigen

Erstellt am 17. MĂ€rz 2020  Â·  16Kommentare  Â·  Quelle: TheThingsNetwork/lorawan-stack

AUSGABE VON https://github.com/TheThingsIndustries/lorawan-stack/issues/1971 verschoben, Original von @laurensslats

Zusammenfassung

Ich liebe diese Funktion der V2-Konsole, die derzeit in V3 fehlt.
Screenshot 2020-02-20 at 15 17 34

...

Warum brauchen wir das?

Einfaches Debugging, da es Aufschluss darĂŒber gibt, ob das GerĂ€t betriebsbereit ist und Daten vom Netzwerk erfasst werden.

...

Was ist schon da? Was siehst du jetzt?

Screenshot 2020-02-20 at 15 10 54

...

Was fehlt? Was willst du sehen?

Was ist mit so etwas? Vielleicht mit etwas magischer UI-Sauce von Kevin
Screenshot 2020-02-20 at 15 28 31

...

Umfeld

Chrom

...

Wie schlagen Sie vor, dies umzusetzen?

FĂŒgen Sie einige Felder in der Konsole hinzu
...

Können Sie dies selbst tun und einen Pull-Request einreichen?

Ich brauche pure Brainpower von @kschiffer
...

console in progress uweb

Alle 16 Kommentare

Ich bin mir nicht sicher, ob dies dasselbe ist, aber es wĂ€re sehr hilfreich, die session des NS auf Existenz, Aktivierungsdatum/-zeit und möglicherweise Frame-ZĂ€hler zu ĂŒberprĂŒfen.

@rvolosatovs behalten wir einen "zuletzt gesehenen" Zeitstempel in NS?

@rvolosatovs behalten wir einen "zuletzt gesehenen" Zeitstempel in NS?

Nein, aber es kann von RecentUplinks ( RecentUplinks[len(RecentUplinks)-1].ReceivedAt ) abgeleitet werden

@rvolosatovs behalten wir einen "zuletzt gesehenen" Zeitstempel in NS?

Nein, aber es kann von RecentUplinks ( RecentUplinks[len(RecentUplinks)-1].ReceivedAt ) abgeleitet werden

Das habe ich getan, aber ich dachte mir, dass wir uns fĂŒr die vollstĂ€ndige FunktionalitĂ€t in den Event-Stream einklinken mĂŒssten, um die Zahlen in Echtzeit auf dem neuesten Stand zu halten.

Das habe ich getan, aber ich dachte mir, dass wir uns fĂŒr die vollstĂ€ndige FunktionalitĂ€t in den Event-Stream einklinken mĂŒssten, um die Zahlen in Echtzeit auf dem neuesten Stand zu halten.

Bevor ich fortfahre und es auf diese Weise umsetze, @htdvisser , denkst du, dass dieser Ansatz grĂŒndlich genug ist? Die Uplink-Downlink-Ereignisse enthalten nicht die aktuelle Frameanzahl, daher mĂŒsste ich sie basierend auf dem Anfangswert erhöhen, den ich von der SitzungsstĂŒtze im EndgerĂ€t erhalten habe.

Das ist nicht der richtige Weg, fĂŒrchte ich.

Schicken wir die BildzÀhler nicht mit? Das wÀre dann das eigentliche Problem.

@rvolosatovs behalten wir einen "zuletzt gesehenen" Zeitstempel in NS?

Nein, aber es kann von RecentUplinks ( RecentUplinks[len(RecentUplinks)-1].ReceivedAt ) abgeleitet werden

Das habe ich getan, aber ich dachte mir, dass wir uns fĂŒr die vollstĂ€ndige FunktionalitĂ€t in den Event-Stream einklinken mĂŒssten, um die Zahlen in Echtzeit auf dem neuesten Stand zu halten.

Leider ist es nicht so einfach, wie es auf den ersten Blick scheint.

  1. (ABP) GerĂ€t, fĂŒr das ResetsFCnt==true FCnt selbst zurĂŒcksetzen kann
  2. (OTAA) Das GerĂ€t kann sich wieder anschließen, was an sich die FCnt noch nicht zurĂŒcksetzen soll – FCnt wird entweder zurĂŒckgesetzt oder erhöht, abhĂ€ngig von der SitzungsschlĂŒssel-ID, die im nĂ€chsten empfangenen Daten-Uplink verwendet wird
  3. Der FCnt -Wert in der Uplink-Nutzlast ist nicht unbedingt das tatsÀchliche GerÀt FCnt , da im Uplink nur 16 LSB gesendet werden, wÀhrend die Frame-ZÀhler 32 Bit breit sein können.

All dies wird von NS (und 2. teilweise von AS) gehandhabt, und ich glaube sicherlich nicht, dass die Konsole das Gleiche tun sollte.

Ich denke, der Weg nach vorne besteht darin, Ereignisse fĂŒr (1.) - ns.device.reset und (2.) - ns.device.confirm_session (oder vielleicht ns.device.rejoin ?) hinzuzufĂŒgen.
FĂŒr (3.) mĂŒssen wir einen Weg finden, den vollen FCnt an die Konsole zu liefern. Möglicherweise möchten wir ein weiteres Ereignis einfĂŒhren, z. B. ns.up.data.match oder ns.up.data.handle , das die erfolgreiche Verarbeitung des Uplinks anzeigt und die vollstĂ€ndigen FCnt (und möglicherweise mehr) enthĂ€lt. Beachten Sie, dass ns.up.data.forward hier nicht verwandt ist und lediglich anzeigt, dass ein Uplink an AS gesendet wird. Es wird derzeit fĂ€lschlicherweise auf jedem Uplink veröffentlicht. Es wird jetzt auch nur veröffentlicht, wenn es tatsĂ€chlich an das AS weitergeleitet wird (PR eingehend). , enthĂ€lt die AS-Uplink-Payload nicht die vollstĂ€ndigen FCnt , sondern die im Uplink gesendeten FCnt (also 16 LSB)

Blockiert, bis wir zu einer Schlussfolgerung ĂŒber NS-Ereignisse kommen, um dies und das in NS zu implementieren.

Ok, ich verstehe, dass dies im Moment tatsĂ€chlich nicht machbar ist. Was ist dann mit dem last seen ? Ist es sicher, einen Anfangswert aus der GerĂ€teregistrierung zu erhalten und ihn dann ĂŒber relevante GerĂ€teereignisse (wie Uplink, bestĂ€tigter Downlink usw.) auf dem neuesten Stand zu halten?

Ok, ich verstehe, dass dies im Moment tatsĂ€chlich nicht machbar ist. Was ist dann mit dem last seen ? Ist es sicher, einen Anfangswert aus der GerĂ€teregistrierung zu erhalten und ihn dann ĂŒber relevante GerĂ€teereignisse (wie Uplink, bestĂ€tigter Downlink usw.) auf dem neuesten Stand zu halten?

Ja, ns.up.data.receive , ns.up.join.receive , ns.up.rejoin.receive ist das, wonach Sie suchen

NS veröffentlicht nun das ns.up.data.process Event, das den Uplink mit vollem FCnt als Payload enthÀlt
2020-04-09-23:30:32-screenshot

Bitte verwenden Sie den Wert im Uplink als tatsÀchlich aktive DevAddr und FCntUp des GerÀts

FĂŒr Downlinks haben wir derzeit keine Ă€hnliche FunktionalitĂ€t, aber das ist auch nicht der Schwerpunkt dieser Ausgabe, beginnen wir nur mit dem Uplink FCnt und fĂŒgen dann zu einem spĂ€teren Zeitpunkt Downlinks hinzu (Beachten Sie, dass wir je nach LoRaWAN-Version möglicherweise tatsĂ€chlich 2 verschiedene Downlinks haben Frame-ZĂ€hler - einer fĂŒr NS und einer fĂŒr AS, daher ist es auch viel weniger trivial, dass der Uplink-Frame-ZĂ€hler ebenfalls verwendet wird.)

Wenn wir den letzten Uplink in der Anwendung kennen, ersetzen wir in der Anwendungsansicht (Ă€hnlich wie auf der Gateway-Übersichtsseite) Linked durch Last seen .

Screenshot 2020-05-13 at 11 51 55

Wenn wir den letzten Uplink in der Anwendung kennen, ersetzen wir in der Anwendungsansicht (Ă€hnlich wie auf der Gateway-Übersichtsseite) Linked durch Last seen .

Screenshot 2020-05-13 at 11 51 55

Es wĂ€re auf jeden Fall schön, diese Informationen global fĂŒr die Anwendung anzuzeigen, aber dies wĂŒrde bedeuten, dass die Konsole alle mit der Anwendung verbundenen EndgerĂ€te nacheinander prĂŒfen muss, um den anfĂ€nglichen zuletzt gesehenen Status anzeigen zu können. Das halte ich fĂŒr nicht praktikabel, wenn wir von Anwendungen mit potenziell Hunderten oder Tausenden von EndgerĂ€ten ausgehen mĂŒssen.

Zwei Dinge könnten mir einfallen:

  1. Ich könnte die zuletzt gesehenen Informationen anzeigen, sobald sie durch den eingehenden Strom von GerĂ€tenachrichtenereignissen verfĂŒgbar werden. Je nach Einrichtung der Anwendung kann es jedoch dazu fĂŒhren, dass solche Ereignisse nicht zeitnah verfĂŒgbar sind (denken Sie an EndgerĂ€te, die stĂŒndlich oder seltener Downlinks senden).
  2. Wir könnten einen Schwellenwert der GerÀteanzahl verwenden, nach dem wir die Berechnung des zuletzt gesehenen Werts zunÀchst beenden. Wenn eine Anwendung mehr als 100 GerÀte hat, ist es auch sehr wahrscheinlich, dass die erforderlichen GerÀteereignisse sehr bald nach dem Laden der Anwendungsseite eintreffen.

@htdvisser @rvolosatovs Übersehe ich vielleicht etwas? Können Sie sich alternativ eine Möglichkeit vorstellen, diese Daten zu aggregieren und ĂŒber einen API-Endpunkt verfĂŒgbar zu machen?

ApplicationLinkStats hat nur last_up_received_at und last_downlink_forwarded_at :

https://github.com/TheThingsNetwork/lorawan-stack/blob/develop/api/applicationserver.proto#L56 -L69

Geschlossen ĂŒber #2585

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

ZeroSum24 picture ZeroSum24  Â·  3Kommentare

MatteMoveSRL picture MatteMoveSRL  Â·  7Kommentare

johanstokking picture johanstokking  Â·  6Kommentare

ecities picture ecities  Â·  5Kommentare

johanstokking picture johanstokking  Â·  8Kommentare