Image Capture in new app

I wrote a small device handler that works perfectly in the Classic app to take pictures of my doorbell.

I realize from a few posts that this only works in the classic app.

Is this going to change? Will the new app ever support this functionality?

Also, the automations allow you to “Attach photo” to notifications, how does this work? I would like to use the camera to do precisely that, however it does not seem to work.

What do I need to do to make notifications work in the new Smartthings app.

It might be worth noting that Samsung Smartthings cam works in the new app. I realize it is their own product but no way to replicate that with the IDE?

Thanks!

Short answer, unfortunately no, not at the moment.

1 Like

I see, thank you. At least I can stop looking.

Is this something that will come? Or just won’t be supported, since there is no mention of image capture in the new capabilities reference API.

Also, I am connecting all my devices as cloud devices (no hub). The Smartthings IDE is not something that will be deprecated is it? Since the new documentation does not really mention the IDE at all, should I be using it?

I am tagging @jody.albritton, who might can answer your questions better.

1 Like

ST was supposed to release new video streaming components back in Feb to help with the migration from the old Classic video streaming tiles and photo tiles to the new app.

1 Like

Ok, thanks. Good to know. So it will come at some point. Thanks. And the ST IDE is not being deprecated is it?

It is, however, listed as a capability via the REST API and it does show up on the device details page on the new app with a button to do a capture (which currently seems to spin indefinitely when pressed). Both of those could be considered as positive signs.

Can you give some guidance where you’ve found it regarding the REST API?

Sure. I grabbed myself a Personal Access Token via account.smartthings.com/tokens (I used one with ‘customcapabilities’ scope, I don’t know what scopes are actually required) and then, replacing TOKEN with the actual UUID, I did:

curl --header "Authorization: Bearer TOKEN" https://api.smartthings.com/v1/capabilities

That spews out JSON listing all the capabilities, giving ID, version and status. Then, using the ID (imageCapture) and version (1):

curl --header "Authorization: Bearer TOKEN" https://api.smartthings.com/v1/capabilities/imageCapture/1

That gives the specifics as JSON. Formatted they look like:

{
  "id": "imageCapture",
  "version": 1,
  "status": "live",
  "name": "Image Capture",
  "attributes": {
    "image": {
      "schema": {
        "type": "object",
        "properties": {
          "value": {
            "title": "URL",
            "type": "string",
            "pattern": "^(https?):\\/\\/((?:[a-zA-Z0-9.-]|%[0-9A-F]{2}){3,})(?::(\\d+))?((?:\\/(?:[a-z0-9-._~!$&'()*+,;=:@]|%[0-9A-F]{2})*)*)(?:\\?((?:[a-zA-Z0-9-._~!$&'()*+,;=:\\/?@]|%[0-9A-F]{2})*))?(?:#((?:[a-zA-Z0-9-._~!$&'()*+,;=:\\/?@]|%[0-9A-F]{2})*))?$"
          }
        },
        "additionalProperties": false,
        "required": [
          "value"
        ]
      },
      "setter": "take",
      "enumCommands": []
    },
    "captureTime": {
      "schema": {
        "type": "object",
        "properties": {
          "value": {
            "title": "Iso8601Date",
            "type": "string",
            "pattern": "^(?:[1-9]\\d{3}-?(?:(?:0[1-9]|1[0-2])-?(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-?(?:29|30)|(?:0[13578]|1[02])-?31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-?02-?29)T(?:[01]\\d|2[0-3]):?[0-5]\\d:?[0-5]\\d(?:\\.\\d{3})?(?:Z|[+-][01]\\d(?::?[0-5]\\d)?)$"
          }
        },
        "additionalProperties": false,
        "required": [
          "value"
        ]
      },
      "enumCommands": []
    }
  },
  "commands": {
    "take": {
      "arguments": [
        {
          "name": "correlationId",
          "optional": true,
          "schema": {
            "title": "String",
            "type": "string",
            "maxLength": 255
          }
        },
        {
          "name": "reason",
          "optional": true,
          "schema": {
            "title": "String",
            "type": "string",
            "maxLength": 255
          }
        }
      ]
    }
  }
}

For those not familiar with ‘curl’, all it was doing is a bog standard HTTPS GET with an added HTTP header line to add the authorization.

1 Like

Thanks! That is far better than the official documentation which is missing this information. I really appreciate your help! Great info!