I don't understand the SmartThings/SmartApps ecosystem -- thoughts and feedback after several weeks

Thank you very much for your post OP. I thought I was crazy as well not “getting it” after a couple of months with the community.

I have found myself using IFTTT for as much as I can because those rules are just so easy to configure, however the 10+ second delay makes it unusable in many scenarios.

If Smartthings comes up with a rule builder similar to IFTTT, it would be a game changer. I have at least a half dozen friends that would buy one tomorrow if it was that easy to configure.

2 Likes

Just wanted to add my agreement with the initial post. I likewise work as a software developer and have the same struggle understanding the ecosystem.

I have it setup and it works but its far from intuitive.

1 Like

I completely agree with @rogersmj
thanks for taking time to write.

After new GUI release , app has become so confusing I using it much less than before. (btw i am expert computer use)

1 Like

Just to chime in:

I was a Building Automation Technician for Johnson Controls for 15 years before moving into management. I programmed incredibly complex sequences for hospitals, high rises, etc.

With that background I still struggle with the technical side of Smarthings. In the early 90’s most large building automation companies switched from line based programming to graphical tools and ladder logic modules. I could create massive programs just adding blocks (or, and, exclusive or, timer, PID, sequencers, etc), connect lines, define parameters, compile, simulate, and off to the races! You could easily add analog or binary data points as holding places or setpoints and have one software routine reference another.

When I got into smartthings I thought that with that background I should be able to learn a home automation product very quickly but it feels like I’m going to have to take line based coding classes if I every am going to want to write any complex piece of software or create my own devices.

Has there been any thought to a graphical (block based) tool that would allow people with no line based programming knowledge but who can understand logic to create this stuff?

Thanks,

3 Likes

We built something out using Blockly when we were first starting out (as far back as Kickstarter days) but we determined that for all but the most simple things, that particular graphical interface didn’t do much to simplify the process. We are still planning on creating a “rule builder” that maybe will get most people 80% of what they need. Then for the rest it will continue to be writing code in the IDE.

Well said. Been in IT for 25 years. Was hoping this was a product I could sell to clients but since it can’t reliably detect presence, it’s pretty worthless. Not sure if my garage may randomly open at any time. Alarm works occasionally. Turning lights on at night based on motion considered a “Kid Convenience”? Any logic here? Couldn’t get Whole House Fan to work. Can’t get Double Tap to work. Horrible documentation. My favorite is the hub telling me to check my device for installation instructions and vice versa. Really on the verge of false advertising as the product pretty much doesn’t do what it says it does. Hoping and influx of Samsung money might help.

On the plus side, the stuff that does work is pretty cool and the tech support is great. Especially considering the products limitations.

@robbosir Not sure what you are having problems with, perhaps you have a defective hub? I have no problems as you have noted, although I am not using the Android presence sensor. I use Life360 for presence sensing the family and I have found that this works fine. The ST presence sensor that came with my kit, also is working like a champ.

The only problem that I have seen so far, is the GUI interface is not well designed, Other than that, given the time that I have been on this board, your experience seems to be contrary to what most of us experience. Have you considered doing a Wireless Signal Test in your home. To see if perhaps your available spectrum is over saturated?

Great discussion!

ST definitely needs a rule builder, there should be no reason to write code for the good 80% of the use cases. In addition to the rules builder, it should be possible to use SmartApps either as Triggers or as Actions in the rules.

For example, I use a couple of lights with Hue bulbs as sort of light towers you see sometimes on factory floors. Blue - laundry is done, Red - water leak detected or a few other danger/damage events, Orange - kiddos on the loose at night, etc. Right now I just copy-n-paste the same code over and over again (which light switch to turn on, which light bulbs to set to what color and what intensity, etc.) and it upsets the software engineer in me (I hope I don’t have to enumerate all the reasons why copy-n-paste is bad). If I could make it an Action, I could just use that action in my rules. I thought briefly about writing a custom virtual device type for Light Tower, but I have better things to do with my time.

Same goes for Triggers, if I wanted a complex condition that’s hard to implement with a rule builder, I’d write a SmartApp ‘foo’ and then in the rule builder say: if foo, then blah-blah. That would still allow quite a bit of flexibility, but will be a lot more user friendly. I hope this makes sense.

2 Likes

