RAK10701-P - no payload in the TTNV3 neither TagoIO

Good morning,

I am having problems to see the RAK10701-P payload in the TTNV3 and TagoIO. What I have to expect about the payload in both environment? In the beginning I was thinking that the problem was located in the Decoder, but in fact, I am not sure that the payload is reaching TTNV3 and TagoIO. Why? Because I am not seeing the payload in the TTNV3/TagoIO uplink message area.

Could you help me?

Claudio

2023-03-13 07:10:18: [POST] HTTP Request: From: 52.7.225.66 [TagoIO-SDK|JS|10.7.6 (External; Node.js/v16.14.2 linux/arm64)] - Content-Type: application/json - Token Ending: 64151
2023-03-13 07:10:18: Raw payload: [{"variable":"ttn_payload_v3","value":"{\"end_device_ids\":{\"dev_eui\":\"AC1F09FFFE08E7AF\",\"device_id\":\"eui-ac1f09fffe08e7af\",\"application_ids\":{\"application_id\":\"rakwireless-field-tester\"},\"join_eui\":\"AC1F09FFF9150701\",\"dev_addr\":\"260B3854\"},\"uplink_message\":{\"frm_payload\":\"0D8FnssCBAcOCg==\",\"f_port\":1,\"f_cnt\":8,\"session_key_id\":\"AYbacTizO3mRnBhgTF76hw==\",\"decoded_payload\":{},\"rx_metadata\":[{\"gateway_ids\":{\"gateway_id\":\"brrjnasondasgw01\",\"eui\":\"60C5A8FFFE74D380\"},\"time\":\"2023-03-13T10:10:17.409550905Z\",\"timestamp\":1249980580,\"rssi\":-6,\"channel_rssi\":-6,\"snr\":10,\"location\":{\"latitude\":-22.998018054874855,\"longitude\":-43.38812005529691,\"altitude\":5,\"source\":\"SOURCE_REGISTRY\"},\"uplink_token\":\"Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQpOGE1AQaDAiK7bugBhDf88DYASCggZjFsP81\",\"received_at\":\"2023-03-13T10:10:18.352763233Z\"}],\"settings\":{\"data_rate\":{\"lora\":{\"bandwidth\":125000,\"spreading_factor\":7,\"coding_rate\":\"4/5\"}},\"frequency\":\"916600000\",\"timestamp\":1249980580,\"time\":\"2023-03-13T10:10:17.409550905Z\"},\"received_at\":\"2023-03-13T10:10:18.547532606Z\",\"confirmed\":true,\"consumed_airtime\":\"0.061696s\",\"locations\":{\"frm-payload\":{\"latitude\":-22.9977737,\"longitude\":-43.3880857,\"altitude\":44,\"source\":\"SOURCE_GPS\"}},\"network_ids\":{\"net_id\":\"000013\",\"tenant_id\":\"ttn\",\"cluster_id\":\"eu1\",\"cluster_address\":\"eu1.cloud.thethings.network\"}},\"correlation_ids\":[\"as:up:01GVD763G33WE5K8SMYCZ6H3T7\",\"gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV\",\"gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B\",\"gs:uplink:01GVD76374R3YBNT4C972DQH9M\",\"ns:uplink:01GVD7639KFVJ1FGBNG5700JXN\",\"rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVD7639KAG82FEHE6RT5RT9F\",\"rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVD763G3MB0EG07XZ15FFWED\"],\"received_at\":\"2023-03-13T10:10:18.755683173Z\"}","group":"1678702218842"}]
2023-03-13 07:10:18: Result of [LoRaWAN TTI/TTN v3] payload parser: [{"variable":"lora_bandwidth","value":125000,"group":"1678702218842","serie":"1678702218842"},{"variable":"lora_spreading_factor","value":7,"group":"1678702218842","serie":"1678702218842"},{"variable":"lora_coding_rate","value":"4/5","group":"1678702218842","serie":"1678702218842"},{"variable":"frequency","value":"916600000","group":"1678702218842","serie":"1678702218842"},{"variable":"timestamp","value":1249980580,"group":"1678702218842","serie":"1678702218842"},{"variable":"time","value":"2023-03-13T10:10:17.409550905Z","group":"1678702218842","serie":"1678702218842"},{"variable":"device_id","value":"eui-ac1f09fffe08e7af","group":"1678702218842","serie":"1678702218842"},{"variable":"application_id","value":"rakwireless-field-tester","group":"1678702218842","serie":"1678702218842"},{"variable":"fport","value":1,"group":"1678702218842","serie":"1678702218842"},{"variable":"fcnt","value":8,"group":"1678702218842","serie":"1678702218842"},{"variable":"payload","value":"d03f059ecb0204070e0a","group":"1678702218842","serie":"1678702218842"},{"variable":"gateway_eui","value":"60C5A8FFFE74D380","group":"1678702218842","serie":"1678702218842"},{"variable":"rssi","value":-6,"group":"1678702218842","serie":"1678702218842"},{"variable":"snr","value":10,"group":"1678702218842","serie":"1678702218842"},{"variable":"gateway_location","value":"-22.998018054874855,-43.38812005529691","group":"1678702218842","location":{"lat":-22.998018054874855,"lng":-43.38812005529691},"serie":"1678702218842"}]
2023-03-13 07:10:18: Result of [RAK10701-P] payload parser: [{"variable":"lora_bandwidth","value":125000,"group":"1678702218842","serie":"1678702218842"},{"variable":"lora_spreading_factor","value":7,"group":"1678702218842","serie":"1678702218842"},{"variable":"lora_coding_rate","value":"4/5","group":"1678702218842","serie":"1678702218842"},{"variable":"frequency","value":"916600000","group":"1678702218842","serie":"1678702218842"},{"variable":"timestamp","value":1249980580,"group":"1678702218842","serie":"1678702218842"},{"variable":"time","value":"2023-03-13T10:10:17.409550905Z","group":"1678702218842","serie":"1678702218842"},{"variable":"device_id","value":"eui-ac1f09fffe08e7af","group":"1678702218842","serie":"1678702218842"},{"variable":"application_id","value":"rakwireless-field-tester","group":"1678702218842","serie":"1678702218842"},{"variable":"fport","value":1,"group":"1678702218842","serie":"1678702218842"},{"variable":"fcnt","value":8,"group":"1678702218842","serie":"1678702218842"},{"variable":"payload","value":"d03f059ecb0204070e0a","group":"1678702218842","serie":"1678702218842"},{"variable":"gateway_eui","value":"60C5A8FFFE74D380","group":"1678702218842","serie":"1678702218842"},{"variable":"rssi","value":-6,"group":"1678702218842","serie":"1678702218842"},{"variable":"snr","value":10,"group":"1678702218842","serie":"1678702218842"},{"variable":"gateway_location","value":"-22.998018054874855,-43.38812005529691","group":"1678702218842","location":{"lat":-22.998018054874855,"lng":-43.38812005529691},"serie":"1678702218842"}]
2023-03-13 07:10:18: Bucket [2aae]: 15 Data Added
------
2023-03-13 07:10:03: [POST] HTTP Request: From: 52.7.225.66 [TagoIO-SDK|JS|10.7.6 (External; Node.js/v16.14.2 linux/arm64)] - Content-Type: application/json - Token Ending: 64151
2023-03-13 07:10:03: Raw payload: [{"variable":"ttn_payload_v3","value":"{\"end_device_ids\":{\"dev_eui\":\"AC1F09FFFE08E7AF\",\"device_id\":\"eui-ac1f09fffe08e7af\",\"application_ids\":{\"application_id\":\"rakwireless-field-tester\"},\"join_eui\":\"AC1F09FFF9150701\",\"dev_addr\":\"260B3854\"},\"uplink_message\":{\"frm_payload\":\"0D8HnssDBAELCw==\",\"f_port\":1,\"f_cnt\":7,\"session_key_id\":\"AYbacTizO3mRnBhgTF76hw==\",\"decoded_payload\":{},\"rx_metadata\":[{\"gateway_ids\":{\"gateway_id\":\"brrjnasondasgw01\",\"eui\":\"60C5A8FFFE74D380\"},\"time\":\"2023-03-13T10:10:02.417896986Z\",\"timestamp\":1234980603,\"rssi\":-8,\"channel_rssi\":-8,\"snr\":8,\"location\":{\"latitude\":-22.998018054874855,\"longitude\":-43.38812005529691,\"altitude\":5,\"source\":\"SOURCE_REGISTRY\"},\"uplink_token\":\"Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQ+53xzAQaDAj77LugBhDtj6GMASD4iNLU+P41\",\"received_at\":\"2023-03-13T10:10:03.192974310Z\"}],\"settings\":{\"data_rate\":{\"lora\":{\"bandwidth\":125000,\"spreading_factor\":7,\"coding_rate\":\"4/5\"}},\"frequency\":\"915600000\",\"timestamp\":1234980603,\"time\":\"2023-03-13T10:10:02.417896986Z\"},\"received_at\":\"2023-03-13T10:10:03.295154111Z\",\"confirmed\":true,\"consumed_airtime\":\"0.061696s\",\"locations\":{\"frm-payload\":{\"latitude\":-22.9977737,\"longitude\":-43.3880857,\"altitude\":44,\"source\":\"SOURCE_GPS\"}},\"network_ids\":{\"net_id\":\"000013\",\"tenant_id\":\"ttn\",\"cluster_id\":\"eu1\",\"cluster_address\":\"eu1.cloud.thethings.network\"}},\"correlation_ids\":[\"as:up:01GVD75MKC8RJSXE0QDM2QS2P8\",\"gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV\",\"gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B\",\"gs:uplink:01GVD75MCYAW2P85QFNKJT3KNF\",\"ns:uplink:01GVD75MCZCQVBD1C6ARXMG721\",\"rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVD75MCZ9FPAMQERYTHG141T\",\"rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVD75MKB6M882VF2A1R8JX88\"],\"received_at\":\"2023-03-13T10:10:03.499581670Z\"}","group":"1678702203576"}]
2023-03-13 07:10:03: Result of [LoRaWAN TTI/TTN v3] payload parser: [{"variable":"lora_bandwidth","value":125000,"group":"1678702203576","serie":"1678702203576"},{"variable":"lora_spreading_factor","value":7,"group":"1678702203576","serie":"1678702203576"},{"variable":"lora_coding_rate","value":"4/5","group":"1678702203576","serie":"1678702203576"},{"variable":"frequency","value":"915600000","group":"1678702203576","serie":"1678702203576"},{"variable":"timestamp","value":1234980603,"group":"1678702203576","serie":"1678702203576"},{"variable":"time","value":"2023-03-13T10:10:02.417896986Z","group":"1678702203576","serie":"1678702203576"},{"variable":"device_id","value":"eui-ac1f09fffe08e7af","group":"1678702203576","serie":"1678702203576"},{"variable":"application_id","value":"rakwireless-field-tester","group":"1678702203576","serie":"1678702203576"},{"variable":"fport","value":1,"group":"1678702203576","serie":"1678702203576"},{"variable":"fcnt","value":7,"group":"1678702203576","serie":"1678702203576"},{"variable":"payload","value":"d03f079ecb0304010b0b","group":"1678702203576","serie":"1678702203576"},{"variable":"gateway_eui","value":"60C5A8FFFE74D380","group":"1678702203576","serie":"1678702203576"},{"variable":"rssi","value":-8,"group":"1678702203576","serie":"1678702203576"},{"variable":"snr","value":8,"group":"1678702203576","serie":"1678702203576"},{"variable":"gateway_location","value":"-22.998018054874855,-43.38812005529691","group":"1678702203576","location":{"lat":-22.998018054874855,"lng":-43.38812005529691},"serie":"1678702203576"}]
2023-03-13 07:10:03: Result of [RAK10701-P] payload parser: [{"variable":"lora_bandwidth","value":125000,"group":"1678702203576","serie":"1678702203576"},{"variable":"lora_spreading_factor","value":7,"group":"1678702203576","serie":"1678702203576"},{"variable":"lora_coding_rate","value":"4/5","group":"1678702203576","serie":"1678702203576"},{"variable":"frequency","value":"915600000","group":"1678702203576","serie":"1678702203576"},{"variable":"timestamp","value":1234980603,"group":"1678702203576","serie":"1678702203576"},{"variable":"time","value":"2023-03-13T10:10:02.417896986Z","group":"1678702203576","serie":"1678702203576"},{"variable":"device_id","value":"eui-ac1f09fffe08e7af","group":"1678702203576","serie":"1678702203576"},{"variable":"application_id","value":"rakwireless-field-tester","group":"1678702203576","serie":"1678702203576"},{"variable":"fport","value":1,"group":"1678702203576","serie":"1678702203576"},{"variable":"fcnt","value":7,"group":"1678702203576","serie":"1678702203576"},{"variable":"payload","value":"d03f079ecb0304010b0b","group":"1678702203576","serie":"1678702203576"},{"variable":"gateway_eui","value":"60C5A8FFFE74D380","group":"1678702203576","serie":"1678702203576"},{"variable":"rssi","value":-8,"group":"1678702203576","serie":"1678702203576"},{"variable":"snr","value":8,"group":"1678702203576","serie":"1678702203576"},{"variable":"gateway_location","value":"-22.998018054874855,-43.38812005529691","group":"1678702203576","location":{"lat":-22.998018054874855,"lng":-43.38812005529691},"serie":"1678702203576"}]
2023-03-13 07:10:03: Bucket [2aae]: 15 Data Added
------
2023-03-13 07:09:48: [POST] HTTP Request: From: 52.7.225.66 [TagoIO-SDK|JS|10.7.6 (External; Node.js/v16.14.2 linux/arm64)] - Content-Type: application/json - Token Ending: 64151
2023-03-13 07:09:48: Raw payload: [{"variable":"ttn_payload_v3","value":"{\"end_device_ids\":{\"dev_eui\":\"AC1F09FFFE08E7AF\",\"device_id\":\"eui-ac1f09fffe08e7af\",\"application_ids\":{\"application_id\":\"rakwireless-field-tester\"},\"join_eui\":\"AC1F09FFF9150701\",\"dev_addr\":\"260B3854\"},\"uplink_message\":{\"frm_payload\":\"0D8IHssDBAMLCg==\",\"f_port\":1,\"f_cnt\":6,\"session_key_id\":\"AYbacTizO3mRnBhgTF76hw==\",\"decoded_payload\":{},\"rx_metadata\":[{\"gateway_ids\":{\"gateway_id\":\"brrjnasondasgw01\",\"eui\":\"60C5A8FFFE74D380\"},\"time\":\"2023-03-13T10:09:47.427160024Z\",\"timestamp\":1219980548,\"rssi\":-5,\"channel_rssi\":-5,\"snr\":8.5,\"location\":{\"latitude\":-22.998018054874855,\"longitude\":-43.38812005529691,\"altitude\":5,\"source\":\"SOURCE_REGISTRY\"},\"uplink_token\":\"Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQhNrdxQQaDAjs7LugBhCq08uIASCgr4fkwP41\",\"received_at\":\"2023-03-13T10:09:48.185282467Z\"}],\"settings\":{\"data_rate\":{\"lora\":{\"bandwidth\":125000,\"spreading_factor\":7,\"coding_rate\":\"4/5\"}},\"frequency\":\"916200000\",\"timestamp\":1219980548,\"time\":\"2023-03-13T10:09:47.427160024Z\"},\"received_at\":\"2023-03-13T10:09:48.287407812Z\",\"confirmed\":true,\"consumed_airtime\":\"0.061696s\",\"locations\":{\"frm-payload\":{\"latitude\":-22.9977737,\"longitude\":-43.3880857,\"altitude\":44,\"source\":\"SOURCE_GPS\"}},\"network_ids\":{\"net_id\":\"000013\",\"tenant_id\":\"ttn\",\"cluster_id\":\"eu1\",\"cluster_address\":\"eu1.cloud.thethings.network\"}},\"correlation_ids\":[\"as:up:01GVD755YCFZJMP5MFG4Y0J7B2\",\"gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV\",\"gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B\",\"gs:uplink:01GVD755QYX1T52TPFN44V42V5\",\"ns:uplink:01GVD755QZD6JX35MMFFJM6JJA\",\"rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVD755QZR0J61MVDXPER49W6\",\"rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVD755YBVGPKTCN5X7C61GPT\"],\"received_at\":\"2023-03-13T10:09:48.491616851Z\"}","group":"1678702188573"}]
2023-03-13 07:09:48: Result of [LoRaWAN TTI/TTN v3] payload parser: [{"variable":"lora_bandwidth","value":125000,"group":"1678702188573","serie":"1678702188573"},{"variable":"lora_spreading_factor","value":7,"group":"1678702188573","serie":"1678702188573"},{"variable":"lora_coding_rate","value":"4/5","group":"1678702188573","serie":"1678702188573"},{"variable":"frequency","value":"916200000","group":"1678702188573","serie":"1678702188573"},{"variable":"timestamp","value":1219980548,"group":"1678702188573","serie":"1678702188573"},{"variable":"time","value":"2023-03-13T10:09:47.427160024Z","group":"1678702188573","serie":"1678702188573"},{"variable":"device_id","value":"eui-ac1f09fffe08e7af","group":"1678702188573","serie":"1678702188573"},{"variable":"application_id","value":"rakwireless-field-tester","group":"1678702188573","serie":"1678702188573"},{"variable":"fport","value":1,"group":"1678702188573","serie":"1678702188573"},{"variable":"fcnt","value":6,"group":"1678702188573","serie":"1678702188573"},{"variable":"payload","value":"d03f081ecb0304030b0a","group":"1678702188573","serie":"1678702188573"},{"variable":"gateway_eui","value":"60C5A8FFFE74D380","group":"1678702188573","serie":"1678702188573"},{"variable":"rssi","value":-5,"group":"1678702188573","serie":"1678702188573"},{"variable":"snr","value":8.5,"group":"1678702188573","serie":"1678702188573"},{"variable":"gateway_location","value":"-22.998018054874855,-43.38812005529691","group":"1678702188573","location":{"lat":-22.998018054874855,"lng":-43.38812005529691},"serie":"1678702188573"}]
2023-03-13 07:09:48: Result of [RAK10701-P] payload parser: [{"variable":"lora_bandwidth","value":125000,"group":"1678702188573","serie":"1678702188573"},{"variable":"lora_spreading_factor","value":7,"group":"1678702188573","serie":"1678702188573"},{"variable":"lora_coding_rate","value":"4/5","group":"1678702188573","serie":"1678702188573"},{"variable":"frequency","value":"916200000","group":"1678702188573","serie":"1678702188573"},{"variable":"timestamp","value":1219980548,"group":"1678702188573","serie":"1678702188573"},{"variable":"time","value":"2023-03-13T10:09:47.427160024Z","group":"1678702188573","serie":"1678702188573"},{"variable":"device_id","value":"eui-ac1f09fffe08e7af","group":"1678702188573","serie":"1678702188573"},{"variable":"application_id","value":"rakwireless-field-tester","group":"1678702188573","serie":"1678702188573"},{"variable":"fport","value":1,"group":"1678702188573","serie":"1678702188573"},{"variable":"fcnt","value":6,"group":"1678702188573","serie":"1678702188573"},{"variable":"payload","value":"d03f081ecb0304030b0a","group":"1678702188573","serie":"1678702188573"},{"variable":"gateway_eui","value":"60C5A8FFFE74D380","group":"1678702188573","serie":"1678702188573"},{"variable":"rssi","value":-5,"group":"1678702188573","serie":"1678702188573"},{"variable":"snr","value":8.5,"group":"1678702188573","serie":"1678702188573"},{"variable":"gateway_location","value":"-22.998018054874855,-43.38812005529691","group":"1678702188573","location":{"lat":-22.998018054874855,"lng":-43.38812005529691},"serie":"1678702188573"}]
2023-03-13 07:09:48: Bucket [2aae]: 15 Data Added
------

