Temperature Tile Degree Symbol inconsistency

I have a few different sensors that give temperature values (Zwave Aeotec Multisensor 6s, Zwave Danfoss Room Sensor, & Zigbee Hue Motion sensors).

When I display them on a dashboard using the same temperature template, the units shown vary. With the Aeotec I get 19.0 C and with the other 2, I get 19.0 °C. What determines whether the degree symbol appears or not? Is it configurable or is it driver dependant?

1 Like

I think it depends the device driver because I had the exact problem but with Sharptools, fortunately it has to modify the units, not sure if in the dashboard we can do that.

The driver sets the units value. If these are built in drivers let me know, otherwise it's up to the author to set the units.

Patrick,

Is there a defined list of 'units' that are supported by the Hubitat Dashboard? For example, in the Drivers Capabilities document, Temperature Measurement has the following information, but no mention of units. I would like to make sure all of my HubDuino drivers are configured to use valid units to make sure they display properly on the Dashboard.

TemperatureMeasurement

Device Selector

capability.temperatureMeasurement

Driver Definition

capability "TemperatureMeasurement"

Attributes

temperature - NUMBER

Commands

That explains it then. I'm using @csteele's driver for the Multisensors so I guess the degree part must be missing in there.

@patrick On that subject is there any upgrade to the standard driver for the Aeotec planned? I do prefer to stick with standard drivers but that one in particular is missing a lot of parameter configuration that is pretty basic like motion on time setting and also LED behaviour which I set to off for bedrooms.

Edit I've changed one of my Aeotecs back to the standard driver and it still doesn't give the degree symbol in the dashboard.

Units has been a fun discussion between @mike.maxwell and I

While technically it's up to the driver, there is no standard or spec and not sending a unit is an option too.

Since it's not that difficult to put in the new dashboard, would it make sense to allow the display of a unit and if so, specify what the unit for that template will be? Guess it could default to use what comes from driver.

I'd prefer all drivers provide the proper unit but only place outside dashboard you can see the unit is in the event table.

that AeotecMultiSensor6 driver gets it from the system:

        map.unit = getTemperatureScale()

which returns "C" or "F" which gets tested as:

byte tempScaleByte = (location.getTemperatureScale() == "C" ? 1 : 2)

I like the option to tweak units in the Dashboard, personally. I think it will give users the most flexibility.

"new dashboard" ? Is there an upcoming upgrade? Personally I would be very happy with configuring the unit in the Dashboard, it's what happens in Sharptools and works well there.

Ok... For there to be a "proper" unit, there would need to be a list... As, for me, I will never return temp as degrees symbol F or C in my driver's otherwise. I prefer DegF and DegC (or F/C when space constrained). That's what we use in industrial control systems, so is my default.

But i will acquiesce that if there were a cannonized list of standard units, I would use that (begrudgingly :slight_smile:).

Jeez, proper means F or C. If you want a driver to return degrees Fahrenheit, you could.

Also proper means consistent with the device and attribute it is returning.

Basically what you are saying is you want to be able to customize it in dashboard.

Yes, dashboard is undergoing some significant changes to add a ton of features, polish up the UI a bit and add some missing tile templates as well.

No ETA.

2 Likes

Gotcha. Maybe.

Hard to tell if doing it in dashboard would be good or bad. All depends on the implementation.

To be frank, the dashboard is extremely tedious to use in it's current form. So unless it gets easier to use in general, I'm not sure adding more configuration to it is a good thing.

Yes, ease of use without removing flexibility is one of the goals.

3 Likes

Awesome. Hope it turns out great!

I personally feel the units should be defined by the driver. I've performed a lot of testing on automotive produces and vehicles. There, the ability to change the units on the display is an error waiting to happen.
I realize there is a different level of data being provided by sensors in HE however I feel the concept is the same. For example ( degrees F, degree F, deg F, °F or F) are all valid units for a temperature reported in Fahrenheit. But they are different from Watts or Amps etc.

I don't even know how one would define the logic for the dashboard to know it can change from deg F to °F but not to watts. One would have to include all the possible unit options.

Again my position is: If there are to be options for units, they should be in the driver.
I'm not a groovy programmer but I would imagine that once a snippet of units option code was written for a driver, it could be leveraged for nearly all drivers with units to be reported.

Just my 2ȼ

John

I updated AeotecMultiSensor6 driver to include the degree. It shows in Events, but I was never able to see where it was wrong on the Dashboard. I guess I wasn't using that tile/template.

temperature 74.1 °F

°F °C F or C.
Not an issue for me.
As long as the reading is accurate, that's all that matters. My 2pence worth. :wink:

@csteele Thanks very much that works a treat :+1:

But I am getting an error in the log now regarding the LED setting:

NULL certainly isn't a number. :frowning:

v1.6.2 available

remember that you can just copy the URL from the first line of the driver source and paste that into the Import field.

1 Like