I just asked a similar question in another thread. Is there anyway to reference a smartapp in Hello home or another smartapp. Right now everything is so disjointed. Why do I have to do a dim Hue lights at night Hello home phrase when I have a dim Hue lights and change color smartapp. Couldn’t I just have Hello Home just run that Smartapp. That by it’ self would open up alot of flexible and functionality in the system.

^^^This.

Every HA flavor I have tasted in the last 2 decades has had “scenes, action groups, macros” or whatever you want to call them. They were essentially a list of device settings/commands that were saved, and callable from any other part of the program.

They also implemented triggers the same way; all saved. Time based, motion based, etc. This allowed a simple way for any rule to disable it for a given amount of time, or given device state. I know SmartThings tries to accomplish this with modes, but it is far too all-encompassing, having to think about more modes and all the SmartApps that need to be filtered by them, when I should be able to simply command “disable this trigger for the next 15 minutes” or "disable triggers 5,6,7,9, while var/mode/whatever “away” is true. Instead, we now have to disable the entire smart app for that mode, which means we may need to create another, near identical one to continue to do the other things we want to have happen while we’re “away”.

While it is certainly possible to create a rule builder that writes and instantiates a SmartApp in its current state, it would be far more complicated than if we were to have these triggers, and action groups persistent, and available globally. Then it is simply a matter of:

1.) Define trigger (device event or state)
2.) Define conditions (multiple: with AND & OR)
3.) Define action (or select a previously created action group) to perform.

Yes, all of the above could most likely be written with a smart app today, but it forces the creator to foresee every possible device, capability, and conditional, which takes a lot of work and ends up being a complete mess (interface wise), so what we end up with, and have now, are a ton of one trick ponies that are a bit of a mess to manage. And then of course, if new devices are added (with new capabilities), that app would need to be revisited.

SmartThings already knows about all of our devices and their capabilities, even when we add new ones, and EVEN when we mod the device-types to do more with them. So, it should be possible to simply provide us with a hierarchical list of choices that are apropos to each of the above definitions at any given moment… ala:

1.) Trigger>deviceListORtimeDateEventPicker>availableDeviceEvents/States

2.) Condtions>deviceListORtimeDateEventPicker>availableDeviceEvents/States (multiple: AND & OR)

3.) Action>predefinedOrNew>deviceList>setableStates/Properties (multiple)

Just my 2¢

4 Likes

Yes! Thank you for so eloquently stating that. You said it much better than I could have.

I know they’re working on a rule builder, but it would be great to have some more insight from the SmartThings team on their plans for the whole app architecture, and if we’ll indeed be able to use “apps” purely as triggers or conditions. This would allow for much more reusability.

2 Likes

Totally agree. I’ve also brought this up some time ago. ST “Modes” are not even close to “scenes”. They’re just global state variables. The “Hello Home” actions are more or less equivalent to the scenes, but even then only superficially. Why ST decided to deviate from the traditional “HA Scene” concept is beyond me.

Good stuff @scottinpollock!

I was also recently pondering the modes and what I don’t like about them. Here are my thoughts:

  • mode is nothing but a glorified global condition with NO MEANING attached to it. Other than whatever you happen to think of it, that is. Which is probably incoherent and inconsistent (just ask your family members what they think each mode means). Let’s take Night, for example. Is it simply a dark time of the day, when the lights need to turn on on motion? Or is it when everybody goes to sleep? What if daddy’s away and coming home after everybody else is already asleep? Is it night or not yet? Say the wife goes to bed and pushes the button on her Up24, which executes Good Night! Then husband comes home at two in the morning and the home executes “I’m back!” automatically, which puts the home into Home mode, which is when I don’t turn the lights on motion, but announce my arrival through the Sonos, and so on and so forth. Confusion ensue, kids awake, wife unhappy, no more money for toys.
  • The “Set for specific mode(s)” does not do what it’s intended to do. I’ve seen quite a few apps fail miserably when you use that setting. Let’s take the Virtual Thermostat, for example. Say I want to keep my kids’ room warm, but only at night, when they are asleep. I set the temp, choose the “Night” mode and … find that the heater is running all day long the following day. Because “specific mode” is a bolt-on and the app is not aware of it, so if the heater was on when my home switched off of the Night mode, the app stops controlling the heater and leaves it on for the rest of the day. Oops!

