SmartTiles Dashboard v5.7: Release March 2, 2016

Definitely a great idea, Matt.

Guess @625alex and I we’ll add it to the growing features wishlist. We are keeping track of these and hope to start on independent discussion board for future SmartTiles features when we are sure we have the time to manage it.

I can think of some relatively simple ways to “hack” this into SmartTiles, but refining the feature and figuring out the side effects is a challenge. The last thing we’d want is for users dashboards to be in some sort of endless loop flipping between screens.

1 Like

Gotcha. Sorry for the misunderstanding.

Fantastic, thanks! Yep, no doubt there needs to be some proper thought and architecting around this. I can think of a number of ways it could get complicated. Perhaps as a starting point, to keep things simple, there’s a minimum interval between trigger events, and if any other trigger events happen in that interval after a first trigger event, they’re simply blocked/lost. Additionally a “lock” toggle tile may be handy – e.g. “lock me on this view for now, even if UI trigger events happen”.

As the configuration gets more complex, with features like this certainly adding to that, have you guys thought about having a web UI to do the config/setup from a full-scale browser, instead of just on the phone? I started down that path at one point with the Ruby-based dashboard that was floating around for awhile, but didn’t get very far due to time constraints.

1 Like

I’m pretty careful not to make any promises, but can say very confidently that “configuration via web UI” is a key feature (probably the most obvious feature!) of the steadily progressing SmartTiles V6 overhaul. :wink:

3 Likes

If you’re using Androids for your SmartTiles units, you might be interested in this thread…

My specific application for the mechanism was to get the screen on my Androids to turn on when motion happens in the room. However, there are all kinds of things that can be done with the tools involved (mentioned already in this thread)…SmartThings / SharpTools / Tasker / Secure Settings.

1 Like

Thanks for the work.

It would be cool if you added plantlink support to SmartTiles now that plantlink is semi-officially supported I think.

I played around with it last year on my custom copy and it worked. Some scraps from that effort:

input "plants", "capability.sensor", title: "Plants...", multiple: true, required: false
subscribe(plants, "plantStatus", handler, [filterEvents: false])


