Processing of payload in mydevices Cayenne

Hi,

This is my first post on this forum. I am writing a report about Cayenne, and I was hoping someone has time to answer a few questions. I have been using the things network (TTN) in combination with mydevices Cayenne for a LoRa node which is sending temperature and humidity data once an hour. I also read the documentation about lora (specifically the C++ implementation of of the mydevices implementation, which can be found in the cayenne docs – lora section), but I couldn’t find the answer on the following questions:

  1. How is the database in mydevices Cayenne implemented (which programming language is used to create it) and which functions are used?
  2. How does mydevices Cayenne know when new data arrives?
  3. What actions in code in the background are needed to go from a payload from TTN containing temperature and humidity data to filled columns in the database?

Looking forward for an answer :slight_smile:

Regards,

Sam

Hi Sam,

  1. Cayenne Database is in myDevices Cloud. You don’t have access to it from the end-node. We provide full REST API instead for your services integration.
  2. TTN to Cayenne integration simply allows TTN to forward packet to Cayenne as soon it’s received. Real time let’s say.
  3. I don’t understand that question.

@eptak
In 3, I think he may be referring to payload format.

@Sam_cayenne
If I guessed correctly, here is the documentation Cayenne Docs

TTN simply forwards that payload to Cayenne so we can read it.

Hello eptak,

Thanks for the answer.

  1. I understand mydevices is cloud-based, and I also know I do not have acces to it. But do you know (in general) which programmming language is used (for example, is it SQL-based?), and which routines are used? I dont need a detailed description for my report, just a very broad one.
  2. Great, this one is clear.
  3. So what I meant is the following: I have read the c++ reference, but as far as I understood is dat once data is sent from TTN to mydevices, it is put in some sort of buffer ( uint8_t* CayenneLPP::getBuffer(void) ). Is this correct? From that point my question starts: what happens next before the data is put in the actual database in mydevices Cayenne?

Regards,
Sam

@acedeno, thanks for your reply. However I am not referring to the payload format, but to the c++ reference.

  1. We use a mixture of DB depending on the requirements, SQL and NoSQL based are both used. I cannot provide more information.

  2. Ok I get it… The LPP C++ library allows to encode sensor data into a small sized payload. The payload is then encrypted using LoRaWAN stack and sent to TTN LNS. TTN decrypt it then forward it to us using the integration. On our side we then decode the payload back into full Cayenne sensor data. Those data are processed for rules and stored in our backend for history records.

1 Like

Hi epetak,

Thanks for the reply. That answers my questions!

Kind regards,

Sam

1 Like

the Cayenne LPP data from TTN…it is sent as a ‘hex’ format or is it encoded base64?

LPP is binary from the device to the LNS and TTN forward data to us wrapped in a JSON with the device payload encoded in base64. some other networks forward us data in JSON with hex encoded payload

1 Like