Data TTN to Thingspeak problem with Payload Decoder from Array

Hello,

I have a question regarding decoding in TTN specifically for Thingspeak.

The code in Arduino IDE for a MKR1310 is the following:

String sensorString = String(airTemperatureReading);// + "-" + String(altitudeReading)+ "-" + String(pressureReading)+ "-" + String(sensorValueRain);
  char payload[sensorString.length()+1];
sensorString.toCharArray(payload, sensorString.length() +1);
Serial.print(payload);

modem.beginPacket();

modem.write(payload, sizeof(payload));

Here I tested just one sensor data, to make it easier to understand whats going on with the payload function in general. But I didn´t really manage with that. In TTN the decoding is ok, so I get with the decoder -just for TTN usage- 24 from Hex 323400. However, now I have to switch the decoder to Thingspeak readable data but with the following Decoder I just get 50 in field1, but 24°C is the right temperature.

Decoder TTN:

function Decoder(bytes, port) {
  var tem = (bytes[0]<<0) | bytes[0];
  return {
    field1: tem
  }
}

Test Byte Payload → Complete uplink data

 {
"f_port": 3,
"frm_payload": "MjQA",
"decoded_payload": {
 "field1": 50

The Arduino Sketch is from here:

Thank you very much

Reformatted the code for actual readability so I could verify what it was trying to do.

The problem is that you are sending strings which apart from being hugely inefficient, is prone to error as you have found.

Read: https://www.thethingsnetwork.org/docs/devices/bytes/ - ignore the pink box, this is a generic article.

And look at other GitHub posts to see how more than just that one person has implemented their payload.