Hi Claudio,

The payload seems to be there, but it doesn’t look like a valid format:

{"variable":"payload","value":"d03f059ecb0204070e0a","group":"1678702218842","serie":"1678702218842"}

I run that payload through my parser and it fails with an invalid value.

Can you share the log from TTN?
Do you use a decoder in TTN? If yes, which one?

Thank you by your support.

Yesterday I did a fix in the TTN decoder using a RAK10701 @carlrowan reduced (in comparinson with the the RAK10701 decoder in the quick start guide) version decoder, and now it sees that it is working fine. Any way today I will check the results again. Take a look:

The TTN uplink (to TagoIO) Decoder:

function Decoder(bytes, port) {
        var decoded = {};
        // avoid sending Downlink ACK to integration (Cargo)
        if (port === 1) {
            var lonSign = (bytes[0] >> 7) & 0x01 ? -1 : 1;
            var latSign = (bytes[0] >> 6) & 0x01 ? -1 : 1;
    
            var encLat = ((bytes[0] & 0x3f) << 17) +
                (bytes[1] << 9) +
                (bytes[2] << 1) +
                (bytes[3] >> 7);
    
            var encLon = ((bytes[3] & 0x7f) << 16) +
                (bytes[4] << 8) +
                bytes[5];
    
            var hdop = bytes[8] / 10;
            var sats = bytes[9];
    
            const maxHdop = 2;
            const minSats = 5;
    
            if ((hdop < maxHdop) && (sats >= minSats)) {
                // Send only acceptable quality of position to mappers
                decoded.latitude = latSign * (encLat * 108 + 53) / 10000000;
                decoded.longitude = lonSign * (encLon * 215 + 107) / 10000000;
                decoded.altitude = ((bytes[6] << 8) + bytes[7]) - 1000;
                decoded.accuracy = (hdop * 5 + 5) / 10;
                decoded.hdop = hdop;
                decoded.sats = sats;
            } else {
                decoded.error = "Need more GPS precision (hdop must be <" + maxHdop +
                    " & sats must be >= " + minSats + ") current hdop: " + hdop + " & sats:" + sats;
            }
            return decoded;
        }
        return null;
    }

