Unified device categories (and some bugs)

Hi, I’m really interested on building some custom devices using the developer workspace, but there does not seem to be complete information about how icons/colored icons/dynamic icons are applied, having inconsistencies in each ST app (as well as some bugs described below), they are applied based on the Device categories on the ST Discovery Schema (as shown on the categories list) and the DeviceHandlerType.

All of this is nice but there are even more devices types present on the Custom Device Profile on the DevWorkspace which you can use, nice, but there more device icons/categories present on the “Add device tab” AND more device icons/categories on the in-app support page. None of them documented (They are maybe reserved and not open to devs?)

[TLDR] So from what I could gather from playing a little with the devWorkspace:

  • There are categories listed on the discovery interaction, and some of them don’t seem to have a icon (Ex: cooktop, but when you enter the support page, there is a cooktop icon).

  • Some icons are not supported by all ST apps, the car icon does not appear on my S21 Android ST app, but it appears on the beta my.smartthings.com page.

  • There are more categories not listed like the elevator one but it is accesible through the devWorkspace that’s ok.

  • There are even more unused (or inaccesible) icons on the device discovery page and the device support page.

  • Some device capabilities like the st.firmwareUpdate are not documented (Here is a github repo with the almost complete list).

  • Some device categories like the “Screen|Vision Sensor|Roof Light|SmartSpeaker|AirDresser” are not available or not documented (I can see how the AirDresser one is something new or reserved to Samsung but still for the others).

Now some bugs I encountered:

  • Some icons like the car one crash the Samsung Android 11 quick device view.

  • Some devices like the BlueRay player have a capability (and a icon, you can see it in the in-app support page), but when selected on the devWorkstation they appear with the “Other devices” icon.

  • There are inconsistencies on some icons like the camera one on the ST apps on Samsung TVs and Android apps.

  • The ST app on TVs crashes on a Q60R if not using WIFI.

  • Some devices like the Air Purifier have a moving icon on the detailed view of the device, but on the dashboard and Android 11 QuickPanel it isn’t in use

  • This one is important, there is one device definition on the ST devWorkstation that literally breaks the app, not only the dashboard, the quickpanel and other apps integration like the clock one, I couldn’t find which device was causing it because the app kept crashing, so I removed the devices from the deploy fase and deleted all ST app data

So, I know that is a lot and I don’t know if I should post the bugs on another post, so the question is is there a unified device type / capability list? Icons are an easy way of recognizing a device and there are lots of normal and moving icons on ST, it would be nice to use them.

Some of the bugs I encountered are maybe because region (?) Anyways thanks for reading and sorry for my not so good English.

Hi, there!

First things first, thanks for the feedback!

I’ll split the issues into parts:

First, I’d like to know what kind of devices would you like to integrate (Cloud-connected, Hub-connected, etc.), so please, give more details about that.

Device categories and icons available

The Developer Documentation is being constantly updated and I’ll make sure your comments are taken into consideration, for now, we can take reference from the Schema Connector list.
You can use the OCF configuration directly, here’s a list of the device types along with this value:
Editing DH - Where is the icons - #2 by orangebucket

They should be included on the device metadata:

//For device profiles:
{
    "id": "e4509e32-d91f-4...",
    "name": "capsinDashboardThree",
    "components": [
        {
            "label": "main",
            "id": "main",
            "capabilities": [
                {
                    "id": "switch",
                    "version": 1
                }
            ],
            "categories": []
        }
    ],
    "metadata": {
        "vid": "ST_35928f4a-cf19-4...",
        "deviceType": "Blind",
        "mnmn": "xxx",
        "ocfDeviceType": "oic.d.blind",
        "deviceTypeId": "Blind",
        ...
    },
    "status": "DEVELOPMENT",
    "preferences": []
}
Specific icons inconsistencies
  • I see that for the cooktop and car icons, it appears the “other” icon instead of the correct one, so I’ll document this issue for our engineering team.
  • I’ll also report the air purifier icon as it behaves as you said.
  • Some icon names in the ST app catalog (Add device section) are called differently in the docs list, eg. “energy monitoring” > “energy-meter”
  • Icons change based on the capability’s presentation used in the Dashboard view. It must have active/inactive alternatives configured, eg.:
{
    "dashboard": {
        "states": [
            {
                "label": "{{switch.value}}",
                "alternatives": [
                    {
                        "key": "on",
                        "value": "{{i18n.attributes.switch.i18n.value.on.label}}",
                        "type": "active"
                    },
                    {
                        "key": "off",
                        "value": "{{i18n.attributes.switch.i18n.value.off.label}}",
                        "type": "inactive"
                    }
                ]
            }
        ]
    }
    ...
}
Capabilities

