Hi SmartThings Team,
When I refer the document : Capabilities Reference | SmartThings Developers
, and I want to use the capability of VideoStream, I did not see any information about video codec and audio codec.
I want to know :
Q1. Does smartThings support the rtsp streaming?
Q2. What kind of video codec and audio codec support in here ?
Q3. Does any example about the videostream capability?
Hi Nayelyz,
Thanks for your reply.
I want to use a witness spotlight cam from leedarson to connect to smarthThings.
This deviceās capabilities is as follows:
2K QHD
2-Way Audio
400lm Spotlight
Alarm Alert
Human Detection
SpotlightNight Vision
2T2R
IP65
Smoke/CO Alarm and Sound Detection
10.Glass Break Detection
How is the motion detection working here? Does the plugin itself detect it based on video movement or is it expecting (onvif?) notifications from the camera?
what is the āaddStateā command in Edge?
Can you explain the āInHomeURLā vs āOutHomeURLā ? In my case I would always be getting a stream IN from a video camera;so would I only use InHomeURL then?
is using this fixed device profile the only way to get video to work? Can I not define my own device just using the videoStream capability? (My first attempt yielded no video window)
As this capability is only listed in the device profile, you should send the capability event but Iām not sure how you would receive the event in the driverā¦Iāll talk to the engineering team about that
That command comes from the ST Schema SDK to send this new value to the capability in ST. In Edge, it would be device:emit_event.
Let me confirm this with the team.
Did you use the metadata in your profile and it still didnāt work?
If you only include the videoStream capability without the proper metadata, the plugin wonāt be displayed
If I use the meta then yes, I get the expected presentation. However, Iām passing my RTSP URL in both the in and out elements but not getting anything: (I assume youāve been meaning to say āRTSPā, rather than āRSTPā)
FYI, if I load just the āoutā URL, I eventually get an error message: āThere was a problem streaming the video. Tap the refresh button.ā. If I just load the āinā URL, or both, it spins forever with no error.
I just realized something - most RTSP commands to an IP camera (DESCRIBE, SETUP, PLAY, TEARDOWN) are going to require authorization, yet thereās no way you described to even provide a user and password. So Iām not sure how this could even work??
OK, thanks for the info. I found this syntax for the URL, I donāt know if all the commands can use the ābaseā where the user and password are included:
rtsp://user:pass@192.168.0.6:554/streamurl
I need to gather more information from the team, the integration of videocamaras is not very common and the current ones from official partners are using Schema Connector.
Itās not 100% - Iām only getting video for a couple of my cameras, but itās something. Iāve figured out that the OUT URL seems to be the right one to use. I can leave the IN URL empty.
No issue with starting/stopping the stream for some cameras - for others itās just spinning indefinitely and Iām not getting any video.
I have the motion events working: that requires setting up event notifications with each camera according to ONVIF spec, which is all working (even if video is not).
@nayelyz Iāve run up against some pretty significant issues trying to implement an Edge video driver:
using the SmartThings-smartthings-c2c-ring-camera VID doesnāt appear to be a viable alternative, as it doesnāt allow me to have any device Settings. Itās probably because that VID was designed for a cloud-to-cloud implementation in mind. For Edge, I need device Settings defined to be able to have the user configure userID and password, and other configuration settings.
Iāve been able to make another approach work, which is to NOT use that VID and instead rely on creating a camera group. That allows me to get video streaming to work, however it doesnāt seem to be very reliable. But, the big issue here is SECURITY. When my driver provides the rtsp streaming URL to SmartThings when requested, it has to include the cameraās UserID and Password. This gets passed in the clear on the network, but even worse, it gets displayed in history!
So given these two issues, I am asking:
We need a more versatile video presentation that is more suited for Edge drivers. Would it be possible for someone to create a new presentation like SmartThings-smartthings-c2c-ring-camera, but that doesnāt preclude device Settings? Nirvana would be the ability to also add other capabilities in the presentation, but I can live with the fixed format if only Settings were supported.
We need a more secure way to provide authentication info with the stream URL. Developers also need more control over what gets displayed in history, like a flag parameter added to emit_event to exclude the state change from history. (Iāve pointed out the need for something like this previously in a separate topic)
It is true that the official integrations like the Ring camera are using a C2C connection and āsettingsā are not a āthingā there but still, I donāt know why the VID is preventing you to show settings.
This option was a workaround, not an official solution, sorry if I wasnāt clear about that part before.
I will create a feature request about the ability/options to integrate camera devices using your comments. However, it can take some time to be analyzed and implemented (if it gets approved). It depends on the teamās workload.
For now, thatās all the information I have, sorry.
What about the videoCamera capability? What exactly does that do? Is it only for camera controls, or does it include a video display element? Iāve not been able to get it to work, presumably because I donāt know what it requires to initialize. Is there any documentation or examples for the attribute called āsettingsā?
Name Description Type
settings The current state of the settings object