[RELEASE] Tile Builder - Build Beautiful Dashboards

The main thing to understand with the Thermostat tile is that it is a deception that uses layered controls.

One the bottom layer is the standard thermostat tile.
The CSS manipulates the components of this standard tile.
On the top layer is the Tile Builder Thermostat Tile that has transparency and passes clicks to the standard Thermostat Tile beneath.

The CSS that hides the title for all tiles is the 3rd line....

.tile-title {visibility: hidden, display: none}

You can find a step by step in the documentation here.

Gotcha. It all makes sense now that I understand the layers..

FYI everyone. I reported a bug where incorrect endpoint content is displayed for the third time. If it is affecting you please give it a like or comment.

I had this the other day.
I had a Remote Builder tile displaying a number of different sensors.
It became too big so I decided to split into 2 separate tiles.
When I loaded it into a dashboard window the original tile was shown in both the old and the new tile.
Very weird.
I decided to put the new tile into Tile Builder as opposed to Remote Builder which resolved the issue.

I've seen it equally on Tile Builder and Remote Builder but I don't see any rhyme or reason to it. Hopefully it is fixed soon.

I just released an important update to SmartGrid which allows it to support embedded endpoints, with Tile Builder endpoints being the ones I mainly had in mind.

Hide them when I don't need them.

Playing with Multi Attribute Monitor, I have a bug where the attribute for 13 and 14 are the attribute from 12.
Device 12 is a button and device 13 is a thermostat
I tried to reboot or quit the app, still the same issue

Hey Cedric, thanks for bringing that to my attention. The device limit used to be 12 so I missed something when I expanded it to 15. I think you might be the first person to go past 12.

Anyway, I found the bug and I'll post an update either today of tomorrow. Sorry for the inconvenience.

@cedric I just released MAM 1.3.3 which should take care of that issue.

rather sheepishly - I had 14 MAM devices (temp sensors) myself - didn't even realize what I saw wasn't accurate! thanks big G.

Thanks, it' s working great.
One more question : does Highlight work in Multi Attribute ?
As I cannot see any effect when using it

My guess is you are not applying a rule to the given attribute as shown in the top section. Here is a complete example

You don't need to use the %value% syntax unless you want to add additional formatting or to prepend or append something.

Oh that's exactly it ! Thanks.

@garyjmilne
Before I delete and redo this tile I thought I would ask...
I had to remove and re-add a device that was attached to a tile. Now I have a boo-boo. :wink:
Fixable?



Tile seems happy in the storage device.
image
image

Ignore this if you want.
After doing other things and installing a new beta the tile opens now and I could update it.

I'll respond as it might be useful to others. There are some recovery options build into the parent app.

It allows to select a child tile and send it a message as shown below.

In your case "clearDeviceList" would remove all the devices which should have corrected yours. It would keep everything else but you would have to select the devices again.

Not sure what has happened by I have no "Styles" listed anymore. Even if I go into an existing tile that has styles applied, the "Select Style to Apply" list is empty. I've repaired via HPM and used the "Rebuild Default Styles" in the parent app but my list is still empty. I've also tried to import a style from another tile and it appears to ignore it and does not change. Any thoughts would be greatly appreciated.

I have the same issue on mine. I’ll look into it.

Go to around line 900 in the Tile Builder Parent code and replace the function listStyles with this code. It fixed it for me. I was then able to save\apply and delete styles once again.

//Returns a list of state key names that begin with the word "Style-"
def listStyles() {
    if (isLogTrace) log.trace('listStyles: Entering listStyles')
    def myList = []
    state.each {
        if (it.key.startsWith('Style-AM') || it.key.startsWith('*Style-AM')) {
            myList.add(it.key)
        }
    }
    return myList.sort()
}

All good, thank you, sir.