[
  {
    "name": "as.up.location.forward",
    "time": "2023-03-14T10:51:10.694505236Z",
    "identifiers": [
      {
        "device_ids": {
          "device_id": "eui-ac1f09fffe08e7af",
          "application_ids": {
            "application_id": "rakwireless-field-tester"
          },
          "dev_eui": "AC1F09FFFE08E7AF",
          "join_eui": "AC1F09FFF9150701",
          "dev_addr": "260B3854"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
      "end_device_ids": {
        "device_id": "eui-ac1f09fffe08e7af",
        "application_ids": {
          "application_id": "rakwireless-field-tester"
        },
        "dev_eui": "AC1F09FFFE08E7AF",
        "join_eui": "AC1F09FFF9150701",
        "dev_addr": "260B3854"
      },
      "correlation_ids": [
        "as:up:01GVFVXMYNJ1HCP5GVW3GWD2WF",
        "as:up:01GVFVXMYTD7KSA9KYTHT78EBV",
        "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
        "gs:up:host:01GTYCM5DZSBEE67EC1A8ETERH",
        "gs:uplink:01GVFVXMR272GXF5W35M0HS9DV",
        "ns:uplink:01GVFVXMR2P4SJ5F7FVPF81ASE",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVFVXMR22D4WTYTTCGJKBVN3",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVFVXMYKQDJ1WMKHBDHPVWZD"
      ],
      "received_at": "2023-03-14T10:51:10.676239935Z",
      "location_solved": {
        "service": "frm-payload",
        "location": {
          "latitude": -22.9976873,
          "longitude": -43.3879997,
          "altitude": 26,
          "accuracy": 1,
          "source": "SOURCE_GPS"
        }
      }
    },
    "correlation_ids": [
      "as:up:01GVFVXMYNJ1HCP5GVW3GWD2WF",
      "as:up:01GVFVXMYTD7KSA9KYTHT78EBV",
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZSBEE67EC1A8ETERH",
      "gs:uplink:01GVFVXMR272GXF5W35M0HS9DV",
      "ns:uplink:01GVFVXMR2P4SJ5F7FVPF81ASE",
      "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVFVXMR22D4WTYTTCGJKBVN3",
      "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVFVXMYKQDJ1WMKHBDHPVWZD"
    ],
    "origin": "ip-10-100-14-9.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_APPLICATION_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVFVXMZ60VR9DQ3BVST34D69"
  },
  
]

Played around with TagoIO and wrote a parser for the Field Mapper that works (at least for 1 gateway found) from Chirpstack.

I found one difference in the payloads received from Chirpstack compared with the one from TTN. The gateway location fields are different.
In the payload from Chirpstack each gateways location, RSSI and SNR are named different like rx_0_rssi for the RSSI of the first gateway, then rx_1_rssi for the second gateway.

But in the TTN payload you posted, I see only values for one gateway without any index. Like rssi and snr.

I would need a TTN payload that has more than one gateway listed in it to adapt the parser.

Here is a snapshot of the parser results:

Getting the Field Tester and the Gateway into the map:

I have two RAKWireless gateways: RAK7249 and RAK7258. I removed the TTNV3 decoder to avoid any interference. Take a look in the TTNV3 payload, I only see one gateway.

Well, if the RAK10701 depends on LNS payload, it could be a problems if LNS didn´t identify each gateway. Am I wrong?

[
  {
    "name": "as.up.data.forward",
    "time": "2023-03-15T03:26:04.479377167Z",
    "identifiers": [
      {
        "device_ids": {
          "device_id": "eui-ac1f09fffe08e7af",
          "application_ids": {
            "application_id": "rakwireless-field-tester"
          },
          "dev_eui": "AC1F09FFFE08E7AF",
          "join_eui": "AC1F09FFF9150701",
          "dev_addr": "260B3854"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
      "end_device_ids": {
        "device_id": "eui-ac1f09fffe08e7af",
        "application_ids": {
          "application_id": "rakwireless-field-tester"
        },
        "dev_eui": "AC1F09FFFE08E7AF",
        "join_eui": "AC1F09FFF9150701",
        "dev_addr": "260B3854"
      },
      "correlation_ids": [
        "as:up:01GVHMVBNTQ7PGVXNFNYGXM9B9",
        "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
        "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
        "gs:uplink:01GVHMVBF7HT2Q3FG46K7GS77R",
        "ns:uplink:01GVHMVBF8RV6NVFCTDDQJ5MBW",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMVBF8DQ6K31J5DSDZ4QTV",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMVBNT4RNRBSS0YT60WWJ3"
      ],
      "received_at": "2023-03-15T03:26:04.474359709Z",
      "uplink_message": {
        "session_key_id": "AYbacTizO3mRnBhgTF76hw==",
        "f_port": 1,
        "f_cnt": 9163,
        "frm_payload": "0D8LnssBA/YICg==",
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "brrjnasondasgw01",
              "eui": "60C5A8FFFE74D380"
            },
            "time": "2023-03-15T03:26:02.988275051Z",
            "timestamp": 3766704659,
            "rssi": -14,
            "channel_rssi": -14,
            "snr": 10,
            "location": {
              "latitude": -22.998018054874855,
              "longitude": -43.38812005529691,
              "altitude": 5,
              "source": "SOURCE_REGISTRY"
            },
            "uplink_token": "Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQk7SNhA4aCwjM9cSgBhDq5bh9ILi034jQ4lc=",
            "received_at": "2023-03-15T03:26:04.161803930Z"
          }
        ],
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "915200000",
          "timestamp": 3766704659,
          "time": "2023-03-15T03:26:02.988275051Z"
        },
        "received_at": "2023-03-15T03:26:04.264337639Z",
        "confirmed": true,
        "consumed_airtime": "0.061696s",
        "locations": {
          "frm-payload": {
            "latitude": -22.9978493,
            "longitude": -43.3880212,
            "altitude": 26,
            "source": "SOURCE_GPS"
          }
        },
        "network_ids": {
          "net_id": "000013",
          "tenant_id": "ttn",
          "cluster_id": "eu1",
          "cluster_address": "eu1.cloud.thethings.network"
        }
      }
    },
    "correlation_ids": [
      "as:up:01GVHMVBNTQ7PGVXNFNYGXM9B9",
      "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
      "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
      "gs:uplink:01GVHMVBF7HT2Q3FG46K7GS77R",
      "ns:uplink:01GVHMVBF8RV6NVFCTDDQJ5MBW",
      "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMVBF8DQ6K31J5DSDZ4QTV",
      "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMVBNT4RNRBSS0YT60WWJ3"
    ],
    "origin": "ip-10-100-5-244.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_APPLICATION_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHMVBNZ21G7FK4DWG5KAVJ6"
  },
  {
    "time": "2023-03-15T03:25:57.230Z",
    "name": "synthetic.status.filter_disabled",
    "isError": false,
    "isSynthetic": true,
    "unique_id": "synthetic.1678850757230"
  },
  {
    "name": "as.up.data.forward",
    "time": "2023-03-15T03:25:49.464590828Z",
    "identifiers": [
      {
        "device_ids": {
          "device_id": "eui-ac1f09fffe08e7af",
          "application_ids": {
            "application_id": "rakwireless-field-tester"
          },
          "dev_eui": "AC1F09FFFE08E7AF",
          "join_eui": "AC1F09FFF9150701",
          "dev_addr": "260B3854"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
      "end_device_ids": {
        "device_id": "eui-ac1f09fffe08e7af",
        "application_ids": {
          "application_id": "rakwireless-field-tester"
        },
        "dev_eui": "AC1F09FFFE08E7AF",
        "join_eui": "AC1F09FFF9150701",
        "dev_addr": "260B3854"
      },
      "correlation_ids": [
        "as:up:01GVHMTX0M08Z2Q5Q5Q6SGEA0A",
        "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
        "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
        "gs:uplink:01GVHMTWT2R5QYCJET934VD9GD",
        "ns:uplink:01GVHMTWT39XMC7XG9BJXJ3SNX",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMTWT3XBJXMR08V8ESE67Y",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMTX0MZHE8ZXQ7Y2Y3S5RN"
      ],
      "received_at": "2023-03-15T03:25:49.460287364Z",
      "uplink_message": {
        "session_key_id": "AYbacTizO3mRnBhgTF76hw==",
        "f_port": 1,
        "f_cnt": 9162,
        "frm_payload": "0D8LnssBA/gJCQ==",
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "brrjnasondasgw01",
              "eui": "60C5A8FFFE74D380"
            },
            "time": "2023-03-15T03:25:47.976619005Z",
            "timestamp": 3751703780,
            "rssi": -11,
            "channel_rssi": -11,
            "snr": 8.75,
            "location": {
              "latitude": -22.998018054874855,
              "longitude": -43.38812005529691,
              "altitude": 5,
              "source": "SOURCE_REGISTRY"
            },
            "uplink_token": "Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQ5On5/A0aCwi99cSgBhCG+bV3IKC14peY4lc=",
            "received_at": "2023-03-15T03:25:49.149130269Z"
          }
        ],
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "916200000",
          "timestamp": 3751703780,
          "time": "2023-03-15T03:25:47.976619005Z"
        },
        "received_at": "2023-03-15T03:25:49.251619893Z",
        "confirmed": true,
        "consumed_airtime": "0.061696s",
        "locations": {
          "frm-payload": {
            "latitude": -22.9978493,
            "longitude": -43.3880212,
            "altitude": 26,
            "source": "SOURCE_GPS"
          }
        },
        "network_ids": {
          "net_id": "000013",
          "tenant_id": "ttn",
          "cluster_id": "eu1",
          "cluster_address": "eu1.cloud.thethings.network"
        }
      }
    },
    "correlation_ids": [
      "as:up:01GVHMTX0M08Z2Q5Q5Q6SGEA0A",
      "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
      "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
      "gs:uplink:01GVHMTWT2R5QYCJET934VD9GD",
      "ns:uplink:01GVHMTWT39XMC7XG9BJXJ3SNX",
      "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMTWT3XBJXMR08V8ESE67Y",
      "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMTX0MZHE8ZXQ7Y2Y3S5RN"
    ],
    "origin": "ip-10-100-5-244.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_APPLICATION_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHMTX0RJPKP1BS46K228071"
  },
  {
    "name": "as.up.data.forward",
    "time": "2023-03-15T03:25:34.473999832Z",
    "identifiers": [
      {
        "device_ids": {
          "device_id": "eui-ac1f09fffe08e7af",
          "application_ids": {
            "application_id": "rakwireless-field-tester"
          },
          "dev_eui": "AC1F09FFFE08E7AF",
          "join_eui": "AC1F09FFF9150701",
          "dev_addr": "260B3854"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
      "end_device_ids": {
        "device_id": "eui-ac1f09fffe08e7af",
        "application_ids": {
          "application_id": "rakwireless-field-tester"
        },
        "dev_eui": "AC1F09FFFE08E7AF",
        "join_eui": "AC1F09FFF9150701",
        "dev_addr": "260B3854"
      },
      "correlation_ids": [
        "as:up:01GVHMTEC6QJBG0WNHECW0T213",
        "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
        "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
        "gs:uplink:01GVHMTE5P4E9VZF4GRECTKC43",
        "ns:uplink:01GVHMTE5QM4E72MV3TWEX6S58",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMTE5QBTYP4QCRN3QZR6F5",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMTEC6PJG1MEV20FVQ84NN"
      ],
      "received_at": "2023-03-15T03:25:34.470299732Z",
      "uplink_message": {
        "session_key_id": "AYbacTizO3mRnBhgTF76hw==",
        "f_port": 1,
        "f_cnt": 9161,
        "frm_payload": "0D8KHssBA/wJCQ==",
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "brrjnasondasgw01",
              "eui": "60C5A8FFFE74D380"
            },
            "time": "2023-03-15T03:25:32.987168073Z",
            "timestamp": 3736703907,
            "rssi": -12,
            "channel_rssi": -12,
            "snr": 10.5,
            "location": {
              "latitude": -22.998018054874855,
              "longitude": -43.38812005529691,
              "altitude": 5,
              "source": "SOURCE_REGISTRY"
            },
            "uplink_token": "Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQo6fm9Q0aCwiu9cSgBhCBwZt9ILjpoqfg4Vc=",
            "received_at": "2023-03-15T03:25:34.161214560Z"
          }
        ],
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "916000000",
          "timestamp": 3736703907,
          "time": "2023-03-15T03:25:32.987168073Z"
        },
        "received_at": "2023-03-15T03:25:34.263848271Z",
        "confirmed": true,
        "consumed_airtime": "0.061696s",
        "locations": {
          "frm-payload": {
            "latitude": -22.9978493,
            "longitude": -43.3880212,
            "altitude": 26,
            "source": "SOURCE_GPS"
          }
        },
        "network_ids": {
          "net_id": "000013",
          "tenant_id": "ttn",
          "cluster_id": "eu1",
          "cluster_address": "eu1.cloud.thethings.network"
        }
      }
    },
    "correlation_ids": [
      "as:up:01GVHMTEC6QJBG0WNHECW0T213",
      "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
      "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
      "gs:uplink:01GVHMTE5P4E9VZF4GRECTKC43",
      "ns:uplink:01GVHMTE5QM4E72MV3TWEX6S58",
      "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMTE5QBTYP4QCRN3QZR6F5",
      "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMTEC6PJG1MEV20FVQ84NN"
    ],
    "origin": "ip-10-100-14-9.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_APPLICATION_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHMTEC9YXNY3VVQ5MB8TCA5"
  },
  {
    "name": "as.up.data.forward",
    "time": "2023-03-15T03:25:19.462812990Z",
    "identifiers": [
      {
        "device_ids": {
          "device_id": "eui-ac1f09fffe08e7af",
          "application_ids": {
            "application_id": "rakwireless-field-tester"
          },
          "dev_eui": "AC1F09FFFE08E7AF",
          "join_eui": "AC1F09FFF9150701",
          "dev_addr": "260B3854"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
      "end_device_ids": {
        "device_id": "eui-ac1f09fffe08e7af",
        "application_ids": {
          "application_id": "rakwireless-field-tester"
        },
        "dev_eui": "AC1F09FFFE08E7AF",
        "join_eui": "AC1F09FFF9150701",
        "dev_addr": "260B3854"
      },
      "correlation_ids": [
        "as:up:01GVHMSZQ2EPV2JP89A53F2P4B",
        "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
        "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
        "gs:uplink:01GVHMSZGJFK3RZ7KNRHTX3QXH",
        "ns:uplink:01GVHMSZGKZ4R0XKKGE5GE1TSY",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMSZGK2E43W05Y68H4S21T",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMSZQ2DYP0AX8ZX30Q6889"
      ],
      "received_at": "2023-03-15T03:25:19.458535003Z",
      "uplink_message": {
        "session_key_id": "AYbacTizO3mRnBhgTF76hw==",
        "f_port": 1,
        "f_cnt": 9160,
        "frm_payload": "0D8JHssAA/sLCA==",
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "brrjnasondasgw01",
              "eui": "60C5A8FFFE74D380"
            },
            "time": "2023-03-15T03:25:17.976331949Z",
            "timestamp": 3721704547,
            "rssi": -12,
            "channel_rssi": -12,
            "snr": 9.75,
            "location": {
              "latitude": -22.998018054874855,
              "longitude": -43.38812005529691,
              "altitude": 5,
              "source": "SOURCE_REGISTRY"
            },
            "uplink_token": "Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQ4+jS7g0aCwif9cSgBhDXwrl3ILjFgreo4Vc=",
            "received_at": "2023-03-15T03:25:19.149046027Z"
          }
        ],
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "915400000",
          "timestamp": 3721704547,
          "time": "2023-03-15T03:25:17.976331949Z"
        },
        "received_at": "2023-03-15T03:25:19.251655518Z",
        "confirmed": true,
        "consumed_airtime": "0.061696s",
        "locations": {
          "frm-payload": {
            "latitude": -22.9978493,
            "longitude": -43.3880212,
            "altitude": 26,
            "source": "SOURCE_GPS"
          }
        },
        "network_ids": {
          "net_id": "000013",
          "tenant_id": "ttn",
          "cluster_id": "eu1",
          "cluster_address": "eu1.cloud.thethings.network"
        }
      }
    },
    "correlation_ids": [
      "as:up:01GVHMSZQ2EPV2JP89A53F2P4B",
      "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
      "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
      "gs:uplink:01GVHMSZGJFK3RZ7KNRHTX3QXH",
      "ns:uplink:01GVHMSZGKZ4R0XKKGE5GE1TSY",
      "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMSZGK2E43W05Y68H4S21T",
      "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMSZQ2DYP0AX8ZX30Q6889"
    ],
    "origin": "ip-10-100-14-9.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_APPLICATION_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHMSZQ6ZJVEQV85DHTTSNM1"
  },
  {
    "name": "as.up.data.forward",
    "time": "2023-03-15T03:25:04.476803379Z",
    "identifiers": [
      {
        "device_ids": {
          "device_id": "eui-ac1f09fffe08e7af",
          "application_ids": {
            "application_id": "rakwireless-field-tester"
          },
          "dev_eui": "AC1F09FFFE08E7AF",
          "join_eui": "AC1F09FFF9150701",
          "dev_addr": "260B3854"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
      "end_device_ids": {
        "device_id": "eui-ac1f09fffe08e7af",
        "application_ids": {
          "application_id": "rakwireless-field-tester"
        },
        "dev_eui": "AC1F09FFFE08E7AF",
        "join_eui": "AC1F09FFF9150701",
        "dev_addr": "260B3854"
      },
      "correlation_ids": [
        "as:up:01GVHMSH2S1DAAJ47WB5298Y9Z",
        "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
        "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
        "gs:uplink:01GVHMSGW76ZGEY3XQDHB1JC3H",
        "ns:uplink:01GVHMSGW81W7ERG2Z8ZB83WC2",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMSGW8N7C492F87W8JVD4E",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMSH2SXXCEE4F20VWNTMG3"
      ],
      "received_at": "2023-03-15T03:25:04.473238366Z",
      "uplink_message": {
        "session_key_id": "AYbacTizO3mRnBhgTF76hw==",
        "f_port": 1,
        "f_cnt": 9159,
        "frm_payload": "0D8KnssAA/4LCQ==",
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "brrjnasondasgw01",
              "eui": "60C5A8FFFE74D380"
            },
            "time": "2023-03-15T03:25:02.986599922Z",
            "timestamp": 3706705164,
            "rssi": -15,
            "channel_rssi": -15,
            "snr": 10,
            "location": {
              "latitude": -22.998018054874855,
              "longitude": -43.38812005529691,
              "altitude": 5,
              "source": "SOURCE_REGISTRY"
            },
            "uplink_token": "Ch4KHAoQYnJyam5hc29uZGFzZ3cwMRIIYMWo//5004AQjKq/5w0aCwiQ9cSgBhDHp7t9IODt4Mbw4Fc=",
            "received_at": "2023-03-15T03:25:04.161628946Z"
          }
        ],
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "916600000",
          "timestamp": 3706705164,
          "time": "2023-03-15T03:25:02.986599922Z"
        },
        "received_at": "2023-03-15T03:25:04.264145283Z",
        "confirmed": true,
        "consumed_airtime": "0.061696s",
        "locations": {
          "frm-payload": {
            "latitude": -22.9978493,
            "longitude": -43.3880212,
            "altitude": 26,
            "source": "SOURCE_GPS"
          }
        },
        "network_ids": {
          "net_id": "000013",
          "tenant_id": "ttn",
          "cluster_id": "eu1",
          "cluster_address": "eu1.cloud.thethings.network"
        }
      }
    },
    "correlation_ids": [
      "as:up:01GVHMSH2S1DAAJ47WB5298Y9Z",
      "gs:conn:01GV64PY0FN9H2EKQJ1K7J4PYV",
      "gs:up:host:01GV64PY0RJ82TYRA4G5JAHG6B",
      "gs:uplink:01GVHMSGW76ZGEY3XQDHB1JC3H",
      "ns:uplink:01GVHMSGW81W7ERG2Z8ZB83WC2",
      "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GVHMSGW8N7C492F87W8JVD4E",
      "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GVHMSH2SXXCEE4F20VWNTMG3"
    ],
    "origin": "ip-10-100-14-9.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_APPLICATION_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHMSH2WCD9SM43G7CDHMDCC"
  },
  {
    "time": "2023-03-15T03:24:53.952Z",
    "name": "synthetic.status.cleared",
    "isError": false,
    "isSynthetic": true,
    "unique_id": "synthetic.1678850693952"
  }
]

