AUSGABE VON https://github.com/TheThingsIndustries/lorawan-stack/issues/1971 verschoben, Original von @laurensslats
Ich liebe diese Funktion der V2-Konsole, die derzeit in V3 fehlt.
...
Einfaches Debugging, da es Aufschluss darĂŒber gibt, ob das GerĂ€t betriebsbereit ist und Daten vom Netzwerk erfasst werden.
...
...
Was ist mit so etwas? Vielleicht mit etwas magischer UI-Sauce von Kevin
...
Chrom
...
FĂŒgen Sie einige Felder in der Konsole hinzu
...
Ich brauche pure Brainpower von @kschiffer
...
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 werdenDas 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.
ResetsFCnt==true
FCnt
selbst zurĂŒcksetzen kannFCnt
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 wirdFCnt
-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
~Blockiert durch https://github.com/TheThingsNetwork/lorawan-stack/pull/2221 #2222~
NS veröffentlicht nun das ns.up.data.process
Event, das den Uplink mit vollem FCnt
als Payload enthÀlt
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
.
Wenn wir den letzten Uplink in der Anwendung kennen, ersetzen wir in der Anwendungsansicht (Ă€hnlich wie auf der Gateway-Ăbersichtsseite)
Linked
durchLast seen
.
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:
@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