Das Ganze geht momentan nur mit der Hiveeyes Terkin Datalogger-Software in Verbindung mit der CayenneLPP Encodierung der Daten. Der Datenfluss ist dann dieser
Dieser Service dient dazu, das Datenpaket von TTN so umzuschreiben, dass es von den Datenaquise-Services (DAQ) korrekt angenommen und verarbeitet werden kann. Es bestehen auch bereits Putsreq Endpoints, die von allen Teilnehmern verwendet werden können. Die URLs sind bei @Thias oder @clemens zu erfragen.
Für ein eigenes Bucket wird bei https://putsreq.com oder einer selbst gehosteten Instanz eine
für die Weiterleitung an bee-observer.org der Code von GIT /client/TTN/putsreq.bee-observer.js (raw) eingetragen. Zusätzlich muss hier noch für jeden node in Putsreq der Bee-Observer-Key und die zugehörige dev-ID eingetragen werden.
für die Weiterleitung an beep.nl der Code von GIT /client/TTN/putsreq.beep.js (raw) eingetragen. Ebenfalls in Putsreq der BEEP-Key und die zugehörige dev-ID eingetragen.
Eingehende Payloads von TTN können hier nach Einrichtung der Telemetrieeinheit und der TTN-App in dem Abschnitt POST betrachtet und später, bei erfolgreicher Annahme der Daten vom DAQ-Service, dessen Bestätigung im Response Abschnitt angesehen werden.
TTN (Console)
In der TTN Console eine Application einrichten. Nun der Application ein Device zugeordnen.
Wichtig! Die zu vergebende TTN dev_id muss dem Namensschema unter [1] entsprechen! Als Vorlage bitte hiveeyes-USER-LOCATION-NAMEOFHIVE verwenden, dann alle großgeschriebenen Platzhalter mit den eigenen (dann alles klein geschrieben) ersetzen, keine weiteren Bindestriche verwenden!
Payload Formats
In der Application “Payload Formats” aufrufen
in der ersten drop-down “Custom” auswählen
darunter auf “decoder” clicken und den Code von GIT /client/TTN/decoder.js 1:1 einfügen und abspeichern.
Ebenfalls in der Application “Integrations” aufrufen und mit
einem Click auf “add integration” eine neue hinzufügen, dann
“HTTP Integration” auswählen und dort
– Process ID: hiveeyes-putsreq
– URL: die Putsreq-Adresse (ohne /inspect) für die Datenweiterleitung zu Hiveeyes.org eintragen
– Method: POST
– speichern
Vielen Dank. Der spielt schon eine Rolle, aber er sitzt schon drei Schritte vorher in der Pipeline, wo er erstmal die Binärdaten vom Gerät dekodiert und für eine etwaige Serialisierung ins JSON Format bereitstellt, wie z.B. ttn-uplink-example.json.
Das darf natürlich nicht so sang- und klanglos über die Bühne gehen, finde ich, weil es konzeptionell ja gar nicht so verkehrt ist. Grundsätzlich ist es natürlich für uns und andere viel praktischer, wenn ein “first citizen” TTN Umsetzer in Kotori selbst untergebracht wird. Andererseits ist das Konzept rund um “kleine Code Schnipsel bemühen, um gezielte Probleme zu lösen, ggf. auch per JavaScript, weil man es eh gerade in der Hand hat, z.B. für den CayenneLPP Dekoder [1], oder anderswie auf der TTN Konsole” ja nicht dumm. Nur, dass PutsReq so viele Ressourcen verbraucht, war im wesentlichen das große Problem.
Ja achso, die Geschichte zur Generalisierung der WAN Adressierung ist klar, das meine ich nicht.
Ich meine nur, ob wir den PutsReq Dienst denn nicht schon abschalten können? Da kamen doch vor unserem kürzlichen Decoder Patch auf dem HTTP Kanal nicht erkannte TTN Payloads von Dir an, die jetzt ja scheinbar gut konvergieren, und keine Meldungen auf dem Fehlerkanal mehr verursachen.
Daher vermute ich, dass jetzt endlich mehr geht, wo es das vorher noch nicht tat, und die Daten des jeweiligen Kanals wunderbar in der Datenbank landen. Gleichzeitig vermute ich, dass wir den alten Umsetzer daher nicht mehr brauchen.
Hatte ich mal versucht, klappte aber nicht. Ich schaue heute Abend noch einmal. Die MQTT Subscription gab jedenfalls das komplette Payload aus. Im Moment nutze ich wieder putsreq.com, weil sehr stabil zuletzt
Du meinst, wenn man auf swarm.hiveeyes.org subscribed, siehst Du das komplette Payload von TTN, und dachtest, das wäre ein Indikator, dass der Dekoder nicht ordentlich arbeitet?
Ich glaube es ist andersrum: Der Dekoder ist nicht spezifisch für HTTP, sondern dekodiert erst nach der Annahme per MQTT. Der HTTP Kanal wiederum konvergiert ja die Nachrichten 1:1 nach MQTT, daher ist das beobachtete Verhalten “ganz normal”.
Auf Putsreq kann ich (noch) trotzdem nicht verzichten, weil ich zwei verschiedene Standorte im Level 3 vom Topic nutze bzw Kotori die Bindestriche in der DeviceID nicht in Slashes umsetzt so wie ich das in Putsreq gelöst hatte:
Daher kommen jetzt mit der DeviceID freiland-hive1 und der Webhook URL https://swarm.hiveeyes.org/api/hiveeyes/thias/freiland{/devID}/data die Daten in der DB freiland_freiland_hive1_sensors an. Würde aber gerne die bisherige DB weiterschreiben.
Ja, das wäre das WAN Adressierungsverfahren, wenn die Uplink → Downstream Kommunikation über die TTN Organisation / Application läuft, nicht? Aber Du kannst doch das HTTP Ziel auch pro Gerät konfigurieren, nicht?
Ja klar, wir wollen noch besser werden. Aber es wäre immerhin jetzt schon verfügbar.
Oh, ach. Nein, das will ich natürlich nicht vorschlagen. Ich dachte einfach nur daran, direkt pro-Device in der TTN Konsole eine Webhook-URL anzugeben, auf das richtige Ziel, pro Kanal individuell eben – und fertig ist die Laube.
Da es nun (Sommer 2023) die Möglichkeit gibt, Daten via TTN webhook an hiveeyes zu schicken und der selbstgehostetet PutsReq-Dienst einiges an Arbeit und Speicher verlangte und noch dazu nicht so stabil wie gewünscht lief, wollen wir den PutsReq-Dienst komplett abschalten.