CLI: How to Install and Use

The IDE is part of the old pre-2022 SmartThings architecture. It does not display accurate information for devices which are using Edge Drivers, which are part of the new architecture.

You can get some equivalent information by using the CLI (command level interface), a developer tool which is part of the new architecture. This information includes device IDs and event logs.

Using it is quite different than using the IDE. The IDE was just a webpage with information about your account. The CLI is a program that you have to download to a computer and then run. (Those like myself who just use a tablet are currently out of luck. :disappointed_relieved:)

@Mariano_Colmenarejo , a community developer, has written up instructions for how to download and use the CLI on a windows pc.

Edge Driver or Device Handeler for a TUYA (Zemismart) Zigbee plug with energy mesurment capabilities - #18 by Mariano_Colmenarejo

Hopefully ST will provide an official feature which is easier to use in the future when the transition to the new architecture is complete, but no promises. :thinking:

A few more links on the transition:

FAQ: I have no idea what Edge is. Is that a new developer tool? (2022)
.

FAQ: Why does the IDE list “placeholder” for my device? Can I change that?
.
FAQ: How do I access Smartapps, Devices, etc. from web (the old IDE information)

And here Mariano has a very detailed post on setting up the environment on a pc to write your own custom Edge Drivers for those interested in that aspect:

Setting Up Edge Development Environment - #9 by Mariano_Colmenarejo

Tagging @TAustin @ygerlovin @Automated_House @orangebucket in case they have any more to add.

6 Likes

I believe @nayelyz has instructions posted for installing the CLI on any computer

I’ve also taken to calling the current/old IDE the “Groovy IDE” specifically to distinguish that it should only be used for legacy Groovy purposes.

1 Like

She did, but since she wrote that post the link to the IDE has changed out so the one in her post takes you to the wrong place and can be confusing, particularly for newfolk. :thinking:

1 Like

Is there any where beyond the legacy IDE where you can add/remove location modes? Does CLI give you this?

I don’t think it’s in the CLI, but I don’t know the answer to your question. @jkp might.

Thanks, @JDRoberts. I just edited that post.

About the location modes, @homeagain
The CLI doesn’t have those endpoints but the API has some:

  1. GET modes:
    https://api.smartthings.com/v1/locations/locationID/modes
    Try the POST and DELETE versions of this endpoint to add/remove one
  2. GET current mode:
    https://api.smartthings.com/v1/locations/locationID/modes/current
  3. PUT to modify the current mode:
    https://api.smartthings.com/v1/locations/locationID/modes/current
    Body:
{
    "modeId": "mode-id"
}

Got this info from this post:

Does that allow you to create new custom modes like you can in the IDE?

For example, at our house we have the following modes:

Home
Away
Night
Sleeping
Guest
Party
Test

The custom modes were added through the IDE:

These options allow you to create/remove modes.

  1. Create (POST):
    https://api.smartthings.com/v1/locations/locationID/modes
    Body:
{
    "label": "test",
    "name": "test"
}
  1. Remove (DELETE):
    https://api.smartthings.com/v1/locations/locationID/modes/custom-mode-id
1 Like

@nayelyz

Have a curious permission problem/question with Modes.

In order to ‘set’ the mode you need “x:location:*” permission or get a “status code: 403, reason phrase: Forbidden”

However, the SmartThings Developer Workspace doesn’t allow SmartApps to have that permission.

BUT


Grabbing a PAT allows that permission and doing a HTTP PUT set command works fine. Any idea why this exists? and can the developer workspace smartapp be updated?

image

1 Like

Those scopes can be modified using the API, here is an example:

In the meantime, I’ll check with the team more details about this.

2 Likes