This is the log of my second gateway, but I had to collect from the gateway instead of RAK10701 log

[
  {
    "name": "gs.up.forward",
    "time": "2023-03-15T03:33:04.925991020Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/google.protobuf.Value",
      "value": "cluster"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZSBEE67EC1A8ETERH",
      "gs:uplink:01GVHN868W1P1EBHKP9Q7VXQ5Q"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN868XH7T2439G8P4TP34Q"
  },
  {
    "name": "gs.up.forward",
    "time": "2023-03-15T03:33:04.925474792Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/google.protobuf.Value",
      "value": "packetbroker"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZXRKGBJS6DAPHF6YP",
      "gs:uplink:01GVHN868W1P1EBHKP9Q7VXQ5Q"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN868XAMY9NNZR0TE21ERA"
  },
  {
    "name": "gs.up.receive",
    "time": "2023-03-15T03:33:04.924073888Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.GatewayUplinkMessage",
      "message": {
        "raw_payload": "gFQ4CyaA5iMBivZ8Ozv6JlTxTE9LV+0=",
        "payload": {
          "m_hdr": {
            "m_type": "CONFIRMED_UP"
          },
          "mic": "T0tX7Q==",
          "mac_payload": {
            "f_hdr": {
              "dev_addr": "260B3854",
              "f_ctrl": {
                "adr": true
              },
              "f_cnt": 9190
            },
            "f_port": 1,
            "frm_payload": "ivZ8Ozv6JlTxTA=="
          }
        },
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "916400000",
          "timestamp": 2331071636,
          "time": "2023-03-15T03:33:02.852631092Z"
        },
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "eui-60c5a8fffe74d472",
              "eui": "60C5A8FFFE74D472"
            },
            "time": "2023-03-15T03:33:02.852631092Z",
            "timestamp": 2331071636,
            "rssi": -16,
            "channel_rssi": -16,
            "snr": 9.25,
            "uplink_token": "CiIKIAoUZXVpLTYwYzVhOGZmZmU3NGQ0NzISCGDFqP/+dNRyEJSpxdcIGgwI8PjEoAYQ6b6/uAMgoMTJ9euBkwE=",
            "received_at": "2023-03-15T03:33:04.305991664Z"
          }
        ],
        "received_at": "2023-03-15T03:33:04.923787113Z",
        "correlation_ids": [
          "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
          "gs:uplink:01GVHN868W1P1EBHKP9Q7VXQ5Q"
        ]
      },
      "band_id": "AU_915_928"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:uplink:01GVHN868W1P1EBHKP9Q7VXQ5Q"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN868W96EAPW5JED7KXPCA"
  },
  {
    "name": "gs.up.forward",
    "time": "2023-03-15T03:32:50.177559759Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/google.protobuf.Value",
      "value": "cluster"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZSBEE67EC1A8ETERH",
      "gs:uplink:01GVHN7QVZE9D2PYMXPPBXW980"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN7QW1AFW6CCERCX80105D"
  },
  {
    "name": "gs.up.forward",
    "time": "2023-03-15T03:32:50.177216624Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/google.protobuf.Value",
      "value": "packetbroker"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZXRKGBJS6DAPHF6YP",
      "gs:uplink:01GVHN7QVZE9D2PYMXPPBXW980"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN7QW1HHR7YFZS90JYBFDK"
  },
  {
    "name": "gs.up.receive",
    "time": "2023-03-15T03:32:50.175837874Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.GatewayUplinkMessage",
      "message": {
        "raw_payload": "QDgYCggAHYVQvio+tIpfQluDpVxz9q+kXutZEiSm",
        "payload": {
          "m_hdr": {
            "m_type": "UNCONFIRMED_UP"
          },
          "mic": "WRIkpg==",
          "mac_payload": {
            "f_hdr": {
              "dev_addr": "080A1838",
              "f_ctrl": {},
              "f_cnt": 34077
            },
            "f_port": 80,
            "frm_payload": "vio+tIpfQluDpVxz9q+kXus="
          }
        },
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 9,
              "coding_rate": "4/5"
            }
          },
          "frequency": "915200000",
          "timestamp": 2316372652,
          "time": "2023-03-15T03:32:48.149501085Z"
        },
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "eui-60c5a8fffe74d472",
              "eui": "60C5A8FFFE74D472"
            },
            "time": "2023-03-15T03:32:48.149501085Z",
            "timestamp": 2316372652,
            "rssi": -107,
            "channel_rssi": -107,
            "snr": -3,
            "uplink_token": "CiIKIAoUZXVpLTYwYzVhOGZmZmU3NGQ0NzISCGDFqP/+dNRyEKyVxNAIGgsI4vjEoAYQop3dUyDg38aUtYGTAQ==",
            "received_at": "2023-03-15T03:32:49.531328920Z"
          }
        ],
        "received_at": "2023-03-15T03:32:50.175591074Z",
        "correlation_ids": [
          "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
          "gs:uplink:01GVHN7QVZE9D2PYMXPPBXW980"
        ]
      },
      "band_id": "AU_915_928"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:uplink:01GVHN7QVZE9D2PYMXPPBXW980"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN7QVZZV9Y132AX5WS92DC"
  },
  {
    "name": "gs.up.forward",
    "time": "2023-03-15T03:32:49.935672042Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/google.protobuf.Value",
      "value": "cluster"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZSBEE67EC1A8ETERH",
      "gs:uplink:01GVHN7QMDCCPXRHNJETSV6QQ5"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN7QMF72NT8EXYJDXKCM8W"
  },
  {
    "name": "gs.up.forward",
    "time": "2023-03-15T03:32:49.935329687Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/google.protobuf.Value",
      "value": "packetbroker"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:up:host:01GTYCM5DZXRKGBJS6DAPHF6YP",
      "gs:uplink:01GVHN7QMDCCPXRHNJETSV6QQ5"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN7QMFHWZ2SJYK1DSMQXQY"
  },
  {
    "name": "gs.up.receive",
    "time": "2023-03-15T03:32:49.934019580Z",
    "identifiers": [
      {
        "gateway_ids": {
          "gateway_id": "eui-60c5a8fffe74d472",
          "eui": "60C5A8FFFE74D472"
        }
      }
    ],
    "data": {
      "@type": "type.googleapis.com/ttn.lorawan.v3.GatewayUplinkMessage",
      "message": {
        "raw_payload": "gFQ4CyaA5SMBf1niiDMM5mdQeryZ4rM=",
        "payload": {
          "m_hdr": {
            "m_type": "CONFIRMED_UP"
          },
          "mic": "vJnisw==",
          "mac_payload": {
            "f_hdr": {
              "dev_addr": "260B3854",
              "f_ctrl": {
                "adr": true
              },
              "f_cnt": 9189
            },
            "f_port": 1,
            "frm_payload": "f1niiDMM5mdQeg=="
          }
        },
        "settings": {
          "data_rate": {
            "lora": {
              "bandwidth": 125000,
              "spreading_factor": 7,
              "coding_rate": "4/5"
            }
          },
          "frequency": "915600000",
          "timestamp": 2316072491,
          "time": "2023-03-15T03:32:47.845861911Z"
        },
        "rx_metadata": [
          {
            "gateway_ids": {
              "gateway_id": "eui-60c5a8fffe74d472",
              "eui": "60C5A8FFFE74D472"
            },
            "time": "2023-03-15T03:32:47.845861911Z",
            "timestamp": 2316072491,
            "rssi": -16,
            "channel_rssi": -16,
            "snr": 8.25,
            "uplink_token": "CiIKIAoUZXVpLTYwYzVhOGZmZmU3NGQ0NzISCGDFqP/+dNRyEKvssdAIGgwI4fjEoAYQoYifvQMg+K+2hbSBkwE=",
            "received_at": "2023-03-15T03:32:49.275604157Z"
          }
        ],
        "received_at": "2023-03-15T03:32:49.933741601Z",
        "correlation_ids": [
          "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
          "gs:uplink:01GVHN7QMDCCPXRHNJETSV6QQ5"
        ]
      },
      "band_id": "AU_915_928"
    },
    "correlation_ids": [
      "gs:conn:01GTYCM5DTYJ62VR4EBEX83TPS",
      "gs:uplink:01GVHN7QMDCCPXRHNJETSV6QQ5"
    ],
    "origin": "ip-10-100-5-47.eu-west-1.compute.internal",
    "context": {
      "tenant-id": "CgN0dG4="
    },
    "visibility": {
      "rights": [
        "RIGHT_GATEWAY_TRAFFIC_READ"
      ]
    },
    "unique_id": "01GVHN7QMEB7M2F92E9CSWQ4FG"
  },
  {
    "time": "2023-03-15T03:32:47.876Z",
    "name": "synthetic.status.filter_disabled",
    "isError": false,
    "isSynthetic": true,
    "unique_id": "synthetic.1678851167876"
  },
  {
    "time": "2023-03-15T03:32:45.653Z",
    "name": "synthetic.status.cleared",
    "isError": false,
    "isSynthetic": true,
    "unique_id": "synthetic.1678851165653"
  }
]

