Ubidots Community

Communication Problem with official The Things Network Integration

Hi!
I followed this guide to activate The Things Network integration with my free Ubidots tier:

I encountered this weird behavior:
After I add a new device in TTN, Ubidots receives data as expected, but it comes to a halt after an hour or so.
After that, no new data is received in Ubidots, even though the TTN Console shows incoming data and other integrations receive data as well.

I can however delete the device in TTN and re-add it with a new device id, then the same process starts all over again and comes to a halt again after some time.

It’s impossible to troubleshoot for me as neither TTN nor Ubidots emits any kind of error message.

What can I do?

Hi @kenwan ,
Thanks for sharing this issue with the community.

In order for me to help troubleshooting this issue, can you clarify the below?

  • which part of the platform are you seeing that your data just sudden stop from being updated?
  • Could you please advise your username so I can take a closer look?
  • Can you send me in a direct message the last 4 characters of the token used to send your data? Be careful not to share the whole token for security purposes.
1 Like

Hi @sergio,
thanks for your reply.

  • New data/values/dots do not appear in the device section and therefore also not on the dashboard. (timeframes are correctly set though) It’s like the data never reaches Ubidots or gets lost on the Ubidots server.
  • Username is same as in the forums.
  • I can’t send PMs yet, so here are the last 4 characters of the token: ***a

Thanks for sharing the info. Just an additional question, how often is the data pushed from your device?

Every Minute to 30 Seconds, I got a quota warning yesterday, but was still within the limits.

Hi @kenwan,

First of all, please accept my apologies for taking this long to reply.

Following up, I made several tests from my end and in all of them, I was able to send data without frictions. In order to continue troubleshooting your case, could you please provide a screenshot of the payload decoder and from the data tab? (Please refer to the attached image) I might suspect that either the JSON is invalid after time for some reason, or the values are empty or invalid.

Payload decoder

Data tab

Hey guys, I’m having a similar issue, so I thought I’d share my debug process.

  1. Device --> TTN: OK - I can see data in the TTN console
  2. TTN decoder: OK- If I copy-paste the “Physical payload” shown in the Gateway logs, into the Application’s decoder, I get an Ubidots-friendly JSON:

  1. Integration: NOT OK - If I create an HTTP integration and point it to https://requestbin.com/ I don’t see any incoming requests:

image

In summary, it seems that data isn’t even leaving TTN. When this happens, you might want to check https://status.thethings.network/; the integrations part is indeed appearing as “Degraded service” in this very same moment.

@sergio May payload decoder decodes Google Protocol Buffers from binary and is super long. Other integrations (Data Storage, HTTP/Pipedream) have no problems with the JSON.
I will however try to send dummy JSON to rule this out.

Hi @kenwan,

thanks for sharing your findings with the community.

I already went ahead and tested the TTN’s Ubidots integration and from my end it’s working as expected, although I do not discard any issue on the weekend. Do you still have issues sending your data to Ubidots?

Following up, your JSON payload is almost ready for Ubidots platform, just keep in mind that values of variables must be numerical, so I’d suggest to represent boolean values as 1 fro True and 0 for False.

Best,
–Sergio.

Hi @sergio,
thank you for your support so far.

This is a very good point.
Are there more restrictions to the JSON payload?

Here is an example of a typical payload: (location censored)

{
    "altitude": 22.899999618530273,
    "battery": 3.6201000213623047,
    "course": 328.2799987792969,
    "hdopAccuracy": 185,
    "lat": **.32974624633789,
    "lng": **.104452133178711,
    "location": {
        "context": {
            "lat": **.32974624633789,
            "lng": **.104452133178711
        },
        "value": 1
    },
    "msgType": 1,
    "satellites": 7,
    "speed": 3.648439884185791
}

This is the optimal case, but my payload can have “null” values if there is no GPS fix, and in this case also omits the “location” field. Is that problematic?

Another problem I suspected was that I am sending exactly 10 fields, and only 10 are included per device in the free tier. I removed one field, but it still didn’t work.
May this be a problem? What happens if I send 11 values?

Ken

@kenwan Your payload looks pretty well and Ubidots friendly. Now, for those cases when a variable gets a null value, our back will just ignore that variable and will continue with the others.

In regards to the number of variables, as long as you don’t exceed the limit of 10 variables per device, then you shouldn’t face frictions sending data to Ubidots. Now, if the limit is exceeded, then the variable that hasn’t been created will be refused by our ingestion system.

Moreover, I noticed that you’re sending the lat and lng info as independent variables, would you need to send them like that? If not, then I’d recommend to send them in the location variable, so that you free 2 spaces for other variables. Makes sense?

Best,
–Sergio.