I succesfully developed the integration of my company IoT device and certified the product trough the developer console.
The device is mainly a power meter that measures real time power consumption and photovoltaic power production.
I have some qiuestions related to some new development:
I would like to know if it could be possible to create Rules inside a user SmartThings instance using SmartThings API.
I’ve seen ST API documentation but i don’t know how to generate the tokens required to make the api calls.
Moreover I would like to use as trigger not only my device or other ST device’s parameters, but some external data (such as a parameter on my DB or some data obtained by a third party API), is it possible to use such triggers inside a Rule made via ST API?
If I could only use as trigger some data that is already inside my devices properties, could it be possible to add or modifiy the existing capabilities inside my certified device? If so, what are the constraints?
Do you mean creating the Rule for the user instead of him/her creating it directly?
To do something in their name, you cannot use the Schema Connector token.
You would need to create a separate integration called the API_ONLY app to get Access Tokens
However, this has other limitations, like the number of installs and the location-level access. If you want something with greater possibilities, you need to form a partnership with SmartThings.
This wouldn’t be a Rule anymore because this feature has established properties that can be used and an external parameter isn’t one of them
It would be an automation where you receive the external event, and then use the valid access token you got to send commands to the devices.
This is part of the first answer, you need a valid API_ONLY app Access Token to control the devices it has access to (it can be to all the devices in a location or specific ones).
Can you please explain this topic ? As a company we have succesfully certified our product on the ST app and can expose the WWST logo on our product.
Even so we have limitations on the smart apps that we make ? Which are those limitations? This means that eventually we can serve only a limited ammount of customers?
Maybe my last question was not clear, I try to make it clearer.
Our certified product has some capabilities, specifically three power meter capabilities and like 8 energy meter capabilities.
I would like to know if it could be possible to make one or more of the following modifications:
Change the name of one or more of the capabilities we already have
Add some more capabilities (of the same nature of the ones already in the product)
Add new capabilites (that differ from the one already in the product)
The API_ONLY app and a Schema (cloud-to-cloud devices) are different integrations.
The limit applies only to the app you use to create Rules for the user, not to the existing Schema integration.
And ok, this makes more sense now. 1. Change the name of one or more of the capabilities we already have
Do you mean only the label used for the capabilities? This might be possible if you don’t change the labels because you’ll use them for another purpose. For example. Changing the switchLevel capability label to be the fanSpeed value of a device.
2. Add some more capabilities (of the same nature of the ones already in the product) 3. Add new capabilites (that differ from the one already in the product)
Both can be done through the Developer Console.
The #2 would qualify as a certification by similarity.
For #3, the team would need to perform tests for the new capabilities on the physical device. Since you already sent one to the Test labs, would that device be able to support those new capabilities? This is to avoid the need to send a new device
This can be achieved by:
Creating a new profile with the modifications you want
Create a new product using such profile and the WWST Schema
Submit for certification request
Once you submit it, please share the request ID so we can let the team know we’re already in contact with you and to follow up the process.
Also, I remember you were asking about SmartThings Energy, did you ever pursue this or is this still part of your plans?
We are evaluating possible ways to use our product and it’s integration to actuate other devices in certain situations, without the need for the user to manually define a routine on the ST app.
In short, with the API_ONLY smartApp we could enable automations for a limited number of users which is 500, correct? And if we would like to increase this limit in the future it could be possible in some ways right?
For what concerns the ST Energy App , we were asked to send again our product for further testing to approve the powerConsumptionReport capabilities (which for us is just a “software” update since we have a C2C integration, so even if data is measured by our product directly, any capability we have is populated via cloud) . I think this should not be a required step ( I already integrated the powerConsumptionReport in a new device profile in the test environment and sent to ST the screens related to the powerConusmptioReport graphs generated by our integration on a specific web app they sent me). So actually we stopped at this phase for integratin our product into ST Energy. Has something changed in the process eventually?
Thank you again for the detailed explanation,
We will use all the information to discuss further development of our product.
Yes, once you create it, please share the app ID so we can confirm it has the correct limit since we’ve seen some issues in this regard.
And we can share your case with the Business Development team, which would follow up with you.
I’ve been asking the team about your case, and they mentioned it would be useful to get an example of what you’re trying to accomplish, for example:
To show your users which automations they can create using your devices
To consume other devices’ data from the SmartThings platform and from other sources (not only from your integration) to send commands to the user’s devices
The results we are aiming at are the two you mentioned: Not only show but actually enable our users to create a rule in ST by pressing a button in our mobile app. So firts we scan the user ST devices, if we find devices we can control , beside our device, then we create a rule inside the user ST environment.
A practical example: On our mobile app we could have a ST integration page. On this page the user logs in , enabling the oauth2 comunication, then we scan for his devices, if we find say a colored led lamp we enable a switch in our ST integration page. The switch could show the text: “Red light when power conusmption is high”. If the user activate the switch it could activate the following rule on ST: If our device measured power is > 1000 W → Change the led color to red.
If the user deactivate the switch then the rule is removed.
We are currently investigating the feasibility of this solution so we will not proceed with any development soon.
The case you mention could be achieved by sharing “templates” of routines for the users. This way, you don’t have to create an API_ACCESS app.
In the SmartThings app, you can create a “sample” routine and then use the “share” option to generate QR codes or links you can share with users.
When they go to this access, the routine’s base configuration will be there; they only have to select the corresponding devices.