[RELEASE] Tile Master - Display multiple devices that can be Controlled from the tile!

Hi, I’ve been playing around with TileMaster to display some air quality info on a single tile. I wanted to color the text based upon AirQuality, there is more than 2 available options though, would it be possible to add more than 2 conditions for colouring?

Also, i it possible to reduce the vertical space somehow? I’ve tried the vertical alignment options, but that doesn’t seem to make a difference. The tile to the left is Cobra’s supertile and the one to the right with the green text is Tile Master.

Thanks for all the work on this and your other apps!

1 Like

Sorry, the tile is what it is. Choice is good, use the one that best suites your needs.

Dan,
In these "things to check" instructions, it says-

  • Be sure to go into the Device and visually CHECK to make sure the Attribute actually contains the data you want to display on the tile

There nothing on the device page that reads "Attribute"

It may seem elementary to the experienced, but in all of the Hubitat documentation there is no explanation (for dummies) about the relationship between Attributes, State Variables, and Current State. (I assume they are somehow related and connected.)

1 Like

Relatively new to the community, but figuring things out pretty well. Trying to make a tile for my garage door opener that contains more info than the standard tile, while retaining control capability. I've had good success for the most part, have created the tile the way I want, with the info and colors I set out for. I can also control the door both up and down using local control. But when I try to use cloud based control, I am only able to open the door. Once the door is open, the close command is not working.

Interestingly, I can take the Close Maker URL and manually type it into the browser, and it works perfectly. But when I try to execute that command from within the Child App, I get no response. If I hover my mouse over the icon in this state, I do not get the correct URL showing. Instead, it shows something of the form "[HUB LAN ID]/apps/api/15/dasboard/null". Obviously that is not going to do what I need.

I am searching high and low trying to figure out why the app would have created the link perfectly correctly for the open command, but not for the close command. Cannot find anything. Can anybody help point me in the right direction?

Thanks,
Jerry

Quick update... I changed the app to specify the URLs using Bitly, and now it works. Seems strange, wondering if the close URL is bumping up against a text string length limit? The close URL is only one character longer than the open lURL, so would have to be right at the very edge. The local URLs are shorter and both work, so maybe?

@furom you could try Formatted Date and Time on Dashboard Tiles works great and very flexible

2 Likes

Hey Bryan, thought you might appreciate knowing about this edge case....

If you have a string variable on a tile, and the variable contains a comma (the value not the name), weird stuff happens with the formatting of the title. I'm solving for it by (duh) NOT using commas in the string variables. Probably dumb for me to use reserved characters to begin with. Figured you'd wanna know fwiw.

As long as I'm at it, I'm attaching my main dashboard below so folks can see what one can do with Tile Master. I recognize that most folks aren't big fans of Hubitat's dashboard, but with TM you can do some pretty good stuff! L O V E T H I S A P P ....

Bryan, you can see in the red oval (bottom center) where the formatting went a little haywire.

P.S. I was updating all my hubs when I took the above snapshot. That explains why there are so many announcements saying that hubs are "down". It's really not that bad! :slight_smile:

3 Likes

Hi Bryan,

Great app, thanks! I'm just getting into the groove consolidating info into more compact tiles with this tool. One question I've encountered that I can't for the life of me figure out:

Is it possible to extract and display the hub's current mode (e.g. Day, Evening, Night...)?

Follow-up question: I'd like to assign a series of icons to my Thermostat's thermostatOperatingState property. From what I can tell this enum has 5 values: heating, heat pending, idle, cool pending, and cooling. However, when I select this attribute and then select the option to use icons in place of displaying the value, it only gives me an option for two icons. Is this a limitation of TM or did I mess up somehow?

New version on GitHub...
2.4.9 - 12/02/20 - Added current mode wildcard

Yes, there are only two icon options per device. This won't change, sorry.

1 Like

I'm speachless at your response time... WOW! Thanks for the mode wildcard... it works well. Too bad about the icon limitation... looks like I'll have to get creative. If I think of something I'll be sure to post the solution.

1 Like

OK I cobbled together a solution that gets me 1 extra icon. Read on if you care to see how a novice got the job done... I've hidden the solution so it won't bore everyone to death.

Summary