def getPlantsData(device, type) {

	def deviceData = [:]
	device?.supportedAttributes?.each{
		try {
			deviceData << [("$it" as String): device.currentValue("$it")]
		} catch (e) {}
	}

	[tile: "device", type: type, device: device.id, name: device.displayName, plantStatus: deviceData.plantStatus]
}


} else if (data.type == "plants"){
		return """<div class="plants w1 tile" data-type="$data.type" data-device="$data.device"> <div class="title">$data.name<br/> <span class="text">$data.plantStatus<br/> ${getTileIcons()[data.type][data.plantStatus]}</span></div></div>"""

These changed recently with the new device handler, I don’t have all the status figured out yet.

plants : [Watered: "<i class='wet fa fa-fw fa-smile-o'></i>", 'Needs Water': "<i class='dry fa fa-fw fa-thumbs-o-down'></i>", Dry: "<i class='dry fa fa-fw fa-thumbs-o-down'></i>", Dry: "<i class='dry fa fa-fw fa-frown-o'></i>", Good: "<i class='wet fa fa-fw fa-leaf'></i>", Good: "<i class='wet fa fa-fw fa-leaf'></i>", Wet: "<i class='dry fa fa-fw fa-meh-o'></i>", NoSoil: "<i class='dry fa fa-fw fa-exclamation-circle'></i>", LowBatt: "<i class='dry fa fa-fw fa-exclamation-circle'></i>"],

plants: getTileIcons().water.wet,

plants?.each{data << getPlantsData(it, "plants")}


plants			: ["plantStatus", "plants"],


plants			: plants				?.collect{getEventsOfDevice(it)},
  • custom css needed

4 Likes

Posting just before midnight EST… A few words on the First Anniversary of the launch of the SmartTiles.click website (the same time as the launch of SmartTiles v5.0.0)…

7 Likes

:birthday:

It’s great having you on the team, Terry!

Thank you for taking it beyond V5.

5 Likes

Time to hit that Donate button and send SmartTiles a birthday gift! :slightly_smiling:

3 Likes

I created a Dashboard just for my Lights which worked perfectly however recently all I get is this message

{ “error”:true, “type”:“groovy.lang.MissingPropertyException”, “message”:“An unexpected error occurred.” }

All of other tiles for Sensors and switches continue to work as normal.

Any ideas what may have changed and whether I can fix this please?

Hi Tim… SmartThings Platform doesn’t give us low level detailed diagnostics without requesting them on a case by case basis.

If you could please go into the Preferences page and set Log Level to Debug and then pull up Live Logging in the IDE and send the full output for the SmartTiles instance (including the timestamp) to Support@SmartTiles.click, we can escalate to dev advocates to pull up their internal traces.

1 Like

With all the issues I have with the system’s Mode not switching (Home, Night…), is it possible to have it spelled like the Alarm status? (Armed (Stay)…)
The status Icon is nice, but I have different Night Mode, and the icons are the same…
That’d be great to check at a glance in what mode the system is.

I’m sorry if this question has been already asked, I looked for it, but there are so many pages with all these different SmartTiles versions.

This was actually asked and answered earlier in this thread, way back at post #321 by @625alex. I tweaked it a little to change the color of the tiles as well as changing the icon to text.

.mode.Home{background-color: #006400;}
.icon.Home i::before {content: “Home”; font-family: Mallanna;}
.mode.Away{background-color: #FF0000;}
.icon.Away i::before {content: “Away”; font-family: Mallanna;}
.mode.Night{background-color: #000099;}
.icon.Night i::before {content: “Night”; font-family: Mallanna;}

2 Likes

That’s awesome, thanks for that! and on top of that, it works :slightly_smiling:

2 Likes

@625alex @tgauchat i have suddenly started experiencing refresh issues as of 3-4 days ago where the smarttiles page doesn’t refresh on my wall mounted tablets (Samsung Tab 4’s Stock Firmware) the buttons will work, i.e. will turn off and on lights, but the switch status doesn’t update, hit refresh and nothing, the clock doesnt update. if i quit the Native chrome app instance and reload it will refresh once and that is all.

I checksed to see if the tablets recieved updates, but they havent recieved any recently at all and all tablets stopped working at the same time.

has anyone else experienced this recently?

any ideas how i can troubleshoot as there is nowt in the logs?

Definitely want to fix this and probably start by setting Log options in SmartTiles SmartApp Preferences to trace and capturing Live Logging.

It may be really chatty, but test some specific simple events and watch if results are correct or any clues.

Not sure what we’re looking for yet, but need to make it reproducible.

great i forgot that option to change logging level :slight_smile: ok reproduced the issue on one of my dashboards if i leave it for a moment it stops refreshing. FYI I use tasker to shut off the screen and proximity wake it using motion detector, it always used to be when the screen switched on a refresh occurred. the device itself does not go to sleep its just the screen that gets shut off.

ok so the first three lines appear periodically. when i walk in front of the screen and the screen switches on nothing happens in the live logging window, so i then press the refresh button on the screen and i get all the following lines but the screen itself does not refresh, everything is effectively stuck (clock, icons etc.)

can you see anything from this log excerpt?

180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace rendering tile [tile:device, active:inactive, type:switch, device:7eec68d5-6bd2-4030-9dbd-60e44fdc25c6, name:Conservatory Manual, value:off, level:null, isValue:false]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace rendering tile [tile:device, active:active, type:momentary, device:9452b58e-b4aa-445d-a38f-47be0e94e71a, name:Dinners Ready, value:null, level:null, isValue:false]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace rendering tile [tile:helloHome, phrases:[Away, Good Morning!, Good Night Cats Roaming, Good Night Holiday, Good Night!, I'm Back!], name:Routines, type:hello-home]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace rendering tile [tile:mode, mode:Home, isStandardMode:true, modes:[Away, Home, Manual, Night, Night Holiday, Party], name:Mode, type:mode]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace rendering tile [tile:clock, size:2, style:d, date:March 14, dow:Monday, name:Clock, type:clock]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace tile count: null
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData end
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected links
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected battery
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected power
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected energy
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected water
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected luminosity
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected humidity
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected temperature
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected video streams
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected camera
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected acceleration
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected motion
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected presence
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected contacts
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected momentaries
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Dinners Ready, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Dinners Ready, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Dinners Ready, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory White-Orange, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory White-Orange, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory White-Orange, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory White, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory White, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory White, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Red-White, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory Red-White, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory Red-White, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Play Pool, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Play Pool, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Play Pool, momentary
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Spot 3, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory Spot 3, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory Spot 3, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Spot 1, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory Spot 1, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory Spot 1, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Behind Sofa, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory Behind Sofa, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory Behind Sofa, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Garage, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory Garage, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory Garage, dimmerLight
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected dimmers
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected themeLights
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected lights
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace allDeviceData collected switches
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Lights, switch
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceValue Conservatory Lights, switch
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace isActive Conservatory Lights, switch
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:35 PM: trace getDeviceLevel Conservatory Manual, switch
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:34 PM: debug params: [ts:1457995266712, stateID:1457995266713, _:1457995483282, access_token:XXX-XXX, appId:180b0b5f-74bd-4818-a2be-b311e8174535, param1:ping, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:25 PM: debug params: [ts:1457995266712, stateID:1457995266713, _:1457995483281, access_token:XXX-XXX, appId:180b0b5f-74bd-4818-a2be-b311e8174535, param1:ping, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi]
180b0b5f-74bd-4818-a2be-b311e8174535  10:46:04 PM: debug params: [ts:1457995266712, stateID:1457995266713, _:1457995483280, access_token:XXX-XXX, appId:180b0b5f-74bd-4818-a2be-b311e8174535, param1:ping, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi]

We ping or poll every 20-30 seconds or so (configurable to a larger (less frequent) number on the Preferences page as well). That what is represented by the repeating lines debug params: ... periodically.

That rate should be the maximum you have to wait for a Tile to be updated with new state information (provided SmartThings is posting Events to SmartTiles).

My dashboard is running fine (i.e., near instantaneous updates).


What device and browser are you using? Any special browser plug-ins? Do you see the same results if you observe the same dashboard instance concurrently in another window (i.e., on a PC and/or other mobile, etc.)?

We may have to take the discussion offside for further debugging with @625alex … best I can tell the “hang” is occurring at the client side (i.e., browser), not in the SmartApp side.

Email: Support@SmartTiles.click.

@tgauchat cheers for your help. i have resolved the issue.

it seems that although i said there were no updates there actually was but it wasn’t showing in my update history on any of the tablets. I am running KitKat 4.4.2 which is the stock firmware for the galaxy tab 4 (T230) tablets. i have no browser plugins.the culprit it seems is Chrome 49.0.2623.91 which was released on 10th March and hit my tablets pretty soon after. I uninstalled all chrome updates and went back to 40.0.2214.109 and recreated the apps, all now is ok.

1 Like

I just created a child dashboard for all my door and window sensors, and am not a big fan of the generic red tile for these types. I realize making a green tile for closed would make it easily confused for a light tile, but is there any bigger difference that could be made other than the direction that the little arrows are pointed? I’d like to be able to glance at the screen and instantly recognize which doors or windows are open.

Try a different theme, for example Sballoz. This one changes color of the entire tile, so it should stand out more.