valueTile won't display in new UI

Hi Everyone. Long time lurker, first time poster.

After a power failure while I was away from home today, I decided to take a look into what is available for monitoring power information on the main UPS that runs my home network. I’m already running NUT (Network UPS Tools) on a Linux server connected to the UPS, and I found someone had already written a DHT for NUT that uses a simple CGI proxy to get UPS values from the NUT command/response server.

Getting all of that setup and installed worked fine, although things needed some minor tweaks. Where my problem comes in is that I decided I wanted to add another tile to the details view for the UPS that would show estimated remaining runtime. It’s my hope that eventually I can get an alert when the estimated runtime is low.

I’ve added a new attribute for my tile:

attribute "remainingTime", "number"

…and the valueTile itself:

    valueTile( "remainingTime", "device.remainingTime", decoration: "flat" )
    	state "default", label : '${currentValue} minutes'

…which is also added to the ‘details’ list:

details( "battery", "power", "voltage", "powerSource", "remainingTime" )

…and I’m sending an event after parsing the details:

private _sendEstRuntime( estRuntime )
// "_sendEstRuntime(${estRuntime})"
    def map = [
            name : "remainingTime",
            value : estRuntime,
            descriptionText : device.displayName + " estimated runtime is ${estRuntime} minutes"

    sendEvent( map )

The event seems to get thrown just fine, as in the web UI I can see the following:

Screen Shot 2021-03-30 at 02.29.56

But the tile just won’t show in the new app at all. I’ve published the new DHT, I’ve removed the device and re-installed it, have restarted the iOS app, tried it on another device – nothing.

The kicker is that it shows up just fine in the simulator, and is populated with the correct data. I’ve dug through the documentation and have searched the forums, but so far nothing has helped. There are no exceptions in the logs.

Any ideas? TIA!

Custom attributes (those created with attribute lines) are not supported in the ‘new’ environment and the whole tiles things was about providing a UI for the obsolete Classic app. The current app bases the UI on capabilities and you can create your own custom capabilities.


Thanks so much for pointing me in the right direction. There is a lot of old documentation and tutorials and example code out there, and it’s hard for a newer SmartThings dev like myself to pick out what is up-to-date and what isn’t.

Now I’m wrestling with issues with the SmartThings CLI, which is a completely separate issue. Hopefully I’ll find time this weekend to look into it further, as there are a bunch of improvements I’d like to make over time to the DHT. Thanks!

Some tiles are display - only, while others allow the user to interact with the tile to valueTile (“power”,“”) {//label will be the current value of the power Tiles combine multiple attributes into a single tile presented with a rich UI.