End devices do not work properly

Hello everyone.
I am trying to connect my GPS Oyster LoRaWan tracker to the chirpstack server. I did install server on raseberrypi4 also as i have separate gateway (raspberry pi 3 with RAK 2245 hat). everything works fine on TTN however with Chirspastack I did encounter difficulties- my oysters do not provide correct data and produce error message. I read on the site it might be config issue however i cannot find which one . Thank you for your help

I found the reason on why I got error message and fixed it , however the gps data is still incorrect. Anyone might know the reason why???

Hi @serg,

The Lat and Long values in the above picture are from the gateway and not from the end-device.

If the end-device is capable of sending the lat and Long values as LoRaWAN uplink, you will find it in “objectJSON”.

As I could see on the picture that “objectJSON” is empty, I would expect that you are not returning a valid object from Decode function.

BR,
Chay

Hi Chay,
Thank you for you response. I left JSON object empty as I am using base64 encoded instead as I do not have a lot of coding experience. So, to get the value from the end-device,do I have to write the code or can I do something else?

Hi @serg,

In general, I request the device manufacturer for a payload decoder, if it is not available, I will develop it after looking at the payload description.

In your case, if necessary, I can provide you a function that converts uplink from base 64 to hexadecimal bytes. And you need to program further in Javascript to read out the Lat and Long values from the end-device.

BR,
Chay

Chay,
If you can it would be great.
Thank you so much !
BR,
Serg.

Chay,
If you can it would be great.
Thank you so much !
BR,
Serg.

HI Chay,
I found a documentation with code example


2

put it into my device profile under codec custom javascript functions. however my data is still emty

Any suggestions?
Thank you

Hi @serg,

Your decoder does return an empty object. Reason for this is the name of the function. Chirpstack Decoder should have " function Decode(fPort, bytes)" in it.

Please rename your function with Decode(fPort, bytes). If this doesn’t work well, include the below lines after your decoder function.
function Decode(fPort, bytes){
return Decoder(bytes, port)
}

Please let me know, if it worked?

BR,
Chay

1 Like

Hi Chay , thank you for you advise,
after playing around with the code a little , I made it work.