TM2 allows 3 icons for numeric-valued properties, so I took a copy of @bravenel 's code that converts a contact sensor to a motion sensor and modified it to parse the thermostatOperatingState enum from a thermostat and assign a numeric value, which I then store in a virtual temperature sensor. Here's how it operates:

  1. create a virtual temperature sensor as an integer storage device
  2. subscribe to the thermostatOperatingState of a thermostat device and parse the enum into bins:
    a) "cooling" and "pending cool" are assigned a value of 0
    b) "idle", "fan only", and "vent economizer" are assigned a value of 2
    c) "heating" and "pending heat" are assigned a value of 4
  3. When setting up my tile in TM2, I select the virtual temperature sensor and not the thermostat device. This lets me flip the switch to get the 3rd icon, since the only available property (temperature) is numeric.
  4. I set a "low" threshold of 1 and a "high" threshold of 3, and then assign icons for cooling, fan/idle, and heating.
  5. Profit!

Code is here. I make no guarantees it'll be interesting or useful to anyone but me... however, if you're looking for a way to get Tile Master to select between 3 icons based on an enum-typed device property, this is one way to go.

Here's the tile I created. It shows hub mode, thermostat mode (heating or cooling), current thermostat activity (3 values: "heating," "idle," and "cooling"), and the state of an Ecolink contact sensor I've converted into a power monitoring device.
combo_tile

The other two icons for the activity column:
heating cooling

Cheers!

3 Likes

forgive me but I'm clueless. I tried doing some cursory searches but got nothing to show me how to do this.

So loaded up Tile Master app parent+child+drvr.

GOAL: I want to do exactly what @JasonJoel achieved. Not sure what he had as his sensor but I have the Xiaomi Temperature Humidity working well but want this same tile he created:
Screenshot 2019-09-21 at 8.54.59 AM

Could I ask this noobie a howto simple step by step guide? I feel like an fool since I code as a living. So weird I just can't get a grip on this. In the meantime, I'll keep RTFM but if someone could point me to get me started doing this exact thing would be awesome and could bring you mucho karma :wink:

I will pay it forward by posting a howto once I get my tiles to not look like someone dropped a pizza on the floor :slight_smile:

Hi @bptworld !

I´ve developed a rudimentary "file driver" ...

It has some limitations, of course, but I think it may help you with reading and writing files.

Take a look. Maybe it is useful for you.

Marco

Think I found a bug.

I'm trying to display the level attribute of a Virtual Dimmer. In the dashboard, the level on the tile does not update. The switch (on/off) attribute does behave normally. When the dimmer is on and I click on the Child App it throws this:

Error: No signature of method: java.math.BigDecimal.toLowerCase() is applicable for argument types: () values: []

Logs show this - [error] groovy.lang.MissingMethodException: No signature of method: java.math.BigDecimal.toLowerCase() is applicable for argument types: () values: [] on line 2172 (tileHandler)

If I turn the dimmer off, the child app loads normally.

@jaredhouck

Check your setting - 'Is device value Text or Numbers'. You most likely have it set wrong. I added more error catching to warn about this.


New version...
2.5.0 - 12/06/20 - Added more error catching

That was it! I think what threw me is that I didn't get that setting until I picked - Use Custom Colors on Device Value - which I'm not doing.

Thank you!!

1 Like

Need some guidance. I'm trying to reduce the distance between lines. Note in my picture below the Guest Bath Fan tile on the right -> the gap between "off" (first line) and "0min m 58%" (second line). I've adjusted the justifications on both lines and font sizes all over the place. I can't figure it out.

Fan tiles

I tried putting the small "m" up in the top left corner on the first line (because I really like how the Master Bath Fan tile looks = single line) , but I still had the huge space between the lines.

Appreciate any help!

So i'm trying to do a forecast tile. First reiteration of such tile came out great but then i got greedy and wanted to use more lines.
Well if you look at the first picture you will see the information and its formatting. No problem there unless i'm missing something? Problem is in the second picture

Now for some reason the text gets jumbled that the start is somewhere at the bottom????

How can i solve this? tried deleting and creating another tile from scratch with the same results?

Pretty sure it's the comma causing havoc. Adjusted the code to replace any comma found in the value with a period. See if it helps.

2.5.1 - 12/20/20 - Adjustments to device value

1 Like