openSenseMap akzeptiert Daten von TTN nicht


#1

Meine Integration von TTN mit openSenseMap via http funktionierte einwandfrei. Aber auf einmal dann doch nicht mehr. Wenn ich die POST-Daten auch auf einen zweiten Server schicke, dort abfange und dann manuell auf die openSenseMap poste, dann sehe ich die folgende Fehlermeldunt:
{“code”:422,“msg”:“malformed request: any of [dev_id, app_id, payload_fields, payload_raw] is missing”}

Das gepostete JSON folgt gleich unten. Für mich sieht das ok aus. Es sind auch all die Felder da, welche von der Fehlermeldung als abwesend erwähnt werden. Hat irgend jemand eine Ahung, was das Problem sein könnte?

{
“app_id”:“ag72d1”,
“dev_id”:“lora1”,
“hardware_serial”:“0092221382360033”,
“port”:1,
“counter”:0,
“is_retry”:true,
“payload_raw”:“9wejJdsHygE=”,
“payload_fields”:{
“5c050ba4b8bb8500199fba6d”:20.39,
“5c053ce2b8bb850019a9d230”:963.5,
“5c055477b8bb850019aea7e8”:20.11,
“5c055477b8bb850019aea7e9”:45.8
},
“metadata”:{
“time”:“2018-12-04T08:46:52.496803793Z”,
“frequency”:868.1,
“modulation”:“LORA”,
“data_rate”:“SF7BW125”,
“coding_rate”:“4/5”,
“gateways”:[
{
“gtw_id”:“eui-0005fcc23d116aa3”,
“timestamp”:1614750611,
“time”:“2018-12-04T08:46:52.471474Z”,
“channel”:0,
“rssi”:-112,
“snr”:-2.8,
“rf_chain”:1,
“latitude”:47.490482,
“longitude”:8.746677,
“altitude”:481,
“location_source”:“registry”
},
{
“gtw_id”:“eui-0002fcc23d0e102a”,
“timestamp”:3655032627,
“time”:“2018-12-04T08:46:52.470302Z”,
“channel”:0,
“rssi”:-114,
“snr”:1.5,
“rf_chain”:1,
“latitude”:47.503773,
“longitude”:8.71468,
“altitude”:450,
“location_source”:“registry”
},
{
“gtw_id”:“ttn_gateway_isc_0”,
“gtw_trusted”:true,
“timestamp”:2849797147,
“time”:“2018-12-04T08:46:50Z”,
“channel”:0,
“rssi”:-112,
“snr”:8.75,
“rf_chain”:1,
“latitude”:47.49691,
“longitude”:8.729511,
“location_source”:“registry”
}
]
},
“downlink_url”:“https://integrations.thethingsnetwork.org/ttn-eu/api/v2/down/ag72d1/sdd?key=ttn-account-v2._NlqXQ7S_LzxKsgqsxZFT9_K1daKgBjTh7gPOWFs9p0
}


#2

Hallo @ag72d1,

kannst du mir kurz sagen, was du für Einstellungen in der TTN Integration auf der openSenseMap hintelegt hast?

Grüße,
Matthias


#3

Hier ein screenshot.
Die unteren nicht sichtbaren Felder sind leer.


#4

sorry. das war von ttn. die daten von opensensemap folgen gleich.


#5

hier jetzt die osm Einstellungen für TTN:


#6

Danke für die Screenshots.

Die Konfiguration auf openSenseMap Seite sieht schon einmal korrekt aus (mit dem gleichen Decoding Profile und Decoding Options) habe ich eben deinen Payload getestet.

Ich habe den Payload den du oben kopiert hast einmal durch jsonlint.com gejagt und er hat bei allen " (Anführungszeichen) gemeckert.

Zu der Fehlermeldung:

Die kommt anscheinend auch, wenn man nicht explizit den Header Content-Type: application/json setzt. Da müssen wir dann mal die Fehlermeldung etwas besser gestalten.

Könntest du deine Teststationen einmal alle löschen und nur eine neue registrieren? Dann wird es etwas einfacher den Fehler zu finden.

Viele Grüße,
Matthias


#7

Ich habe jetzt nur noch eine Station registriert. Das ist die, auf welche sich die SensorIDs im Muster beziehen.
Ist das ok? Oder soll ich eine vollständig neue Station erstellen?


#8

wenn ich den content-type beim manuellen upload setze, dann kommt immerhin einmal kein Fehler mehr.
Allerdings wird nur ein Messwert übernommen. Die SensorIds habe ich noch einmal überprüft. Die stimmen alle.

Und dann ist noch das Problem, dass es vom TTN aus nicht funktioniert :frowning:


#9

Am besten erstellst du eine komplett neue Station und löscht die alte mit dem Namen agtest2.

Mir sind noch 2 weitere kleinere Fehler in dem Zusammenhang aufgefallen. Die versuche ich gerade zu reproduzieren und werde die dann als Issues auf GitHub im Repository ttn-osem-integration anlegen. Dann kannst du da den aktuellen Stand verfolgen.

Allerdings sollte es mit einer komplett neuen Station funktionieren. Sowohl der manuelle Upload, als auch über TTN.


#10

ich habe jetzt alles gelöscht und eine neue Station definiert.
Leider kommen die Daten vom TTN immer noch nicht bei osem an :frowning:
Auf dem zweiten Server, an den ich sie schicken lasse, sind sie ok.


#11

Wenn ich mir die Station anschaue https://opensensemap.org/explore/5c0678d21c28f9001ae2d36a
kommen Daten an.

Oder schickst du die jetzt immer manuell?


#12

Ja. super. Die ersten drei Messserien gingen komischerweise ins leere (auch nach refresh in der osem).
Jedenfalls cool, dass es jetzt geht.
Viele Dank für die Unterstützung!


#13

ich habe jetzt meiner Station noch einmal drei Sensoren hinzugefügt. Das ging soweit gut. Da ich aber am Anfang noch fehlerhafte Daten hatte, habe ich dann alle Messwerte aller Sensoren gelöscht. Seither wird nichts mehr vom TTN übernommen. Ist das noch der gleiche Fehler?
Wir der allenfalls nächstens behoben sein (ich habe gesehen, auf GitHub ist die Korrektur schon)? Oder ist es besser, ich erstelle wieder eine neue Station?


#14

Hat sich erledigt. Nach fast zwei Stunden ging es auf einmal, ohne dass ich etwas gemacht habe.