[RELEASE] Tile Builder - Build Beautiful Dashboards (Grid 2.0 Released)

Done. Thank you.

FYI It's that way because I don't encourage disabling the logging.

I'll add some description to it in the next release.

1 Like

Recently discovered this app as the previous tool I used is less than ideal for my use.

  • And wow. it's very nice and well thought out. the Storage driver solves a great problem for me - the growing lists of virtual devices just for tiles etc. A brilliant implementation!

For HD+ users ( @jpage4500 ) I'm still playing with the settings but this cleans up some issues with micro tiles/small sized tiles as well! I've donated and look forward to a growing user base for this app - I'm excited to see his notes about multi-device - multi - attribute announced as a future improvement - I intend to condense a number of my singular tiles into a more comprehensive yet tighter solution!

Thank you @garyjmilne

1 Like

It's been released! See here: [RELEASE] Multi Attribute Monitor (Tile Builder Module)

Yeah, I see that a lot. I'm hoping that some of these will just defer to TB for the display aspects when appropriate vs everyone writing their own HTML driver and having lots of inconsistent looking tiles out there.

1 Like

I raise my hand as an offender. I have 3 'customized' versions of drivers currently just because the tile components don't fit my needs. this will fix that too!
Ty for your work! I'm really excited about cleaning up my layouts and structure!

2 Likes

It's understandable, I was heading down the same path with the code I was developing to display some driver info in HTML before I saw the bigger picture.

3 Likes

I got to really start working with your tool - have had a couple of problems now that when they occur are really hard to get undone.
Comment - when one of the child apps fails - it can't be opened in the mainpage and it's very hard to get the child app to delete.
I created a tile in Attribute tile and somehow got this:


I no longer have the tile - just hoping that the line specific error may give you a glimmer of something.
I'm currently also locked out of a child tile

this occurred as I was using MultiTile, and made change to 'no selection' for the text padding - I THINK. since it is now inaccessible, it's hard to go back and clear it. I suspect my quickest solve is to delete the child, and rebuild the tile. Here was the last functional tile image before it stopped:

Sorry you are having some issues. You can often recover an errant tile. Have a look at Appendix C of the documentation. Not going to work in every instance but if you know the last thing you did that caused it you have a good chance.

In MAM line 1554 is to do with the use of the Title Shadow feature.
In AM it has to do with Thresholds so I'm guessing this is what you were using at the time.
Looks like I need to add a Null check. In that case you can clear the thresholds with the recovery method above and keep the rest of the tile. Probably was to do with the "No Selection".

Line 1203 has to do with the Truncation length of the device names. Maybe "No Selection" there too?

But the good news is your tile looks really cool!!

Thanks. It's not me - its the dev who wrote this amazing tool! I'm hooked - hope you don't mind but I'm promoting it too! I've already recreated the tile (took minutes).

Couple questions - I tried to use '%mode%' in a multi-tile. Couldn't quite get that to work and had to use the variable from Hub Info driver. Is there any way to use HE variables such as %day%, %xyz%?
I promise to read the incredible documentation (I just saw that) today - no doubt I'll learn much more! Regarding imagery, is there any implementation of icons in place of text? EG; Seasons app gives me a season name but also has an image. Can I just point at that image? (I think I answered my own question!) Loving this tool!

It's quite fun, once you read the manual you'll find a huge range of stuff you can do including icons and animations. They are a little tricky but I'm working on a solution for that.

You can use %value%, %count%, %day% and %time%. %value% is the most useful because you can pump that number into something like a battery meter. See docs.

Thanks for the promotion. It was quite glowing despite the errors.

1 Like

Hi, just giving this app a try and it looks great! I'm just trying to build some sample tiles and will do my best to make integration seamless into my dashboard app, HD+. I haven't had enough time to figure out how I'll use it yet but wanted to give some feedback while going through it for the first time (sorry if some of these have already been reported earlier)

  • Is there a way to have a 'toggle all' option to select devices? I see this available when I select "All Devices" but when I select a filter like "Contact Sensors" it's not there.
  • when creating my first Attribute Monitor device the app crashed with this:
