RAK7258 - CayenneLPP, analogInput

Hi,
I enable built-in LoRa Mode: Network Server (RAK7258) with Payload Format: CayenneLPP.
Built-in LoRa Network Server supports integration to the user’s application server through MQTT protocol.
RAK7258 is the broker
MQTT.fx is the subscriber
EndDevice (RAK7205) is the producer, and publish:

Battery Voltage = 4.213 V 
BME680 sensor data:
  Humidity:30.923 %RH
  Temperature:25.42 degree
  Pressure:971.32 hPa
  Gas_resistance: 11028 ohms 
LIS3DH sensor data:ACC_X: 6mg, ACC_Y: -23mg, ACC_Z: -1024mg

The message is in JSON format.

{
  "applicationID" : "1",
  "applicationName" : "myApp",
  "devEUI" : "60c5a8fffexxxxxx",
  "deviceName" : "MyDevice",
  "timestamp" : 1614723166,
  "fCnt" : 0,
  "fPort" : 8,
  "data" : "CAIBpQdoPQZzJfECZwD+BAIETgNxAAb/6fwA",
  "data_encode" : "base64",
  "object" : {
    "analogInput" : 11.02,
    "humidity" : 30.5,
    "barometer" : 971.3,
    "temperature" : 25.4,
    "accelerometer" : {
      "x" : 0.006,
      "y" : -0.023,
      "z" : -1.024
    }
  },
  "adr" : true,
  "rxInfo" : [ {
    "gatewayID" : "60c5a8fffe766339",
    "loRaSNR" : 11.3,
    "rssi" : -46,
    "location" : {
      "latitude" : 0.0,
      "longitude" : 0.0,
      "altitude" : 0
    }
  } ],
  "txInfo" : {
    "frequency" : 867700000,
    "dr" : 0
  }
}

The set Payload Format: CayenneLPP make the object section:

  "object" : {
    "analogInput" : 11.02,
    "humidity" : 30.5,
    "barometer" : 971.3,
    "temperature" : 25.4,
    "accelerometer" : {
      "x" : 0.006,
      "y" : -0.023,
      "z" : -1.024
    }
  },

but:

  • where is the battery voltage?
  • Gas_resistance: 11028 ohms -> analogInput=11.02 why ?

I can set the right object conversion values?

thx
cm

Hi @cmioci ,

What decoder are you using?

Can you try this official decoders?

Hi Carl,
I don’t use TTN and ChirpStack but I use LoRa gateway in a private network. The garteway is configured as Network Server. I don’t use any decoder scipt but in my application, MQTT subscriber, decode the payload field:

"data" : "CAIBpQdoPQZzJfECZwD+BAIETgNxAAb/6fwA"

I have to not decode the payload I set CayenneLPP in payload format.

My question is:
Can I customize the values present in payload field object ?
For example:

 "object" : {
     "battery_voltage" : 4.213,
     "humidity" : 30.923,
     "pressure" : 971.32,
     "temperature" : 25.42,
     "gas_resistance": 11028,
     "accelerometer" : {
       "x" : 0.006,
       "y" : -0.023,
       "z" : -1.024
     }
   },

thx, cm

Hei @cmioci ,

There is no way for a custom decoder in the Gateway so technically you get what you get.

Regards
Vladislav

You’ll have a lot more capability if you use the gateway as part of a system, rather than try to make it the entire system.

For example, you could run a current version of chirpstack in the cloud or on a local box (even down to a pi, though I’d recommend something more robust) and point the gateway at that. As an added plus, that would support expanding your network to have multiple gateways with cooperating, overlapping coverage in the future.

Or you could have a stage where some custom code subscribes to your uplinks, splits the fields, and re-publishes them on a different topic.

Worth considering too that Cayenne is really not the most efficient encoding for LoRaWan, since the formatting information it needlessly puts in every packet can be replaced by tracking node software versions and using LoRaWan port numbers and lengths to tell packet types apart.

Thank you for your answers, you’re right.

For example, you could run a current version of chirpstack in the cloud or on a local box (even down to a pi, though I’d…
yes, I bought RAK2287 Discover Kit 868Mhz

Or you could have a stage where some custom code subscribes to your …
yes, my subscriber send environment data to “data lake” in the cloud

Worth considering too that Cayenne…
yes, it’s true

bye cm