Some capabilities do not appear in the SmartThings App

Not all capabilities appear in the SmartThings App.

List of capabilities:

stateRefreshResponse

{
		"externalDeviceId": "Sa1-test",
		"deviceCookie": {},
		"states": [{
			"component": "main",
			"capability": "st.temperatureMeasurement",
			"attribute": "temperature",
			"value": -25.92,
			"unit": "C"
		}, {
			"component": "main",
			"capability": "st.relativeHumidityMeasurement",
			"attribute": "humidity",
			"value": 17,
			"unit": "%"
		}, {
			"component": "main",
			"capability": "st.powerSource",
			"attribute": "powerSource",
			"value": "dc"
		}, {
			"component": "main",
			"capability": "st.healthCheck",
			"attribute": "healthStatus",
			"value": "online"
		}, {
			"component": "main",
			"capability": "st.powerConsumptionReport",
			"attribute": "powerConsumption",
			"value": {
				"start": "2020-01-30T00:59:00.000Z",
				"end": "2020-01-31T00:59:00.000Z",
				"power": 45404
			}
		}, {
			"component": "main",
			"capability": "st.tvocMeasurement",
			"attribute": "tvocLevel",
			"value": 8900,
			"unit": "ppm"
		}, {
			"component": "main",
			"capability": "st.equivalentCarbonDioxideMeasurement",
			"attribute": "equivalentCarbonDioxideMeasurement",
			"value": 1365,
			"unit": "ppm"
		}, {
			"component": "main",
			"capability": "st.airQualitySensor",
			"attribute": "airQuality",
			"value": 1,
			"unit": "CAQI"
		}, {
			"component": "main",
			"capability": "st.fineDustSensor",
			"attribute": "fineDustLevel",
			"value": 16,
			"unit": "μg/m^3"
		}, {
			"component": "main",
			"capability": "st.filterState",
			"attribute": "filterLifeRemaining",
			"value": 100
		}]
	}]

Capabilities that are not shown in the SmartThings App are:

  • healthCheck
  • powerConsumptionReport
  • filterState

The SmartThings App doesn’t even show an empty space. The ones that work show the header grayed out if no value has been sent.

All other capabilities are displayed correctly and no errors.

Hi!

Capabilities appear based on their device presentation, which is the wrapper of all the capabilities presentations.
Those capabilities don’t have a presentation and can be easily verified with this CLI command:

smartthings capabilities:presentation healthCheck

I’ll try to get more info about them from the team. For the healthCheck capability is expected because the status offline/online can be identified as follows:

  • Offline: The app will show a "!! symbol, “offline” text in the dashboard view instead of the state defined to display there, and the device tile will be greyed out. Also, the user won’t be able to send any command to it.
  • Online: The device tile will appear colored with the corresponding state in the dashboard. The tiles in the dashboard view will be enabled for the user (unless your device presentation says otherwise)

I got the following error message.

Error: Request failed with status code 403: {"requestId":"6881E205-E657-4F
A9-A792-XXXXXXXXX","error":{"code":"4040000","message":"Capability 
Presentation is not found for id : healthCheck, version : 
1","details":[]}}

I tried adding this to the deviceConfigST_ab787be-xxxxx.json.

detailView

 {
      "component": "main",
      "capability": "healthCheck",
      "version": 1,
      "values": [],
      "patch": []
    }

automation

      {
        "component": "main",
        "capability": "healthCheck",
        "version": 1,
        "values": [],
        "patch": [],
        "exclusion": []
      }

How should the capabilities be added to the device presentation?

They cannot be added to the device presentation because they don’t own a capability presentation as I mentioned to you before, even if you include them in the device-config, the device presentation will not get anything because it doesn’t exist.
The capability presentation of a stock capability can only be defined by the engineering team of ST.

If you’re looking to allow users routines based on the health of the device, that isn’t currently possible, there’s already a feature request for that.

About the others, I’m checking with the team about why they don’t have a presentation.