De-limit smartApps/"SmartApps Advanced mode"

I initially started this post as a reply in the “Thoughts on Modes” topic in this forum. Since after 4 days it hasn’t gotten a single direct response, I thought to post it here in its own topic.

@tlange wrote:

First of all, I want to assure you that we here at support are not offering highly technical solutions or telling people to code when they email us or chat in at We’re here to help regardless of your technical abilities, and we’d never tell someone that they need to code something if they hadn’t already expressed an advanced technical ability.

I’m maybe immodest but I think this is at least partly a response to me. First off thanks for addressing this. I never meant to suggest that “Just code something” was official policy of Physical Graph. I was instead trying to point out that, at least at this stage of ST’s development, it’s a prevalent attitude.

A natural one, when of course most of the development team are coders. Many of the early adopters are too. Maybe I’m unique here in that I’m very technical, but not at all a coder. Sure, I’ve puttered with Applescript, but when I took a PHP course it went in one ear and out the other, and while I have UNIX command line skills, I wouldn’t dare try to write a shell script for production without another person with actual programming skills looking at it.

No, I was talking about an attitude here in these forums and also as reported to me second hand as being the attitude of the devs. (Damn if I recall where but I’m sure it was here in some topic, not even one I was initially involved in.)

That said, at the moment in ST’s development, to get what seems to be relatively straightforward inputs turned into outputs, coding IS required. Follow this link to see what I mean. I asked a question and was immediately pointed down the Groovy rabbit hole.

I had already started writing down my thoughts about this, and now that we’re into it here, I’m going ahead and publishing it with the warning that I haven’t really polished it and I’m sure there’s more to expand on, but here it is.

And I’m going to add one more thought to this, more of a challenge really: I challenge all the actual employees of ST who use ST at home (which I hope, at least in the case of coders and UI people is 100%) to go home and remove every bit of custom code from their setups, at least temporarily. I really think it’s important to eat your own dog food, as the saying goes. Only by living without custom code will you understand the experience you’re offering to those who can’t or won’t code for their needs.

Here’s the discussion my article link on Reddit’s home automation subreddit has generated.

@Different Computers-

Tyler from SmartThings support here. I just wanted to let you know that we hear you, and we’re working on a solution. The complexity is always creating a system that is easy enough for anybody to use, but flexible enough to fit everyone’s individual desires. We think the Dashboard is a good start, which covers ~80% of what people want to do. The other 20% is harder to solve, but we’re on it. For the time being, the best option for those situations is often to create a custom SmartApp, or seek the community’s help doing so here. We don’t intend for that to be the case in the long term.

You’ll probably be happy to hear our support team can’t code worth a lick. Personally speaking, I have 50+ devices at my house, and only one custom SmartApp that is installed on my account. I “coded” that app myself by taking code from “Has Barkley Been Fed” and changed it to look for acceleration in place of contact for my hacked together pet food scooper that reminds me when I’ve neglected to feed the cat. (Catfooding, if you will.) To do that, I deleted capability.contactSensor and replaced with capability.accelerationSensor. That pretty accurately portrays the extent of my coding skills.

Luckily we have developers who are far brighter than I am, but I assure you their setups are similar. I’d have no problem publicly shaming them here if that weren’t the case. We do have access to some beta features that aren’t publicly available, but that’s all in the name of testing for general release.

That’s all good to hear. I’ll try to be patient.

I purposely run no custom SmartApps at home. I made it a point to. Actually a lot of us don’t.

Also we have a rule builder SmartApp currently being tested out. So you select from a bunch of inputs that do some actions.

And as Tyler said, no one on the support team knows a line of code.

Andrew, glad to hear it! All of it.

I just got stuck again tonight, as the electricians installed new cans in the kitchen attached to a GE Z-wave dimmer. I would love to be able to have my motion sensor trigger the lights at different dim levels depending on the Mode, and I know I can set dimmers when the mode changes… but damn if I can figure out how to make the motion sensor set a light to a particular level!

@differentcomputers Ya thats a perfect example. There are tons of minute use cases that can’t be covered with broader SmartApps. We’re starting to call them “legacy SmartApps”

The SmartApp eco system however is still a major factor. Almost everything is a SmartApp down to the individual dashboard modules. That opens up the option for external developers to basically go crazy (within reason). We’re all pretty excited because the documentation is being rewritten and its going to be thorough. Building an eco system is always harder in the early days.

I modified the lights follow me app to have a set level field if you’re interested. I run two copies of the app…one for day time and one for night time.

I know you’re making a point that custom code is necessary for a lot of trivial tasks…but you’re welcome to it.