I’ve had SmartThings for a few weeks now (my devices consist of the hub, a motion sensor, a couple garage sensors, and a half dozen switches so far). I get the basics – I can get the devices connected, I can flip them on and off from my phone, I have lights triggering from the motion sensor, etc.
What I’m really struggling with – what I thought I would get comfortable with but I’m not – is the way the SmartApps framework (generally) works and the philosophy behind how the whole ecosystem is organized. After several weeks, I still find myself often confused when trying to setup simple things. And I hate it when people say stuff like this, but I’ll say it anyway and risk sounding like a pompous ass: I’m a software engineer/architect and I’ve worked on some reasonably complicated stuff, so it’s unusual for me to not grasp a system like this and just kind of “get” it. Thus I feel like I’m missing something important about the vision or the philosophy of how SmartThings is built/organized/operated.
So I’m going to dive in and if anyone feels up to it, tell me what you think.
== (This wound up being a lot longer than I expected. But hopefully some good discussion will come.) ==
1. At a very basic level, I don’t intuitively understand the organization of the iOS app and the way SmartApps are managed/triggered in it. It seems there’s 4 or 5 ways to add a SmartApp, and sometimes I wind up with two apps doing the same thing – for example, when I added garage sensors, after the device was successfully added it asked if I wanted to be notified when they open. Sure, set that up. Later, I wanted to edit that setting, and I went into the Notify Me When app (the ONLY app showing in Convenience at the time, which I had already used to setup another alert). I setup the alerts there the way I wanted them. But now I’m getting two sets of alerts. After digging around for awhile, I noticed in the associated SmartApps for “Garage (small)” – the name of one of my garage door sensors – there’s a SmartApp called…“Garage (small)”. Huh? Opening that up reveals notification settings. Oh but wait! There’s a ANOTHER app attached called Door Open/Close, which does the same thing. As it turns out, that’s what’s sending me the alerts. I don’t even know how these all got attached to this one device.
That is just one example of the many cases I’ve found the app’s organization of events and devices to be confusing. I feel lost in the SmartThings app and I only have a handful of devices and apps setup so far. This does not bode well.
2. Specificity of SmartApps is not scalable. I find the specificity necessary for SmartApps very odd, and this has a number of side effects (not the least of which is the confusing duplication of a lot of functionality, as I mentioned above).
Let’s say you want to turn on a light when someone taps a certain (not physically connected) switch, or when motion is detected after a certain time of day. In today’s SmartThings ecosystem, I would have to find and install two different apps, which itself can be a challenge – is the app categorized where I think it should be (e.g. sometimes I look for stuff in Security but find it in Convenience)? Is the app named/described in a way that I can easily search for it (answer: not always)? And why in the hell can’t I access apps to add that align with a device’s capabilities from that device tile? Why do I have to back out to Setup, then start navigating through those menus?
But setting aside the discovery of apps – because that’s not the main problem with this point – why do I have to find/build separate apps at all to do things so basic?
This whole system would be so much easier to manage if there was a more flexible rule system like IFTTT. SmartThings should already understand what things are triggers (events/conditions: switch presses, devices turning on and off, motion detected, device state, new presence, certain time of day, etc) and should present a whole (filterable) menu of those things for me to choose from as the “IF” (and allow me to combine them with AND – IF motion1 triggered AND time after 8pm). SmartThings also understands the actions it can take – it has devices attached to it which declare their capabilities. Select from devices and set the actions to take (or state to set) as the THEN. Let me set my triggers and actions, using any events and actions that have been declared to SmartThings from my devices, and then let me categorize those rule sets myself into the right dashboard.
This sort of singular, flexible rule builder would probably accommodate 90% of the needs that people have. And (at least the way I’m envisioning the interface in my head) it would be vastly simpler than the convoluted smorgasboard of apps floating throughout the interface, and would be much more user friendly for the average Joe. Namely, it wouldn’t rely on a developer already having thought of the combination of events/actions that I want to take – a frustrating problem I’ve already run into several times (for example: there’s 2 or 3 published ways to get alerted if a door is left open for a certain number of minutes, but no app to alert me if it’s left open past a certain time of day. Or at least none that I could find [see point #3]. I had to write one.)
That is both the power and the curse of SmartThings – with a (somewhat) open ecosystem to build your own apps, we, being techies, run there far too quickly and build very purpose-specific apps. With building custom apps for rather rudimentary needs being the default behavior, rather than the special case, we’re going to grind this platform into dust and make it impossible for all but the most tech-savvy to navigate. As I’ve noted, the proliferation of similar-but-different apps doing nearly the same thing is confusing and hard to manage, yet with the vast number of apps available it’s still hard to find one to do what you want because they’re all so specific.
3. My Apps / Community Apps are a mess and hard to find. – Which brings me to my next point: the SmartApps database itself. The SmartApps exposed in the phone app by default (the globally published, accepted apps) are relatively thin compared to what’s out there from the community. But how to search them – there’s no search function that I can find? So you browse the whole damn list, but only after starting your own app from the IDE? I sat there and read through the apps for an hour or so one time, and saw about a dozen near-duplicates. That doesn’t help create a “clean” pipeline for apps that could be potentially published for the whole community. People are duplicating each other’s work because they can’t easily find each other’s apps, and because (returning to my second point) the very nature of the whole system seems to result in the creation of apps that are far too specific to one use case.
I think that about does it, as relates to the SmartApps. So while I take issue with the SmartApps ecosystem, I have to say that I fully support the mission of SmartThings and am passionate about making home automation more accessible to the mainstream. I admire the steps you’re taking to make that happen and I hope the platform continues to evolve.