SmartTiles Dashboard v5.6.1: New features (SHM), Bug Fixes, Diagnostics - Dec 11, 2015


(Carlos Santiago) #153

My second dashboard no longer works. All I get the same java error reported here and this in the IDE logs:
03faa5da-367c-4882-8c9d-99e8da846781 8:22:18 AM: error java.lang.ClassCastException

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #154

Hi Carlos... Please try increasing the Log Level preference in the SmartTiles SmartApp config pages to "trace" and then re-observe IDE Live Logging.

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #155

OK... It's catch up time now after the weekend...

@625alex and myself are looking into the following issues and wonder if there are any other "critical" ones...

Are there any major problems currently with SmartTiles?

  1. We now that new installations (and/or upon the addition / creation of a new "child Dashboard") frequently results in a Java ClassCastException or similar error upon first attempt to Browse the URL (view the Dashboard). This seems to almost always clear up just by going back into SmartApp Config / Preferences and pressing DONE to re-save everything. Sometimes, changing the logging level and/or adding / removing a "Thing" or other Tile also fixes this. We're not considering this to be a critical problem, but are trying to make it non-fatal with an informational message.

  2. Startup of a dashboard uses a few (about 3?) "runIn()" or similar basic scheduling methods which have currently been disabled as a hot-fix. We are going to test enabling these soon.

  3. Several folks have reported being unable to Uninstall / Remove a child dashboard and/or the entire installed "SmartTiles (Connect)" SmartApp. We are considering this to be a serious critical issue, but are currently unable to reproduce. We think it is related to #2 because SmartThing Platform does an implied unschedule upon remove, and if scheduler is hanging that would cause the remove to fail as well. So if the root cause of #2 has been fixed on the SmartThings Platform, then hopefully it's taken care of #3 here as well.

As #3 is most critical, can you please email me: if you are unable to uninstall / remove a child dashboard; and are willing to help debug this including involving SmartThings Support? Thank-you!!!

(But let's figure out other current problems while we're here. We want to push a "bug-fix / minor" release by the end of the week, and yet, we're not sure what problems are ours, and what problems are still outside of our control...).

Update: Recorded on Things That Are Smart Wiki:

(Carlos Santiago) #156

Just an update... Changing the logging to debug fixed the dashboard that was getting the java errors.

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #157

Could you change it back to logging level "Error" only and see if it continues to work?

We are actually wondering whether any configuration value has to be changed at all, or if it is only necessary to just press "DONE" to make SmartThings refresh the SmartApp.

And still figuring out if this only occurs for "new" dashboards, or if it can spontaneously occur for existing and fully functional dashboards.

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #158

ALERT: A bit of Anonymous Tracking has been Added to SmartTiles v5.6.1

A bug fix / maintenance release of SmartTiles (v5.6.1) will be deployed imminently. A very small part of this upgrade is the addition of some anonymous statistical tracking written to a secure external database.

Our "Privacy Policy" remains unchanged (and, well, as of this moment, sorry, it is still unpublished in any formal way): But in summary: @625alex and I do not intentionally capture or share any data about your Account, Location, Devices, Access Tokens, SmartApp instance id, etc.. We do capture your IP address and "Region Code" (US or UK) upon web based installation, and your email address (if you voluntarily supplied it on our installation web page). We also have non-granular tracking enabled via WordPress plugins on the web page. This information is for internal statistical analysis only and will never be shared or sold. This information (source IP address, pages visited, etc.) is no different than the access logs of nearly every typical website.

SmartTiles v5.6.1 has added a tiny bit of tracking code to our dashboard SmartApp solely to allow us to determine the number of active Locations and Dashboards and the total count of full refresh calls. This data will help us measure growth in actual live and active dashboards, as opposed to those which are installed and not used, or installed and then removed (or installed and have already been removed).

Each tracking record is keyed using a one-way-hashed (MD5) value, calculated in the SmartApp before storage, so that it is anonymous and non-traceable back to individual users or Locations. We do not use any browser "cookies".

NB: even if we did not hash the Location ID; the Location ID is a meaningless UUID number on its own. Of course, clever data mining is possible -- in theory, Location ID could be used to correlate tracking activity between multiple different SmartApps, if the other SmartApps used the same tracking mechanism and we shared the data with those other SmartApp developers ... which we don't. Even in this latter situation, we would not know, nor attempt to know, any user-identifiable data related to this set of SmartApps

We lean towards maximum disclosure. We believe that "anonymous and non-correlated tracking" is common and typical, so I am sharing the tracking source code here (minus the details of the secure Firebase database that is used for storage). We may modify this code slightly, but the anonymous characteristics will always be maintained.

def hash = new BigInteger(1,"MD5").digest("${}".getBytes())).toString(16).padLeft(32,"0")
def timestamp = [".sv": "timestamp"]
if( state?.refreshCount == NULL ) { state.refreshCount = 0 }
state.refreshCount = state.refreshCount + 1

