The Cameras Protocol Adapter enables you to control cameras.
Protocol Information
This section provides detailed information on the protocol adapter supported by the HDM for controlling home devices in the management system.
Protocol Name
To be able to manage camera devices, the Cameras Protocol Adapter exports its devices under the Cameras() name. The protocol adapter describes to the Home Device Manager, and the management applications its support for:
Protocol Operations
HDM uses OSGi Event Admin service to generate events when adding/removing home devices, changing of home device properties, changing of DCO properties, etc.
Protocol Properties
The device properties related to the underlying protocol are described in the following table:
Property |
Allowed Values*/Default Value |
Access |
Description |
Resolution |
|---|---|---|---|---|
address |
127.0.0.1 |
Read/Write |
Address of the camera. The value of this property should consist of all the information needed to address the camera and establish a connection. The format of this property for IP cameras must be [<HTTP_protocol>://]<host>[:<port>] and for USB cameras must be <vendor_ID>:<product_ID> |
Optional |
camera.type |
[IP, USB] |
Read |
The type of the camera. It can be either IP or USB. |
Optional |
driver |
[AXIS(VAPIX v2), MOBOTIX(Camera Integration SDK 1.0.1), Panasonic(CGI Interface v4.3)] |
Read |
Represents the driver info for creating a new camera. Its value is constructed from its vendor concatenated with the version placed in brackets. |
|
password |
- |
Read/Write |
The user's password for the camera. |
Optional |
rtsp.port |
554 |
Read/Write |
RTSP port of the camera allocated for accepted requests. It must be a number between 1 and 65535. |
Optional |
user |
anonymous |
Read/Write |
The default user of the camera. |
Optional |
authorization |
- |
Read/Write |
Property name for ONVIF camera authorization. Specifies ONVIF authorization method. |
Optional |
available.drivers |
[Axis(VAPIX v2),Mobotix(Camera Integration SDK 1.0.1), Panasonic(CGI Interface v4.3), Generic(1.0), IPCAM(CGI SDK 2.1), ONVIF(v1.02), SerComm(CGI Interface v1.36), ZyXEL(CGI Interface v1.4), UDP(NVC HTTP API v1.06.07), UDP(IPX/IPN V1.3.0), Compro(IP Camera SDK v0.97c), D-Link(Nipca 1.9.5)] |
Read |
Property for the available camera drivers. Read only property. |
Optional |
camera.id |
- |
Read |
Property for a camera ID. Read only property. |
Optional |
camera.name |
- |
Read/Write |
Property for a camera friendly name. |
Optional |
controller.id |
- |
Read |
Specifies controller identifier. |
Optional |
firmware.vendor |
- |
Read |
Firmware vendor of the camera. |
Optional |
firmware.version |
- |
Read |
Firmware version of the camera. |
Optional |
generic.image.format |
- |
Read/Write |
Property for a camera image format. Used in camera Generic driver. Value has to be a format of camera image. Example: jpeg. |
Optional |
generic.image.protocol |
- |
Read/Write |
Property name for camera image protocol. Used in camera Generic driver. Value has to be image protocol of the camera. Example: http. |
Optional |
generic.image.resolution |
- |
Read/Write |
Property for a camera image resolution. Used in camera Generic driver. Example: <with>x<hight>. |
Optional |
generic.image.url |
- |
Read/Write |
Property for a camera image url. Used in camera Generic driver. Value has to be url to image. Example: /image.jpeg. |
Optional |
generic.ptz.down.url |
- |
Read/Write |
Property for a camera move down url. Used in camera Generic driver. Value has to be a url to camera move down command. Example: /move.cgi?direction=down. |
Optional |
generic.ptz.in.url |
- |
Read/Write |
Property for camera ZOOM IN url. Used in camera Generic driver. Value has to be url to camera zoom in command. Example: /zoom.cgi?direction=in. |
Optional |
generic.ptz.left.url |
- |
Read/Write |
Property for a camera MOVE LEFT url. Used in camera Generic driver. Value has to be url to camera move left command. Example: /move.cgi?direction=left. |
Optional |
generic.ptz.out.url |
- |
Read/Write |
Property name for camera ZOOM OUT url. Used in camera Generic driver. Value has to be url to camera zoom out command. Example: /zoom.cgi?direction=out. |
Optional |
generic.ptz.right.url |
- |
Read/Write |
Property for camera move right url. Used in camera Generic driver. Value has to be url to camera move right command. Example: /move.cgi?direction=right. |
Optional |
generic.ptz.up.url |
- |
Read/Write |
Property for camera move up url. Used in camera Generic driver. Value has to be url to camera move up command. Example: /move.cgi?direction=up. |
Optional |
generic.video.format |
- |
Read/Write |
Property for the camera video format. Used in camera Generic driver. Value has to be the format of the video from the camera. |
Optional |
generic.video.protocol |
- |
Read/Write |
Property name for camera video protocol. Used in camera Generic driver. Value has to be video protocol of the camera. Example: http or rtsp. |
Optional |
generic.video.resolution |
- |
Read/Write |
Property for camera video resolution. Used in camera Generic driver. Format of value: <with>x<hight> Example: 480x320. |
Optional |
generic.video.url |
- |
Read/Write |
Property for camera video url. Used in camera Generic driver. Value has to be url to video. Example: /video.mjpeg. |
Optional |
hardware.vendor |
- |
Read |
Property name for camera hardware vendor. Value is automatically obtained from the camera if property is not set. Example: D-Link. |
Optional |
hardware.version |
- |
Read |
Property name for camera hardware version. Value is automatically obtained from the camera if property is not set. Example: DCS-942L. |
Optional |
model |
- |
Read |
Property for the camera model. |
Optional |
nvr.channel |
- |
Read/Write |
Constant for NVR channel id. |
Optional |
* The allowed values are useful when you have to add a new device and setting some value for each adapter property. The allowed value of a property is either a String or a String[]. If the default value is a String[], you must pick one of the elements of this array as the actual value.
Properties required by the camera protocol adapter - You can retrieve the list of the properties for the adapter by using the getProperties or getPropertyMetadata method of the corresponding ProtocolAdapterInfoobject. If a property is mandatory, its ProtocolAdapter.META_INFO_PROPERTY_RESOLUTION metadata property will be ProtocolAdapter.META_INFO_PROPERTY_RESOLUTION_MANDATORY.
Polling
The Cameras protocol adapter maintains the minimal time period over which polling a device class property can be executed. The default interval is 10000 milliseconds.
Cameras-to-HDM Mapping
For each physical camera device, an HDM home device is created. The camera device has device class objects corresponding to the controls that the driver supports for it.
The mapping between the Cameras controls and the device classes is as follows:
Control |
Device Class |
|---|---|
Move |
Move Actuator |
Zoom |
Zoom Actuator |
Record |
Record Actuator |
Still Image |
Image Provider |
Video |
Video Provider |
Presets |
Presets Provider (custom) |
HTTP Control |
Basic HTTP Control (custom) |
Profiles |
Profiles Provider (custom) |
The Java classes of the Cameras HDM device classes are grouped in the and packages of the HDM API.
The Cameras-specific (custom) device classes are grouped in the com.prosyst.mbs.services.cameras.hdm.deviceclasses package exported by the Cameras HDM Adapter bundle.
For more detailed information on device classes, refer to the "Devices" document of the HDM Module.
Add Camera Device without Device Classes
The adding operation is introduced to meet cases when the underlying cameras protocol does not imply automatic detection of newly-joined camera devices. In such a case, an administration application can force the contact with the new devices via the Home Device Manager API to the adapter and then to the driver.
On successful operation execution, the Home Device Admin will return a HomeDevice object standing for the newly-joined camera device.