Custom capability ownership/visibility issue

Hi

My developer role (registered ID) is associated with a brand.

I have developed a product with a number of custom capabilities.

These work, sort of, on a number of devices/app for several users
after the project was “deployed to testing” and published using the CLI.

The custom capabilities are visible, using the CLI, for the admin role of the brand.

However, they cannot be added to a new project, initialized by the admin-role,
using the device profile web interface of the Developer workspace.

The motivation for setting up a new project was/is

  • We need to modify our device profile, i.e both add and delete capabilities
  • It seems like it is not possible to, easily?, modify an existing (deployed/published) device profile
  • It would be preferable from a commercial/legal perspective that the product project was owned the brand admin
    and not an individual developer

So…

Do I/we need to

  1. Re-create all custom capabilities using the CLI under the brand admin role/profile

    or
  2. Can the custom capabilities somehow be accessed and added in the Components & Capabilities tab of the
    Device Profile page.

Cheers
/Anders Holm

After publishing a device profile, it cannot be modified, you need to create a new one. Only those in “Development” status are configurable.
It might be different in the case of Direct-Connected integrations as you can have only one profile. I’ll check with the team if it’s possible to use a different one.

The concept of Organizations is a work in progress in the SmartThings platform. Up to now:

  • The only special permission of the admin is the brands management.
  • Only the project owner (who created it) can modify it or publish it (for SmartThings certification). For others, it is read-only. The ownership cannot be transferred.
  • You need to send a request to build@smartthings.com (from the admin account) to remove organization members and modify the admin account.

Note: Please, do not try to change your email directly in the Developer Workspace (in “my page”), this will cause internal issues and all the account’s projects will become unavailable

Due to the above, it is suggested that companies create a generic account for all the team members involved. All developers should have access to that account and create projects with it.

Note: If a developer leaves the organization, you can change the credentials of the shared account to protect your information.

This would also solve the issue with the custom capabilities creation. However, there might be a workaround:

Please, try this in a testing project:

  1. First, in the Developer Workspace, create the profile with the available capabilities.
  2. Open the device profile to edit it, go to UI display and select “Customize through device configuration file”.
  3. Download the file generated automatically and modify it in an editor adding the capabilities missing.
  4. Upload the new file, select “Overwrite” and save the profile.
  5. In the CLI, get the profile’s configuration (smartthings deviceprofiles profileId), copy it to a file, and add the missing custom capabilities.
  6. Use that file to modify the profile (smartthings deviceprofiles:update profileId -i file.json), as a result, the CLI will show you the new config of the profile in an existing project.

Note: Remember that each time you modify something from the Developer Workspace, it will reset the list of capabilities, the presentation won’t be affected if you use the “customize…” option and the same file of #3.

Following up, what are you referring to here? Did you use the command to publish only the device profile?

Using

smartthings device-profiles:publish

command to publish a device / device profile for group testing.

I’m slightly confused about SmartThings terminology in general and specifically the term publish. I currently think there are, at least, 2 meanings of publish/published.

An clarification would be nice.

Cheers

There are differences depending on where we use this term:

  1. When a project, in this case, a direct-connected integration is published after WWST certification.
    Once you make a publish request, the certification team will contact you to start the process.
  2. When a device profile is published so people outside our organization/workspace can use it to install their devices. I’ve seen more this is a problem when you’re using integrations like ST Schema, did users receive an error installing the testing devices and that’s why you published the profile?
    Once you execute the command you shared above, the status of the profile changes to “Published”, which you can check using the command smartthings device-profiles profileId.

Were you referring to those therms is there something else that is still not clear?

Thanks,

Your clarification about publish is appreciated.

The syntax of the json-files for capabilities, presentations and translations could use an explainer document.

Cheers