创建设备
描述
本接口用于创建设备。所有涉及设备的API,适用于接入类型为“GB/T 28181”或"onvif"的空间。
- 接口请求域名:
qvs.qiniuapi.com - 请求方式:POST
 - 接口路径:
/v1/namespaces/{namespaceId}/devices 
请求参数
路径参数
| 参数名称 | 必填 | 字段类型 | 说明 | 
|---|---|---|---|
| namespaceId | 是 | string | 空间ID | 
Body
| 参数名称 | 必填 | 字段类型 | 说明 | 
|---|---|---|---|
| type | 是 | integer | 可选项为摄像头、平台两类,1:摄像头,2:平台。创建后不可修改,默认为1:摄像头 | 
| name | 是 | string | 设备名称(可包含 字母、数字、中划线、下划线,同时支持中文;1 ~ 100 个字符长) | 
| gbId | 是 | string | 设备国标ID,要求全局唯一,该字段为空时,会自动创建gbid | 
| username | 是 | string | 用户名,4 ~ 40位,可包含大写字母、小写字母、数字、中划线。当该字段为空时,默认值是设备国标ID | 
| password | 是 | string | 密码,4 ~ 40位,可包含大写字母、小写字母、数字、中划线 | 
| pullIfRegister | 否 | boolean | 注册成功后启动拉流,默认关闭 | 
| desc | 否 | string | 关于设备的描述信息 | 
| alarmEnable | 否 | boolean | 是否开启设备报警,默认关闭 | 
| alarmMethods | 当空间类型为gb28181时需指定 | string | 接收报警类型列表。 alarmEnable为True时,此字段有效。多个报警类型以,分隔。1为电话报警, 2为设备报警, 3为短信报警, 4为GPS报警, 5为视频报警, 6为设备故障报警, 7其他报警。例如同时接收 短信报警和视频报警,传递参数为"3,5", alarmEnable为true时,改字段不能为空 | 
| alarmTypesForRecord | 否 | string | alarmType列表,多个报警类型以,分隔,收到此列表中的任何一个报警类型,会触发录像。例如,如果希望收到入侵检测报警或者运动目标检测报警触发录像,则传递参数为6,2。关于报警类型的详细说明参考报警类型说明。对应的流需要先绑定按需录制模板。此配置项只针对alarmMethod为5时,即视频报警 | 
| recordTime | 当alarmTypesForRecord不为空时需指定 | 
int | 如果开启了收到报警触发录像,则需要传此参数设置录像的时长,单位为秒。 | 
| alarmTypesForSnap | 否 | string | alarmType列表,多个报警类型以,分隔,收到此列表中的任何一个报警类型,会触发截图。例如,如果希望收到入侵检测报警或者运动目标检测报警触发截图,则传递参数为6,2。关于报警类型的详细说明参考报警类型说明。对应的流需要先绑定按需录制模板。此配置项只针对alarmMethod为5时,即视频报警 | 
| localRecordPushEnable | 否 | boolean | 本地录像上传开关。如果关闭此开关,本地录像上传云端接口无效。默认false | 
| localRecordTemplate | 否 | string | 录制模板ID;localRecordPushEnable为True时,此字段有效 | 
| location.enable | 否 | boolean | 是否开启地理位置信息 | 
| location.type | 否 | int | 0表示地理位置手动录入,1表示自动订阅位置信息,当location.enable为True时有效 | 
| location.longitude | 否 | float | 经度,当location.type为0时有效 | 
| location.latitude | 否 | float | 纬度,当location.type为0时有效 | 
| location.interval | 否 | int | 订阅周期,数据范围为1~60,单位秒,默认为5秒,当location.type为1时有效 | 
| deviceIp | 当空间类型为onvif时需指定 | string | 设备IP地址 | 
| onvifPort | 当空间类型为onvif时需指定 | integer | 设备onvif端口 | 
| onvifUsername | 当空间类型为onvif时需指定 | string | onvif用户名 | 
| onvifPasswd | 当空间类型为onvif时需指定 | string | onvif密码 | 
| onvifStreamPort | 当空间类型为onvif时需指定 | integer | onvif流地址映射到公网的端口号,默认值为554 | 
| rtpProtocol | 否 | string | 流传输协议,默认tcp协议,可选值tcp或udp | 
| rtpAudio | 否 | boolean | 是否开启音频 | 
| rtpAudioTranscode | 否 | boolean | 是否开启音频转码 | 
| onDemandPull | 否 | boolean | 是否开启按需拉流 | 
响应参数
| 参数名称 | 类型 | 说明 | 
|---|---|---|
| name | string | 设备名称 | 
| desc | string | 设备描述 | 
| nsId | string | 所属的空间ID | 
| nsName | string | 所属的空间名称 | 
| gbId | string | 设备国标ID | 
| state | string | 状态(offline:离线,online:在线,notReg:未注册,locked:锁定) | 
| username | string | 用户名 | 
| password | string | 密码 | 
| pullIfRegister | boolean | 注册成功后启动拉流,默认关闭 | 
| channels | integer | 设备通道数 | 
| vendor | string | 厂商 | 
| createdAt | integer | 创建时间,Unix时间戳,秒 | 
| updatedAt | integer | 更新时间,Unix时间戳,秒 | 
| lastRegisterAt | integer | 上一次注册时间,Unix时间戳,秒 | 
| lastKeepaliveAt | integer | 上一次心跳时间,Unix时间戳,秒 | 
| deviceId | string | 设备ID | 
| rtpAudio | boolean | 是否开启音频 | 
| rtpAudioTranscode | boolean | 是否开启音频转码 | 
| onDemandPull | boolean | 是否开启按需拉流 | 
示例
请求示例
curl --request POST \
  --url http://qvs.qiniuapi.com/v1/namespaces/2akrarvzvyijd/devices \
  --header 'authorization: Qiniu j853F3bLkWl59I5BOkWm6q1Z1mZClpr9Z9CLfDE0:u372aQV0359mzwTVGxn22sRgFYc=' \
  --header 'content-type: application/json' \
  --data '{
	"name": "device1",
	"desc": "test gb28181",
	"username": "username",
	"password": "password",
	"location": {
		"enable": true,
		"type": 1,
		"interval": 5
	}
}'
响应示例
{
  "name": "device1",
  "desc": "test gb28181",
  "nsId": "2akrarvzvyijd",
  "nsName": "gbt",
  "gbId": "31011500991320000028",
  "state": "notReg",
  "username": "username",
  "password": "password",
  "pullIfRegister": false,
  "createdAt": 1596166110,
  "updatedAt": 1596166110,
  "channels": 0,
  "lastRegisterAt": 0,
  "lastKeepaliveAt": 0,
  "deviceId": "100000035",
}
注意
每个设备会创建一路流,普通设备以 GBId 作为stramId,平台设备以 设备国标ID_通道国标ID 作为streamId
    文档反馈
    (如有产品使用问题,请 提交工单)