NEWS
Test Adapter LoraWan v0.2.x GitHub/Latest
-
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
Go4It, no worries!
Schon angefangen und bei der ersten Aktion über einen Fehler gestolpert. Da hab' ich wohl ein Händchen für.
Issue erstellt.
-
@marc-berg
Ein Issue im Adapter zu erstellen, wäre gar nicht nötig gewesen, da wir hier auch zeitnah reagieren. Ich werde mir das gern morgen genauer ansehen, beim LT22222 ist, was die Zeitsteuerung angeht, auch eine Frage der Firmware Version.
Die zu dem Adapter mitgelieferten Konfigurationen sind als Beispiele zu verstehen. Vorschlag:
Du änderst in der Instanz bei den DL Konfigurationen den Namen des LT22222 in z.B. LT22222_A und änderst dort was immer dein Herz begehrt und das Device hergibt, trägst in deinem Device den Device Typ LT22222_A ein und bist ready2go.
Beim nächsten Adapter Start wird dann wieder (zusätzlich) die Konfiguration für das LT22222 erzeugt, welches du als Grundlage/Beispiel benutzen kannst, musst du aber nicht, da du dir jederzeit eigene DL Konfigurationen in der Instanz erstellen kannst. An einer Möglichkeit solche Geräte Konfigurationen zu exportieren/importieren arbeiten wir gerade.Siehe Anleitung:
-
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
, was die Zeitsteuerung angeht, auch eine Frage der Firmware Version.
Danke, das war mir nicht bewusst, dass es zwischen den Firmware-Versionen Unterschiede gibt.
Und jetzt habe ich es dank deiner Erklärung auch besser verstanden, wie das mit den Vorlagen/Konfigurationen abläuft.
-
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
Vorschlag:
Du änderst in der Instanz bei den DL Konfigurationen den Namen des LT22222 in z.B. LT22222_AWenn ich so vorgehe, entsteht im Objektbaum unter "...downlink.control" ein "Merge" aus den Konfigurationen für LT22222 und LT22222_A (auch wenn ich den Objektbaum lösche). Ich muss die Konfiguration am Anfang anders (z.B. "XYZ_A") benennen, damit ich eine unabhängige Konfig erstellen kann. Ist das ein Feature (im Sinne von Vererbung von Einstellungen) oder Bug?
-
@marc-berg Feature im Sinne von Vererbung.
Alle sich in der config "LT22222" befindenden downlink, werden auch beim "LT22222_A" hinzugefügt.
So musst Du beim "LT22222_A" nur die abweichenden Parameter konfigurieren. -
@marc-berg
Wenn Du FW Version ab 1.6 hast, kannst du (optional) 3 (doppel-) Byte für die Zeit schicken.
Dies wären dann max (FF FF FF) 16777215 ms, oder 4,66 Std.
Inwieweit das schalten eines mechanischen Relais im ms Bereich Sinn macht, musst Du selbst entscheiden, die DL Konfiguration sieht dann so aus: -
@ben1983 sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
Alle sich in der config "LT22222" befindenden downlink, werden auch beim "LT22222_A" hinzugefügt.
So musst Du beim "LT22222_A" nur die abweichenden Parameter konfigurieren.Okay, ich wollte neben Änderungen auch Parameter löschen, was so dann nicht geht. Aber kein Problem, dann benenne ich das Device anders.
-
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
Inwieweit das schalten eines mechanischen Relais im ms Bereich Sinn macht, musst Du selbst entscheiden,
Mein Garagentorantrieb benötigt einen kurzen Impuls (da reichen 250ms). Darum benötige ich weniger als 1 Sekunde.
-
@marc-berg
Dann reicht es, es A_LT22222 zu nennen -
@marc-berg
250ms sollten mit oben gezeigten DL Konfiguration ja funktionieren, kannst ja mal testen und berichten -
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
kannst ja mal testen und berichten
Tor öffnet und schließt wie vorgesehen
Wobei es in diesem Fall wohl besser ist, eine "Button" Konfig draus zu machen. Der Zeitraum ist ja immer identisch.
-
@marc-berg
Ja klar, kannst auch einen Button anlegen, der dann Garagentor oder so heißt.
Danke für die Rückmeldung.
So steht der Nutzung über den Adapter nichts mehr im Wege, oder? Deine Logik über NodeRed kannst du ja direkt weiter nutzen. -
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
So steht der Nutzung über den Adapter nichts mehr im Wege, oder?
Doch, meine begrenzte Zeit.
Habe vorher noch Fragen:
- es gibt ein Topic: "v3/<application>@ttn/devices/<device>/down/sent", in welchem die effektiv an das Gerät gesendeten Daten drin stehen (nicht die in der Queue). Konkret die Eigenschaft "downlink_sent". Darauf benötige ich Zugriff, sehe aber im Objektbaum keinen DP, der diese Daten aufnimmt. Wie könnte ich das umsetzen?
- Könnt ihr bitte konfigurierbar machen, ob man die Notifications erhalten möchte oder nicht? Für die Meldungen, die dort erscheinen, gibt es aus meiner Sicht das Log.
Danke!
-
@marc-berg
Falls ich dich richtig verstanden habe, findest du dies in
lorawan.0.ApplicatioID.devices.DevEUIXXXXXX.downlink.raw.jsonUm die Notification besser einzustellen zu können, kannst Du den Notification Adapter installieren. Falls ich es richtig verstanden habe, soll dies später in den Admin mit rein kommen.
-
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
Falls ich dich richtig verstanden habe,
lorawan.0.ApplicatioID.devices.DevEUIXXXXXX.downlink.raw.jsonNein, dort stehen nur die "Queued" Messages drin, die zum Versenden anstehen. Diese wurden noch nicht unbedingt an das Device gesendet (weil es z.B. noch schläft).
-
Ein weitere Frage in diesem Zusammenhang: Grundsätzlich kann man ja Downlink Messages nacheinander in die Queue stellen (control.push) oder aber die vorhandene Queue löschen und eine neue Message einstellen (control.replace). Wenn ich aber unter control.<Konfigurationselement> Daten zum Downlink einstelle, habe ich diese Option nicht, es wird immer an die vorhandene Queue angehangen. Richtig?
-
@marc-berg
Nur ist nicht richtig, wenn versendet wurde, findest du dort „downlink_sent“ (sorry fürs Bild, bin nicht am PC)
Stimmt, es wird immer angehängt, weil es in Chirpstack kein Replace gibt und wir es einheitlich haben wollten. -
@j_paul sagte in Test Adapter LoraWan v0.2.x GitHub/Latest:
Stimmt, es wird immer angehängt, weil es in Chirpstack kein Replace gibt und wir es einheitlich haben wollten.
Danke für deine Mühe. Ich muss jetzt erstmal überlegen, ob die Umstellung für mich sinnvoll ist, wenn ich am Ende für Up- und Downlinks doch wieder mit JSON hantieren muss.
Mein Usecase ist u.a. eine Minimierung des Akkuverbrauchs eines Zisternensensors bei gleichzeitig bester Messauflösung durch "intelligente" Steuerung der Mess- und Uploadintervalle. Dafür muss ich sicher wissen, welchen Intervall das Gerät zuletzt empfangen hat und ich muss in der Lage sein, den neuen zu setzenden Intervall innerhalb der "Sleep" Zeit mehrfach zu ändern.
-
@marc-berg
Du hattest zwar keine Frage gestellt, ich möchte aber trotzdem antworten, einfach auch damit für diejenigen, die hier mitlesen kein falscher Eindruck entsteht, dass man auch bei der sinnvollen Nutzung des Adapters "mit JSON hantieren muss", weil das nicht stimmt.Wenn man ein Video macht, wie ein Brief in einen Briefkasten geworfen wird, mag das als Nachweis gelten, dass der Brief verschickt wurde, aber kein Nachweis dafür, dass er empfangen wurde. Das ist nur mit Versand Nachnahme mit Rückschein möglich.
Genauso verhält es sich bei LoRaWAN, mit den im JSON eingebetteten Werten zum Versand, weil damit nur bestätigt wird, dass der Downlink erfolgreich versendet wurde. Das heisst noch lange nicht, dass er beim Gerät auch angekommen ist. Möchte man sicher sein, dass Downlink am Gerät angekommen ist, dann kann man den Downlink "mit Bestätigung" versenden. Das Gerät quittiert dann den Empfang mit einem Uplink.
Eine Minimierung des Akkuverbrauchs?
Als wenn man durch den Empfang von Downlinks und deren Verarbeitung keinen Akkuverbrauch hätte, im Gegenteil, durch das ständige Umkonfigurieren wird man den Akkuverbrauch mehr erhöhen, als durch Intervalländerungen einzusparen wäre.
Beste Messauflösung? Bei einer Zisterne?
Ist deine Zisterne dynamisch wie ein junges Wiesel? Intervalle von 20/15 von mir aus 10 Minuten, sollte für jeden UseCase ausreichend sein.
Du muss wissen welchen Intervall das Gerät als letztes empfangen hat?
Es wird wohl der sein, den du hingeschickt hast. Nicht nur dafür, sondern auch zur Berechnung des Flows (plus/minus Liter/Minute) setzten wir ein Script ein, welches den aktuellen Stand, mit dem vorherigen, im Verhältnis zwischen den beiden Timestamps setzt. Damit hat man den aktuellen Intervall, selbst wenn mal ein Paket verloren geht.
Außerdem:
Die Fair Use Policey von TTN besagt, dass Downlinks auf ein absolutes Minimum zu begrenzen und nur aus gutem Grund eingesetzt werden sollen. Kein guter Grund ist es die Lebensdauer einer 20€ Batterie um ein Tage verlängern zu wollen. Es gibt einen Grund warum die maximale Anzahl der Downlinks eines Geräts auf 10 DL in 24 Stunden begrenzt ist, nämlich damit alle etwas von diesem kostenfreien Netzwerk haben und nicht einzelne es benutzen, als wären sie die alleinigen Eigentümer.
Nachtrag, weil gefragt wurde:
Nein LoRaWAN ist nicht auf 10 Downlinks am Tag beschränkt, dies ist erstmal bei der Community Version von TTN in den Fair Use Policeys festgelegt und bei der "Bezahlversion" anders geregelt.
Wenn man einen eigenen LNS betreibt, wie z.B.- Chirpstack, ist man nur durch die gesetzliche Regelung begrenzt (1% Duty-Cycle und das ist bei 36 Sekunden "Sendezeit" in einer Stunde (3600 Sek.) und 60ms pro Paket im SF7 schon einiges, was da möglich ist.