Correct, I don’t see a second gateway in the logs. Not sure about the TagoIO integration in TTN.
In Chirpstack I am just using a generic HTTP integration and use the TagoIO URL and authorization key.

Hi @crmrosa

This is how far I got now with TTN and TagoIO.
I have a parser that can go through the payload and get the locations and distances, but it is limited to a single gateway.
I found that the complete list of gateways is in something that is called raw_payload in TagoIO. But parsing that one is getting a nightmare.

Here is the parser that I got working on TTN:

// Add ignorable variables in this array.
const ignore_vars = ['rx_0_rf_chain', 'modulation', 'rx_0_channel', 'rx_0_fine_timestamp_type', 'rx_0_context', 'frequency', 'bandwidth', 'spreading_factor', 'code_rate', 'polarization_inversion', 'fCnt', 'deviceName', 'adr', 'dr', 'confirmedUplink', 'publishedAt', 'deviceProfileID', 'deviceProfileName', 'objectJSON', 'application_id', 'application_name', 'device_name', 'device_eui', 'dev_addr'];
const ignore_vars2 = ['payload', 'rx_0_location', 'fPort', 'rx_0_lorasnr', 'rx_0_rssi', 'rx_0_time', 'rx_0_gateway_id'];

// Remove unwanted variables.
payload = payload.filter(x => !ignore_vars.includes(x.variable));