I understand what ST guys were thinking when implementing “Hello, Home” and Mode features. On the surface it sounds like a simplification and it does work when you have a very simple setup. It removes the barrier to entry to people who either lack algorithmic thinking entirely or who don’t exercise it very often.

But let’s be honest, you can’t avoid dealing with complexity entirely. At some point, you need to start thinking in steps, states, conditions, branches, etc. And that’s when simplification starts getting in the way. BUT! Algorithmic thinking is the new literacy. You can pretty much assume that the people using your product will possess one. And that’s, of course, why ST guys thought of SmartApps. Now the ST guys just need to bridge the two worlds and make it easier for “regular” folks to use the labor we nerds produce.

4 Likes

He-he… When my wife tells me “Honey, go get some milk”, she does not bother to tell me were should I go, how much should I buy and what kind of milk, not to mention all the steps I need to take, like putting my shoes on, getting the car keys, opening garage door, etc. She relies (perhaps foolishly) on my intelligence to figure out all the steps I’d need to take to accomplish the final goal with minimal effort and maximum efficiency. This is what everybody ultimately expects form home automation. The problem is that the intelligence is not there yet. :smile:

3 Likes

I think the intelligence could be there. There are many ways to make it easy to program in a Visual language. The problem is that this is coming from coders like ourselves who are so used to thinking algorithmic patterns. We do not see the straight line for the curve of the circle. Always working around the point. Interfaces are direct and pretty, but not intuitive. It is a problem that all software has, and as the ability to deal with GUI and more sophisticated interfaces continues to grow, so does the human ability to use that interface. 10 years ago, many people were looking at the ipod and going, why do we need that? It is not easy to use, and confusing. After changes, and we as a people adapting to the new look and feel of the interface/ We adapted. The same will happen in the HA space, I think that ST is on the forefront of that change. Will they be the one to make the perfect interface and language for the IOT today? Not sure, but for now. I have thrown my hat into the ring with the hope that they will do their very best to be the leader that I see that they are now.

1 Like

Intelligence manifests itself as an ability to make decisions given infinitely insufficient data, which means evaluating a huge matrix of possible outcomes and choosing one with best risk vs reward ratio within reasonably short time. It’s a massively parallel task and does not render itself well to traditional “linear” programming logic. An intelligent system also requires a positive/negative feedback, so it can learn from mistakes that it will inevitably make. It’s fascinating stuff. If I live to the day when my home has an intelligence of a 3-year old, I’ll consider myself lucky. :slight_smile:

2 Likes

Possibly, but after a couple of months with SmartThings, most of what it does is send notifications, and commands to my server (which executes my scenes, and applies some additional conditional logic). I have just found that much simpler than creating that behavior in SmartThings, which is a near fatal flaw IMHO.

Don’t get me wrong… I think SmartThings is a very clever approach, but I think that in its current state, it has missed the mark by requiring too many to have to get their fingers between the fan blades to obtain the behavior they want or need.

2 Likes

Amazing metaphor. (c;

@geko, AI is actually something that I am good at (SMILE). The problem, in my opinion, is that we look at it as making decisions on insubstantial data. As you noted in your response. Yet we do this every day as we work and play. The truth is that we do not have all the data points when we make that decision. Our decisions are from learned points that we can extrapolate on what will occur. Given that, the real problem is writing code that will make a decision and from learned past decisions determine the best decision and course of action with limited information. When the AI makes a bad decision, it will note that and learn from that. (of course this is just generalization) but I think you understand ? One of our problems now, is that we tend to be risk averse. We make decisions and then do not try or do not do something because it simply might be unhealthy. Or we may loose a lot of money. With the AI that I use for Market trades, I execute trades based on simple conditions. The same style needs to be applied to AI in the real world.

We do it all the time, even as we type. How many times do you make a decision and think better of it? I make it sound simple, I know it is not. But, I have been doing Neural programing for years. We make the intended result too complicated because we want to catch all possible actions when we code AI. Truth is that we simple do not act that way.

1 Like

@scottinpollock agreed, as I have noted many times the SmartThings GUI is … challenging. I wish it was not, but it is. I think the rule builder will go a long way to resolving that issue. And if they can do it, and make it work. It will make them a leader in the market going forward. After all Samsung had to see something here that make sense to purchase ST now?