def String instanceName = appInstance()
def map = [
	uri: appSettings.apiPath + "/${hash}.json", 
	body: ["time" : timestamp, server: getApiServerUrl(), ("${appInstance()}") : ["instanceID" : instanceName, "instanceTime" : timestamp, "refreshCount" : state?.refreshCount, tileCount: state.tileCount]], 
	headers : ["x-http-method-override" : "PATCH", auth : appSettings.apiKey, print : "silent"]
httpPostJson(map) {}

Your questions regarding the above tracking policy and source code are welcome.

You can respond in this Topic or private email to:

We reserve the right to change our tracking policy to less anonymous mechanisms, but we will provide at least 14 days notice and an "in-app" notification that would possibly allow users to opt out of tracking, or at least be informed enough to choose to discontinue their use of SmartTiles. At this time, we have no intention of more detailed tracking, and, in fact, personally identifiable tracking via the SmartTiles V5 design is impossible or very very difficult, so we don't even have time or energy to consider it.

Inaccuracies or corrections will be updated in-place and/or noted in a soon to be published "Privacy Policy".

SmartTiles (& "other" External Services) Security
(Stephen) #159

:ok_hand: Sounds reasonable to me.

(Karl Laun) #160

I've been trying out Smart Tiles for several weeks and think it's really a great application. I had very little difficulty getting it set up, thanks in part to help found in this forum.

Recently, I have run into an issue where the weather tile seems to be "stuck" on a previous date. The information never updates. Can anyone provide some guidance for resolving this issue?

(The fish is still dead.) #161

(Alex) #162

I want to reiterate the above announcement.

All we want to know if the number of concurrently used dashboards. This statistic is needed to determine back end server requirements for the next version of the product.

All we are collecting a hash key and time stamp, which does not identify a user in any way.

We respect your privacy. This information is for internal statistical analysis only and will never be shared or sold.

(The fish is still dead.) #163

Way to go, Alex and Terry. This is above and beyond for disclosure of this sort of thing, and it's greatly appreciated.

(Karl Laun) #164

Thanks so much for the prompt reply. I'll discontinue troubleshooting and patiently wait for the return of weather updates.

(Karl Laun) #165

Wow, that was fast! Seems to be functional again. Thanks for all your hard work.

(Carlos Santiago) #166

Yes if I change it back it continues to work,

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #167

SmartTiles v5.6.1: Bugfix / maintenance upgrade being deployed - Saturday 2016-01-30.

The push of this fixes and other maintenance release is currently completed.

  • US "Child" Dashboards completed Saturday morning.
  • UK "Child" Dashboards completed Saturday evening.
  • US "Legacy" [0] Dashboards completed Monday morning.

If you have SmartTiles v5.6.x installed via the website, then you will get the upgrade automatically. No action is be required on your part.

If you do not yet have SmartTiles installed;please visit:

This message and the website will be updated shortly with release notes.

Most changes are internal, including some minor anonymous tracking as discussed in post:

For lastest information, watch this Topic and/or follow us on Twitter: @SmartTiles

(Eric) #168

Many many thanks for the font awesome bump. She looks as glorious as ever!

(Lee Florack) #169

Running 5.6.1 and each time I select 'Event History', I get the following error on my iPad: {"error":true,"type":"groovy.lang.MissingMethodException","message":"An unexpected error occurred."}

On my PC - I.E. 11, I get a 'HTTP 500 error.

Thanks for any help.

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #170

Thanks... A little bug :bug: seems to have slipped in. :scream:
I've reproduced and will update y'all shortly.

(Lee Florack) #171

Excellent! Thanks a lot for your efforts.

( co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #172


Just deployed a bug-fix (:bug: meet :hammer:!!!)... Let me know if it's working now, please...? Thanks!