// Convert a hex string to a byte array
function hexToBytes(hex) {
	let bytes = [];
	for (let c = 0; c < hex.length; c += 2)
		bytes.push(parseInt(hex.substr(c, 2), 16));
	return bytes;
}

function distance(lat1, lon1, lat2, lon2) {
	if ((lat1 == lat2) && (lon1 == lon2)) {
		return 0;
	}
	else {
		var radlat1 = Math.PI * lat1 / 180;
		var radlat2 = Math.PI * lat2 / 180;
		var theta = lon1 - lon2;
		var radtheta = Math.PI * theta / 180;
		var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
		if (dist > 1) {
			dist = 1;
		}
		dist = Math.acos(dist);
		dist = dist * 180 / Math.PI;
		dist = dist * 60 * 1.1515;
		dist = dist * 1.609344;
		return dist;
	}
}

// Get data from the gateway
function get_gw_data(index, gw_id, gw_rssi, gw_snr, gw_location) {
	var found_object = payload.find(x => x.variable === gw_id);
	if (found_object) {
		found_object = payload.find(x => x.variable === gw_rssi);
		if (found_object) {
			new_rssi = found_object.value;
		}
		else {
			return;
		}
		found_object = payload.find(x => x.variable === gw_snr);
		if (found_object) {
			new_snr = found_object.value;
		}
		else {
			return;
		}
		found_object = payload.find(x => x.variable === gw_location);
		if (found_object) {
			gw_lat[0] = found_object.location.lat;
			gw_long[0] = found_object.location.lng;
		}
		else {
			return;
		}
		decoded.num_gw += 1;

		if ((new_rssi < decoded.minRSSI) || (decoded.minRSSI == 0)) {
			decoded.minRSSI = new_rssi;
		}
		if ((new_rssi > decoded.maxRSSI) || (decoded.maxRSSI == 0)) {
			decoded.maxRSSI = new_rssi;
		}
		if ((new_snr < decoded.minSNR) || (decoded.minSNR == 0)) {
			decoded.minSNR = new_snr;
		}
		if ((new_snr > decoded.maxSNR) || (decoded.maxSNR == 0)) {
			decoded.maxSNR = new_snr;
		}

		// Calculate distance
		var new_distance = distance(gw_lat[index], gw_long[index], decoded.latitude, decoded.longitude);
		if ((new_distance * 1000 < decoded.minDistance) || (decoded.minDistance == 0)) {
			decoded.minDistance = new_distance * 1000;
		}
		if ((new_distance * 1000 > decoded.maxDistance) || (decoded.maxDistance == 0)) {
			decoded.maxDistance = new_distance * 1000;
		}

		payload.push({ "variable": "hotspot_" + index, "value": "hotspot_" + index, "location": { "lat": gw_lat[index], "lng": gw_long[index] } });
	}
}

