SmartThings Publication of Apps to Run Locally

Does this mean that once certified, every update @bravenel pushes will have to go back through the certification process?

Depends. If it’s a couple line bug fix the process would be really short.

New feature though would need more testing.

To be frank, there isn’t any criteria, yet. Since code on the hub can’t be compiled on demand. There is a parity issue. If an app is submitted a new firmware would have to be spun off just for that app.

We are however, looking for ways to make apps and such mirror each other on the hub and in the cloud. That’s when this conversation can change.

Ah… right. Thanks for the frank answer, and, indeed, that makes the process cumbersome.

I can imagine, though, that a ā€œsmall few, but high value SmartAppsā€, could, once they reach a certain definable level of stability (ahem… at least as stable as similar profile SmartThings features?), then, I would like to think, that including them in the Hub V2 firmware image shouldn’t be off the table of possibilities … no?

Or just too tough to juggle?

Off the table completely, no. My priority at the moment though is getting through the submission queue. We can tackle that next.

awww drat. I must have missed this in previous discussions. I didn’t realize the apps had to be included in firmware.

This absurd world of where apps and core firmware have to be packaged together is still beyond me. Even if apps can’t be compiled on the hub, it doesn’t seem unreasonable that they could be compiled in the cloud, then the binary downloaded to the hub into a separate container (address space in the EEPROM) from the core firmware.

While things may have gotten off track, I do appreciate this conversation being public. I’m definitely not a developer, more of a spectator who can barely code ā€œHello World,ā€ but I enjoy seeing that aspect of it. It’s part of what makes this forum so great!

Thanks for all you guys do (ST and devs)! I learn all kinds of stuff just seeing discussions like this.


Do you guys do informal reviews of code invite developers to put apps and devices through the submission process? The reason I ask is that I am not a developer and haven’t been formerly trained as such.

There would be no point where I would be happy enough with my code where I would feel it was of sufficient quality to submit it.

I just wanted to add my 2 cents. I’ve been on this forum for a few months, read a LOT both old and new and have a very (I think) robust system already setup with all the wonderful help around here, both ST and the developers in the forums have contributed significantly to my understanding of what a smart home can and should be.

I work for a large corporation, I feel pretty positive I understand the pressures Tim and all the other ST folks are under, from all sides, corporate and consumer.

The fact that Bruce, Tim, Jody, Terry, etc, etc are having these open conversations, even with some of the, ahem…angst…pointed at the ā€œotherā€ side, is a tribute to the potential of this platform.

In my organization, we have so many silo’s and each is only allowed to do one single thing and never step out of line, the difficulties in getting a perfect (heck, near perfect? slightly good?) product to the end user is basically impossible. We aren’t allowed an open forum like this to communicate ideas, problems, thoughts, and disagreements.

I’ve gone from Insteon to Wink to ST, and I feel like staying right where I am, simply because of the interactions I see daily on these forums.

I don’t intend to sound defensive or maybe a bit selfish, but I don’t want anyone to loose perspective on what all of you are achieving. We all have our issues with this platform, but I’ve never seen this level of cooperation and general comradery between both sides of the fence with any of the HA stuff I’ve played with. I really want to see it succeed!

To be honest, coming from my background, going into a platform owned by Samsung, did not give me the warm and fuzzy’s. All of you have turned my view around.

And yes I would love RM to be local over anything else, just to stay on topic. :sweat_smile:

I’m somewhat ā€œformallyā€ trained, but it gives me the heebie-jeebies to have someone ā€œreviewā€ my code. I think back in my school days it mostly mattered that it worked; with just a quick glance that just a few decent conventions were followed (comments and such).

SmartThings has published (and is expanding?) the SmartApp and Device Type Handler guidelines for publication, and they are not too onerous.

But, most importantly, you have an entire Community of fellow Developers here that are more than welcome to collaborate to help make sure your ideas and/or actual work can advance through the publication process. It’s usually a mutual learning experience, as I far as I have noticed.

I get the point of code that just works, mine usually does :slight_smile: but it’s just that I am very conscious of using expensive queries etc that could be better optimised. This point I know I’m a bit ignorant to at times

Extra eyes are usually the trick. I’m presuming that SmartThings will appreciate (and be able to review more quickly…) code that has already passed a ā€œpeer reviewā€ or other collaborative iterations.

PM or post a new Topic for any SmartApp / Device Type that you think could use some tightening up or whatever, especially if it’s something that you’d like to share more widely and/or submit for publication.

Well that would pretty much be everything I’ve written and posted, but in fairness the most important for me would be the device types I have released, as they are the blocker for locally executed rules if Rule Machine is approved for local execution

PM me your code. I’ll look at it for you :).

I have concerns about this. Today @bravenel updates his code several times a week with bug fixes and it’s extremely easy to do via github integration for me. Will these updates be pushed down automatically once it is published? What happens to all of our rules that were programmed and installed when we side loaded the app ourselves via the IDE? Do we have to uninstall our version and install the published version? Currently there is no way to back up the rules and restore them, which @bravenel has stated is a current challenge as I don’t believe there is a technical method to do so. Is this being thought out as part of the publication process? Certifying and publishing sounds reallly promising, but what problem are we trying to solve here?

Perhaps we need a migration tool ;).

I understand that ST is ā€œlooking for waysā€ to mirror code locally. I’m just gob smacked that this wasn’t a baseline requirement in the design of the v2 hub.

Since my primary focus has been primarily based on getting things to run reliably I was chasing my tail for awhile. I overlooked local vs cloud execution as I assumed most things were running locally. Over time I started to figure out things were bouncing to the cloud and back but now I need to figure out what is cloud and what is local.

Where in the IDE can we see what devices and smart apps run local and which are cloud?

For example I know RM is cloud (for now) but what about my genius wall dimmer? Then expand that to @bravenel dimmer with reset which I use extensively. The reason I ask is that once RM goes local will I still be cloud constrained due to any given device?

Devices running local:

https://graph.api.smartthings.com/localDevice/list

SmartApps running local:

https://graph.api.smartthings.com/localInstalledSmartApp/list