Ubidots Community

Single instance authentication for multiple Devices and/or Variables

Hello All,

I need to know if there is a solution for my problem, described below, on how my RFM-to-MQTT (ArGateway) is set up. “Ar” is for Arduino. If possible, I’d like to see if Udibots can be configured to handle the messages from my gateway without me having to reprogram the outboad syntax from the gateway.

  • The ArGateway is an RFM-to-MQTT Arduino that receives the data from multiple RFM Nodes (ArNode) and converts the data into MQTT.
  • Each node has multiple sensors (ArDev) that are transmitted to the gateway.
  • The gateway is the single point of authentication that connects to Ubidots.

How may I configure Ubidots to receive the syntax for each ArDev and ArNode through only one connection (UbiDevice)? Here’s what the ArGateway is sending out to the MQTT broker where I have 2 ArNodes connected through the ArGateway. Each message is sent individually.

[ArNode = node5 ArDev = dev02 (radio signal strength)]
topic: “/v1.6/devices/agrimon/node05/dev02”
payload: “-26”
[ArNode = node5 ArDev = dev04 (voltage]
topic: “/v1.6/devices/agrimon/node05/dev04”
payload: “3.34”
[ArNode = node5 ArDev = dev50 (temperature]
topic: “/v1.6/devices/agrimon/node05/dev50”
payload: “74.19”

As you can see, the ArGateway used the Device Token (Ubi API) to connect to Ubidots as a device and there is no variable (Ubi API) to attach as an object the payload.

This is the point where I’m looking for options in order not to update my Arduino code and any help is appreciated.

Beyond this point is where I’m thinking of a solution where I have to reprogram the Arduino code. The limitation is where I have only one Device Token (Ubi API) to handle multiple ArNodes.
Where agrimon is label (Ubi API), all my incoming traffic limit to topic: “/v1.6/devices/agrimon” I would then assign each ArNode and ArDev their own variable. i.e. variable is ArNode-ArDev

payload.rssi = node05-dev02
payload.battery = node05-dev04
payload.temperature = node05-dev50

payload.rssi = node06-dev02
payload.battery = node06-dev04
payload.temperature = node06-dev50

It would look something like this

msg.topic = "/v1.6/devices/agrimon"
msg.payload = 
    'node05-dev02': "-21",
    'node05-dev04': "3.86"
    'node05-dev04': "77"
return msg;

Again, I’m trying to avoid reprogramming the RFM-to-MQTT