// All gateways are listed in the raw_payload in tha variable ttn_payload_v3. Need to find a way to parse it.
const ttn_payload = raw_payload.find((data) => data.variable === "ttn_payload_v3");
// var obj = ttn_payload.rx_metadata;
// var obj2 = obj.gateway_ids;
// payload.push({ "variable": "raw_data", "value": obj2[0]("gateway_id") });
// payload.push({ "variable": "gateway_1", "value": gateway_list[1].gateway_ids.gateway_id });

const my_payload = payload.find(x => x.variable === "frm_payload");
const fPort = payload.find(x => x.variable === "fport");
var used_fPort = fPort.value;
if (my_payload) {
	var bytes = hexToBytes(my_payload.value);

	var decoded = {};
	// avoid sending Downlink ACK to integration (Cargo)
	if (used_fPort === 1) {
		var lonSign = (bytes[0] >> 7) & 0x01 ? -1 : 1;
		var latSign = (bytes[0] >> 6) & 0x01 ? -1 : 1;

		var encLat = ((bytes[0] & 0x3f) << 17) +
			(bytes[1] << 9) +
			(bytes[2] << 1) +
			(bytes[3] >> 7);

		var encLon = ((bytes[3] & 0x7f) << 16) +
			(bytes[4] << 8) +
			bytes[5];

		var hdop = bytes[8] / 10;
		var sats = bytes[9];

		var maxHdop = 2;
		var minSats = 5;

		if ((hdop < maxHdop) && (sats >= minSats)) {
			// Send only acceptable quality of position to mappers
			decoded.latitude = latSign * (encLat * 108 + 53) / 10000000;
			decoded.longitude = lonSign * (encLon * 215 + 107) / 10000000;
			decoded.altitude = ((bytes[6] << 8) + bytes[7]) - 1000;
			decoded.accuracy = (hdop * 5 + 5) / 10
			decoded.hdop = hdop;
			decoded.sats = sats;
			decoded.location = "(" + decoded.latitude + "," + decoded.longitude + ")";
		} else {
			decoded.error = "Need more GPS precision (hdop must be <" + maxHdop +
				" & sats must be >= " + minSats + ") current hdop: " + hdop + " & sats:" + sats;
			decoded.latitude = latSign * (encLat * 108 + 53) / 10000000;
			decoded.longitude = lonSign * (encLon * 215 + 107) / 10000000;
			decoded.altitude = ((bytes[6] << 8) + bytes[7]) - 1000;
			decoded.accuracy = (hdop * 5 + 5) / 10
			decoded.hdop = hdop;
			decoded.sats = sats;
			decoded.location = "(" + decoded.latitude + "," + decoded.longitude + ")";
		}

		decoded.num_gw = 0;
		decoded.minRSSI = 0;
		decoded.maxRSSI = 0;
		decoded.minSNR = 0;
		decoded.maxSNR = 0;
		decoded.minDistance = 0;
		decoded.maxDistance = 0;

		var server_type = 3;
		// Payload should be the same for all LNS ??? to be tested
		server_type = 3;
		decoded.is_chirpstack = 1;

		var gw_lat = {};
		var gw_long = {};
		var new_rssi;
		var new_snr;

		// Get gateway data
		get_gw_data(0, "gateway_eui", "rssi", "snr", "gateway_location");

		decoded.maxMod = parseInt((decoded.maxDistance / 250), 10);
		decoded.minMod = parseInt((decoded.minDistance / 250), 10);
		decoded.maxDistance = parseInt((decoded.maxMod * 250), 10);
		decoded.minDistance = parseInt((decoded.minMod * 250), 10);
		if (decoded.maxDistance <= 1) {
			decoded.maxDistance = parseInt(250, 10);
		}
		if (decoded.minDistance <= 1) {
			decoded.minDistance = parseInt(250, 10);
		}
		payload.push({ "variable": "accuracy", "value": decoded.accuracy });
		payload.push({ "variable": "altitude", "value": decoded.altitude });
		payload.push({ "variable": "hdop", "value": decoded.hdop });
		payload.push({ "variable": "is_chirpstack", "value": decoded.is_chirpstack });
		payload.push({ "variable": "latitude", "value": decoded.latitude });
		payload.push({ "variable": "location", "value": "FieldTester", "location": { "lat": decoded.latitude, "lng": decoded.longitude } });
		payload.push({ "variable": "maxDistance", "value": decoded.maxDistance });
		payload.push({ "variable": "maxMod", "value": decoded.maxMod });
		payload.push({ "variable": "maxRSSI", "value": decoded.maxRSSI });
		payload.push({ "variable": "maxSNR", "value": decoded.maxSNR });
		payload.push({ "variable": "minDistance", "value": decoded.minDistance });
		payload.push({ "variable": "minMod", "value": decoded.minMod });
		payload.push({ "variable": "minRSSI", "value": decoded.minRSSI });
		payload.push({ "variable": "minSNR", "value": decoded.minSNR });
		payload.push({ "variable": "num_gw", "value": decoded.num_gw });
		payload.push({ "variable": "sats", "value": decoded.sats });
	}
	else {
		payload.push({ "variable": 'Error', "value": 'not fPort 1' });
	}
	payload = payload.filter(x => !ignore_vars2.includes(x.variable));
}
else {
	payload.push({ "variable": 'Error', "value": 'could not get payload' });
}

