What is the best integration for paging messages?

I’m watching an interesting LoRa project unfold on Facebook “LoRaWAN pager project”.
Meanwhile I’ve built my own RAK831 gateway and a few sensor nodes. I have integrated those sensor nodes to use Cayenne. Cayenne supports all sorts of sensors, but it it does not fare well with strings being sent either way – from the node to the backend and from the back end to the node.

What would the best integration be for such a project?

LoRaWAN is not build for sending txt messages in general, you probably get in trouble with the fair use policy very fast imho , I assume you want conformation that your message(s) arrived ?
Another problem I forsee is the max payload size, bigger message means splitting it up and waiting in between the message parts to comply.
And the devices are presumably mobile, what if the device receives only first part and not the second, So no conformation the message is complete ?

LoRaWAN data rate and application packet sizes :

The data rate and maximum packet size roughly depend on the distance to the nearest gateway and the type of data to be sent, and are also defined in the specification for each region. Like for the European
863-870MHz band, the application packet size varies between 51 bytes for the slowest data rate, and 222 bytes for faster rates. Note that the LoRaWAN protocol adds at least 13 bytes 121 to the application payload. And beware:

Some libraries, such as LMiC 70, only support 51 bytes for all SF.
Some providers, such as the Dutch KPN 32, only support 51 bytes for all SF.

- Limitations: data rate, packet size, 30 seconds uplink and 10 messages downlink per day Fair Access Policy
- duty cycle for LoRaWAN devices
- Limitations of LoRaWAN

Technically they can be build on a LoRaWAN network … but I think you must see them as emergency devices only, not for daily use to send messages to your friends.

Thanks for the detailed description of the overhead involved.

Knowing there’s a fair use policy that limits the number of characters sent and the 51 bytes per message max, there are limitations. I fully understand this. What if the message was not coming from or going to a pager, but a real device that might be used in a real IoT environment like this Arduino-based PLC controller? The strings sent might control a series of digital or analog sensors. The strings received may be a series of relay closures or analog settings…


So back to the original question… What is the best integration for paging messages. I’m using that as an example. I’m trying to send a string rather than a character (an all of its overhead) from the sensor node to an integration or from the integration to the sensor node.

Cayenne’s payload is based on sending IPSO standard objects.

“Jaime Jimenez∗ , Michael Koster† , Hannes Tschofenig” IPSO Smart Objects

LoRaWAN - Cayenne LLP

But what happens when there’s an error in my PLC controller. Easy. Send an error code --Error 1 = Emergency shut down, Error 2 = Node needs to XYZ, Error 3 = some sensor is failing, Error 4 = some simple warning.

At the other end in Cayenne the error display suddenly changes to 14. But I needed a human readable error message. How do I send it???

Sadly cayenne does not yet support sending a text string (IPSO 5527). Cayenne in fact, only supports a small subset of the entire IPSO standard object library.

IPSO Smart Object registry

So do any other integrations support text strings?


you don’t have to use Cayenne… you could build your own application that ‘translates’ an error code received from your PLC/lorawan device on a specific port, to a text message, an alarm signal or whatever.
You never send a complete plain txt message over LoRaWAN

maybe TAGO ?
that dashboard has more build options

Such real devices should not use text either. There’s simply never an excuse to use text.

1 Like

How can you begin to say that? I personally have three Controllinos. Did you even know they existed before I posted?

What if a device on that Controllino sensor node is reading my badge, or reading an RFID, or a bar code reader, etc? You can’t possibly make a blanket statement like that.

OK … So what in a sense you are telling me is that Cayenne is not really seriously useful for a hobbyist demonstration tool. It can’t work with a very simple string object.

Thank you I had already figured that out.

Can this be done with Cayenne? There did not seem to be a display box in Cayenne that contains a case statement that displays one of 256 canned error messages, given an error code.

Besides complete error messages, there are other reasons for sending a string from a sensor node to the server … A string scanned from a badge, data from an RFID tag, etc.

There may be a special string that needs to be sent to a parking meter. “Parking Free today for the 2018 Hamfest”, a message to the Coke machines in the building “Happy Veteran’s day Monday Nov 12”, a message to an operator working an automated productions station “Gizmo XYZ 34 more to produce”, etc. etc.

Thank you for the TAGO suggestion. I will look there next. I’m looking at all of the integrations to fully understand their best features and flaws.

A library card has a 14 digit bar code on it. This is well within the 51 byte limit if sent using an IPSO standard 5527 string code. But, TTN/Cayenne can’t handle that either due to self-imposed “you will never need that” limitations.

It’s pretty clear that LoRaWAN as implemented on TTN can’t even send the data that’s coded on the back of your driver’s license.

PDF417 2D Barcode standard

I’m getting to pretty quickly realize that LoRaWAN is more of a hobbyist thing rather than a real IoT tool.

yes… you probably need to find another platform because it’s doesn’t fit your needs, or you don’t fully understand the protocol.

this topic is closed.

And all that based on a single integration? Wow, pretty impressive reasoning. May-be it is time to look a bit beyond Cayenne? There are other options available, including the most powerful one, MQTT, which allows you to receive anything you can send. It does require a bit of coding.