java.lang.NullPointerException: Cannot invoke method toFloat() on null object on line 1088 (method mainPage)
    • I wasn't doing anything special AFAIK - just monitoring "temperature" devices; I had just selected several devices in the first step when this crash happened. I also can't go back in and edit/remove this app - just get the same error as above
  • very minor but next I tried creating an attribute tile and selected the "battery" attribute. I checked a bunch of devices and noticed a "null" as the top result (see image). I checked and this device "Security Cameras" doesn't have a battery attribute. I can remove it but wanted to report it just in case it made sense to only show devices that actually had that attribute.. I can't tell but I'm wondering if this device reports the 'Battery' capability but doesn't actually have it.. anyway, it's a very small thing so no biggie
  • I created a second tile and published it to the same storage device as my first tile. I noticed that this second tile didn't display in my dashboard because it's using the file manager and I'm not on my local network. It's well documented in your help page and I was able to get it to display by reducing the number of devices.. but, I wonder if you could put a note about that 1024 size in the app itself like you have for the 4,096 total size limit. Maybe it's not necessary - just something I wasn't thinking of when creating the tile initially..
Current HTML size is: 1119 bytes. Maximum size for dashboard tiles is 4,096 bytes.

Speaking of the 1024 character limit - my dashboard won't display a tile that references the file directly using the IP address when viewing via cloud mode (not on the network). I'm wondering what can be done to fix that (if anything). MakerAPI allows access to Hubitat apps remotely using a cloud token. Is that something that could be done here too? ie: some kind of OAUTH token?

tile2 : [div style='height:100%; width:100%; scrolling:no; overflow:hidden;'][iframe src=http://192.168.0.201/local/TBSD1_Tile_2.html style='height: 100%; width:100%; border: none; scrolling:no; overflow: hidden;'][/iframe][div]
1 Like

Hmm.. I see this now for the 3rd tile I'm creating. Maybe I just missed it earlier.. I guess you can ignore that request at least :slight_smile:

Note: Current tile is less than 1,024 bytes and will be stored within an attribute.
1 Like

Thanks, it was quite a bit of work but I am a devotee of quality.

No, I've requested that as a feature from Hubitat but nothing so far.

Looking at the code one of your devices returned a Null value. I'll add some null checking in the next rev.

This happens when a device claims a capability (it's in the batteries list) but they have not populated the attribute, so you get Null as a warning. If I excluded it from the list people would think the app was broken.

I see you found that warning. The whole space calculation and features enabled\disabled are all to help the user manage their tile size. For some people 1,024 is very important, others don't seem to care at all. Personally I like to keep things within the 1,024 if possible as the refresh is much cleaner and most of the time a filtered list does everything that's needed.

It takes a little while to get over the idea that you need every device on the dashboard. With TB you can limit that to just devices in an interesting state, such as LOW batteries, not ALL batteries.

FYI There is a Tile Recovery option. It's in Appendix C of the docs. It allows you to clear certain parts of the Tile, such as the device list in this case and save the rest.

Yes, that is correct and is an architectural limit. It does work if you have a VPN in place. Another reason to keep things below 1,024 and it all just works from anywhere.

1 Like

Found something - was creating a new Activity Monitor - selected 3 Contact Sensor I wanted to merge to a single tile -


and clicked the Inactivity threshold - my hand slipped and it went to 'No Selection' then crashed.

Logs shows:

I recovered easily.
I believe 'No Selection' has caused me a few problems previously as well in other areas.

1 Like

Nothing good happens with No Selection. I’ll add more null checking around that scenario in the next release.

3 Likes

Great to see collaboration between Community members like this. Awesome job @garyjmilne, @jshimota and @jpage4500.

2 Likes

I was curious if OAuth would be able to work in this case somehow.. maybe it's not designed to work this way or the token doesn't last long enough but isn't the idea that some outside service can send you back to your Hubitat app? Could that somehow be used to create a unique (per Hub) URL that would allow this embedded <iframe> to work? Anyway, probably just wishful thinking :slight_smile:

https://docs2.hubitat.com/en/developer/app/oauth

@garyjmilne I'm having a blast with this! - I've a feature request... (of course he does).

Using Activity monitor - tracking devices that don't get used often ala Device Watchdog - can I add a default value for an empty table such as 'No Data' or better yet 'None'?

*comment * - just a note of my early usage - i've chopped 7 tiles out of my dashboard already and have been able to get 2 apps I've had to customized (fork) just for table/html tile structure problems I have now been able to remove from my HE drivers and gone back to the native source. Total boon!

2 Likes

There is a feature in there already to address the concerns of an empty table and did it work or didn't it. You just need to add the macro %count% into any text field and it will tell you how many devices met your criteria.

That's what I like to hear. It's always nice to get rid of stuff and consolidate.