What I get so far is the device and one gateway on the map:

This is how far I got with Chirpstack/TagoIO.
Cannot show multiple devices in one map, that is disappointing. But the parsing for two gateways works.

I still prefer Datacake. All devices (Fieldtester and gateways) in one map.

Thank you very much by your support.

I will test your Decoder now. I already opened a ticket in the TTN Forum to ask about the gateways informations(id and location) in the TTNV3 payload header.

I will give news soon.

Claudio

What I found so far is

  • TTN sends all gateway information in the “raw payload”
  • TagoIO is doing a pre-parsing of the “raw payload” into “payload”, leaving only one gateway in “payload”
  • the custom parser is receiving the “payload” with only one gateway

The custom parser can somehow access the raw payload, but it I didn’t succeed yet to parse that raw payload.

Just some comments:

  1. In the line 131 and 141 is missing a “;”: decoded.accuracy = (hdop * 5 + 5) / 10;

  2. In the TTN, we don´t have a “payload” as a global variable as we have in the TagoIO. I am working to fix it.

I am using in the Integration, Webhook, because is the TagoIO template in the TTN

I found a good information here: Data Formats | The Things Stack for LoRaWAN

{
  "end_device_ids" : {
    "device_id" : "dev1",                    // Device ID
    "application_ids" : {
      "application_id" : "app1"              // Application ID
    },
    "dev_eui" : "0004A30B001C0530",          // DevEUI of the end device
    "join_eui" : "800000000000000C",         // JoinEUI of the end device (also known as AppEUI in LoRaWAN versions below 1.1)
    "dev_addr" : "00BCB929"                  // Device address known by the Network Server
  },
  "correlation_ids" : [ "as:up:01...", ... ],// Correlation identifiers of the message
  "received_at" : "2020-02-12T15:15..."      // ISO 8601 UTC timestamp at which the message has been received by the Application Server
  "uplink_message" : {
    "session_key_id": "AXA50...",            // Join Server issued identifier for the session keys used by this uplink
    "f_cnt": 1,                              // Frame counter
    "f_port": 1,                             // Frame port
    "frm_payload": "gkHe",                   // Frame payload (Base64)
    "decoded_payload" : {                    // Decoded payload object, decoded by the device payload formatter
      "temperature": 1.0,
      "luminosity": 0.64
    },
    "rx_metadata": [{                        // A list of metadata for each antenna of each gateway that received this message
      "gateway_ids": {
        "gateway_id": "gtw1",                // Gateway ID
        "eui": "9C5C8E00001A05C4"            // Gateway EUI
      },
      "time": "2020-02-12T15:15:45.787Z",    // ISO 8601 UTC timestamp at which the uplink has been received by the gateway
      "timestamp": 2463457000,               // Timestamp of the gateway concentrator when the message has been received
      "rssi": -35,                           // Received signal strength indicator (dBm)
      "channel_rssi": -35,                   // Received signal strength indicator of the channel (dBm)
      "snr": 5.2,                            // Signal-to-noise ratio (dB)
      "uplink_token": "ChIKEA...",           // Uplink token injected by gateway, Gateway Server or fNS
      "channel_index": 2                     // Index of the gateway channel that received the message
      "location": {                          // Gateway location metadata (only for gateways with location set to public)
        "latitude": 37.97155556731436,       // Location latitude
        "longitude": 23.72678801175413,      // Location longitude
        "altitude": 2,                       // Location altitude
        "source": "SOURCE_REGISTRY"          // Location source. SOURCE_REGISTRY is the location from the Identity Server.
      }
    }],
    "settings": {                            // Settings for the transmission
      "data_rate": {                         // Data rate settings
        "lora": {                            // LoRa modulation settings
          "bandwidth": 125000,               // Bandwidth (Hz)
          "spreading_factor": 7              // Spreading factor
        }
      },
      "coding_rate": "4/6",                  // LoRa coding rate
      "frequency": "868300000",              // Frequency (Hz)
    },
    "received_at": "2020-02-12T15:15..."     // ISO 8601 UTC timestamp at which the uplink has been received by the Network Server
    "consumed_airtime": "0.056576s",         // Time-on-air, calculated by the Network Server using payload size and transmission settings
    "locations": {                           // End device location metadata
      "user": {
        "latitude": 37.97155556731436,       // Location latitude
        "longitude": 23.72678801175413,      // Location longitude
        "altitude": 10,                      // Location altitude
        "source": "SOURCE_REGISTRY"          // Location source. SOURCE_REGISTRY is the location from the Identity Server.
      }
    },
    "version_ids": {                          // End device version information
        "brand_id": "the-things-products",    // Device brand
        "model_id": "the-things-uno",         // Device model
        "hardware_version": "1.0",            // Device hardware version
        "firmware_version": "quickstart",     // Device firmware version
        "band_id": "EU_863_870"               // Supported band ID
    },
    "network_ids": {                          // Network information
      "net_id": "000013",                     // Network ID
      "tenant_id": "tenant1",                 // Tenant ID
      "cluster_id": "eu1"                     // Cluster ID
    }
  },
  "simulated": true,                         // Signals if the message is coming from the Network Server or is simulated.
}

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.