Custom Widget Data


I am using Arduino Uno with Serial/USB Connection. I want to add custom Widget that I want to sent temperature. The problem is that my temperature is already converted into Celsius. When I Serial.Print(temp), it is for example 25.6 Celsius degrees. I set up an Custom Widget, give the virtual pin, also set Temperature and Celsius, BUT, the the temperature is converted in some other format and shows something like ~80…

How can I stop this conversion and send the value that I measure?

Thank you.

float soilTemperature0 = OpenGarden.readSoilTemperature();
 Cayenne.celsiusWrite(VIRTUAL_TEMP, soilTemperature0);

Okey… a little update:

When I send to the Widget the value: Cayenne.celsiusWrite(VIRTUAL_TEMP, 11.50);

The dashboard is showing exactly 52.70. I choose in the widget to be CELSIUS, but this is 11.50 from celsius to Fahrenheit conversion:

11.50 x 9/5 + 32 = 52.70

Is it a bug or something?


Hi @ognqn.chikov,

We will look into this. We just released the MQTT API so we’ve been focused on that for past few days.

@rsiegel chime in if you have any work around ideas :slight_smile:


Yes, I have some ideas:

It could be good to be added, when a custom widget is made - the user to
choose whether the data is temperature, pressure…etc or a RAW Sensor data.
When this item is choosed - another menu with drop down symbols for data to
be choosen (for example I want to measure energy in watts or jaul), so the
user can have more flexibility.

I quite solve my problem, as I add Generic Sensor with Analog Input. The
only disadvantage is that the data type is “float” and user can not
manipulate the string that is visible uder the widget.

Also I am very good at Photoshop and I can help with making some icons and
other visible vector elements, so users can have more flexibility.

Best Wishes,
Ognyan Chikov.

I have some more information about the BUG. On the Android device (Nexus 5)
through the APP. for Android, the custom widget is working FINE. It shows
the temperature as it should be!. You can see the pucture as the widget
named “TEMP NODE” is working OK.

The problem is with web browser version. Here the widget “TEMP NODE” is
showing strange temperature.

See the pictures!

When I choose in the web-based platform, the temperature to be in Farenheit, actually it shows the correct temperature in Celsius degrees. I think that you have changed the functions by mistake.


Hi @ognqn.chikov Thank you for the bug information and apologies for the delayed response. I’m going to investigate today and prepare a better response. If you see this in the meantime, can you let me know what type of temperature sensor you are using, and share your sketch code? Also I’m curious if you initially created the ‘Temp Node’ Widget on the Android or Web platform.

Now that I look a bit deeper at your screenshots, I wonder if (depsite their name) your ‘Temp Node’ widgets are not the same type between Android and Web. This sort of thing should be syncing but we’re aware of some open issues with it that we’re working on

Basically, if your web ‘Temp Node’ widget was of the Generic Analog Input type, you wouldn’t even have the option to change it from ‘float’ to Celsius – same as you’ve observed on Android. So if you want to replicate the widget you have on the Android device, I’d suggest to delete this one, and re-create it as a Generic Analog Sensor.

Sensors in andoird and Desktop versions are completely the same. I just open my profile through your app.

I initially created in Web. Then I just download your app and open my profile. Sensors are DS18B20, but I use another library to read them - Open Garden library because they are integrated in their shield (Open Garden shield is a sensor shield for Arduino. It is from Libelium company).

Could you share a screenshot from each platform with the settings dialog for that ‘Temp Node’ widget open on each? I understand the intent was for them to be identical on both platforms, but I’m concerned that they aren’t currently in that state from what I’ve seen in your previous screenshots.