Ubidots Community

Subscribing to multiple values with only one client

So i have a project and im able to subscribe to a value and use it in my code. But i need to subscribe to a second, and maybe more things. right now i need to subscribe to widgets on the ubidots dashboard. this is easy alone, but when there is more than one thing to subscribe on i get confused. I have seen some example codes on here, but they use multiple clients. I have seen example code for this here: Create a digital Piano with Ubidots and a NodeMcu | Ubidots Help Center. But as said, is there a way to use a single client and subscribe to multiple values/widgets?

Hello @andylord ,

Thank you for reaching out.

Yes, you can subscribe to multiple values in Ubidots with only one client. To achieve it, please follow these steps:

  1. You need to subscribe to the corresponding variable in the setup function and in the loop function. For instance:

void loop()


// put your main code here, to run repeatedly:

if (!ubidots.connected())



ubidots.subscribeLastValue(DEVICE_LABEL, VARIABLE_LABEL_1);
ubidots.subscribeLastValue(DEVICE_LABEL, VARIABLE_LABEL_2);




  1. You need to compare the topic in the callback function. That way, you’ll be sure from which variable you’re receiving the data, this comparison can be done following this syntaxis:
if( String(topic) == "/v1.6/devices/{DEVICE_LABEL}/{VARIABLE_LABEL}/lv"){ 
  //write your code

Where {DEVICE_LABEL} is the label of the device and {VARIABLE_LABEL} is the label of the variable. To obtain more information, please click here .