Old API, new API, Groovy, REST API. Where to start?


I’ve been a Smartthings user for 3 years so far and I started to fool around with the old ST API since a couple of months ago.
I’m an Arduino enthusiast and I successfully integrated a NodeMCU with a Motion sensor device with Smartthings by using the Classic app, Old API and the ST_Anything package. So far I followed the tutorials and step-by-step and got things working as they supposed to do. No customization on my end.

The problem starts when I want to do my own stuff, for instance I would like to make my own Smart apps or Automations. I have intermediate knowledge in vb.net (use for MCAD macros and stuff) and some knowledge in Python and C, but this is obviously not enough to get me started with developing in Smartthings.
So I’m willing to learn this but then I find the Old API vs new API situation. A few months ago the new API seemed to be too new so I decided to go for the Classic app and I started learning groovy with the ST guides but then I realized that I need more ground knowledge since I don’t know javascript, java or whatever Groovy is coming from. So I decided to learn Java or javascript (I don’t know yet which one should I pick).
But then I’m at a Crossroad again. Does it worth it to go through that learning process when the old API could get phased out at the time I become more functional with groovy?

My guts tells me that I should learn the new API but I have to start from scratch since I have very little clue what a webhook, Oauth or a web/cloud service is.

I believe I’ll get different opinions and that’s great. Basically I’m asking for advice and every single comment will be very much appreciated. If you can suggest a website, book, online course or what ever piece of information that can get me started, I’ll thank you for that.

Sorry for the long introduction but I wanted to give you a little bit of more background on my request for advice.

Why don’t you start with Webcore? It’s essentially a scripting language for smartthings, very powerful, saves you a lot of time, and you might find that it’s all you need for now. :sunglasses:

Many people who used to write their own custom smartapps now write “pistons” ( that’s what Webcore calls their rules) in Webcore instead.


Thanks JDRoberts, I’m checking that as we speak. Thanks for your comment.

1 Like

If you want to build something that will be usable for the long term, I’d go with the new stuff.


What kind of things do you want to do?

Do you want to use SmartThings as a way to explore new languages and frameworks? Do you want to use it deepen your experience with Python and C? Is there a specific automation you’re looking to create?

Having an understanding of the IDE and Groovy helps but if you’re starting out, I would strongly steer you towards the developer workspace (new API).

If you’re curious about how others are using Python and ST, check this out:

If you’re looking for quick project to get acquainted with the new API, check out this:


Hi Brad,
I would like to integrate my own devices based on Arduino. Like a DIY pet feeder for instance. I’m not even sure if people have integrated arduino devices in the new API yet. I believe it’s possible given the fact that you can post Webhooks from Arduino.

My ultimate goal is to learn how to program Automation and/or Devices in Smartthings. If I need to learn Node.JS so be it. If I can do it in Python, even better.

JDRoberts, mentioned WebCORE which I find very interesting when you want to reduce the programming Hassle, which is great but I’m willing to skip shortcuts and learn to work with ST API the proper way. (I’ll try WebCORE anyways since I want to make some Automation that I can’t with the ST App).

Thanks for your comments and references.


1 Like

You can do this with an endpoint app, but you will need something in the middle to handle your install, config, and other life cycle events. If you have a raspberry pi laying around it would be perfect for this kind of thing and you could host multiple arduino based things with one endpoint app.

Check out the instructions for how to connect a lifx bulb. The instructions are for cloud connected devices but in this case your raspberry pi would act as “The Cloud” for you.