Best Way to Learn Programming for the SmartThings Legacy Platform (2017) [DEPRECATED]

Welcome!

You can do either, but to be honest, you probably don’t need to do either one. SmartThings provides a very limited set of programming options, it’s not even a full groovy implementation. And you can’t upload your own libraries. So you can learn pretty much everything you would need to just from the official developer docs. :sunglasses: Just click on the “developer documentation” link at the top right of the screen on the first page of this forum. ( go to the top of this page, and click on “community” and that should take you to the first page of the form. Then click on “developer documentation” at the top right.)

And if you’re primarily interested in the practical side, you may not need even that. Webcore is a very powerful rules engine created by the community and essentially acts as a scripting language for SmartThings. I would suggest you start out learning how to use that. People have done some pretty amazing stuff with it and there are lots of community members will be glad to help you. They even have their own forum. And it can do much more than the official features. By using webcore, you will learn a lot about what SmartThings can do and you will be able to create very complex rule sets, including web hooks to outside servers if that’s what you’re looking for.

If you want to write your own device type handlers, see the following thread (this is a clickable link)

And if you want to find code examples for both smart apps and device type handlers, try the quick browse list in the community – created wiki common

http://thingsthataresmart.wiki/index.php?title=How_to_Quick_Browse_the_Community-Created_SmartApps_Forum_Section

Oh, and you probably already know this next bit, but just in case you want the intro FAQ on custom code, here it is:

Anyway, welcome again. :sunglasses: As far as programming in general, I would recommend starting with Java because once you learn that, groovy will seem very easy. But if you master either java or groovy and you come to SmartThings, it will still be a little confusing because of all the limitations that SmartThings imposes. It’s not like buying a server where you can upload your own libraries. SmartThings is primarily a cloud-based system, and all custom code runs in the cloud under very strict constraints. So learning webcore will put you right in the heart of what you can do with SmartThings, rather than having to relearn a whole paradigm the way you do if you start from Java/groovy.

3 Likes