You can get a list of all the standard capabilities from the API.
Once you have the capability ID, you can query its definition and presentation, eg.

//definition
https://api.smartthings.com/v1/capabilities/colorControl/1

//presentation
https://api.smartthings.com/v1/capabilities/colorControl/1/presentation

There, you’ll see their status and know if you can use them.

Other issues

For issues with the ST app (non-development related), you should contact Customer Support.

What do you mean by device definition? Please, if possible, provide screen captures or in case you’re only working with device profiles share the IDs.

Note: If you are constantly changing the same device’s presentation, icon, etc., you might experience configuration caching. To force the refresh, you need to delete the ST app cache, to do so, go to your mobile device settings > apps > list apps > find the ST app > Storage > clear cache.

Hi, thanks for the detailed response!

Ultimately I wanted to add my MagicMirror2 project onto ST via HA (This is were my icon questions began, I wanted to use the Screen one |1|) (So a personal integration, not one for an organization), but seeing all the capabilities made me want to integrate more things (like |2|), for now I was using modified glitch.com examples provided on the documentation for testing before actually writing anything on my HA instance, so Cloud-Connected.

(I don’t have a hub yet as I been using ST only via cloud with 30+ devices, so things like my Sonos system that need the local integration are currently excluded).
-----------------------------------------------------------------------------------------------

About Categories

I didn’t know that you could change it directly, that’s nice, I remember editing DHTs and adding the ocf for the icon.

About Icons

I’m going to add the active/inactive alternatives. Thanks

About Capabilities

Sorry for this, I did not realize that you could use the api to grab the capabilities.

About Issues

About the TVs it seems that using Ethernet also breaks turning it on via ST, but reading a bit through the forums seems that this is normal behavior.

I was testing using a deviceHandlerType created on the Workspace and not a c2c-x-x one, I had around 8 diferent devices only with st.switch capabilities just to test how it would show on the ST app. I deleted the project and started a new one without thinking. I don’t remember exactly which devices I used. If an issue like this appears again I’m going to make sure to copy the Ids and configurations.

I already did to refresh some devices.
Thanks again for the long and well formatted answer!
-----------------------------------------------------------------------------------------------
Some other minor questions:

  • That OCF list that you linked there Editing DH icons […] is the one that correspond to ST right? So all the ones listed by the OCF are usable?

  • There is no way to circumvent ST region locking right? It would be nice to use the Nest integration here, because the devices work, but the original WWST integration is region locked (as well as the nice ST Labs)

Image |1|

image

Image |2|

image

Any time, @Fabrizz! :smiley:

About Categories

Yes, you can do it from the SmartThings CLI. Just be careful not to edit the device profile at the same time in the Dev Workspace.

About Icons

Sure, just remember that “adding them” only applies to the custom capabilities as the standard capabilities cannot be edited.

About Capabilities

No worries, if you have any questions about a particular capability (standard or your own), you can post them here.

About Issues

Oh, well, I’ve seen some OCF devices enter into a sleep mode so, SmartThings doesn’t receive the online status (Health Check) from them, but that is manufacturer-related.

I see…and you didn’t receive any interaction results in your Schema Connector logs?
I’ve done something similar without issues.

The list of the available icons is a work in progress and it’s still under our engineering team’s review, so you should expect some inconsistencies.

Sadly, no; but you could contact Nest’s customer support asking them to include your region.
Same for SmartThings Labs, there’s a contact option at the bottom.

I believe the options for display and “Smart speaker” are not available yet.