human: 如何处理七牛云的视频监控创建设备

gpt: [视频监控](https://developer.qiniu.com/qvs) > API 文档 > 设备管理相关接口 >创建设备

#  创建设备

最近更新时间: 2023-08-02 11:40:16

# **描述**

本接口用于创建设备。所有涉及设备的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`。关于报警类型的详细说明参考[报警类型说明 __](https://developer.qiniu.com/qvs/7775/gb-alarm-events-list#2)。对应的流需要先绑定`按需录制模板`。此配置项只针对alarmMethod为`5`时，即`视频报警`  
recordTime | 当`alarmTypesForRecord`不为空时需指定 | int | 如果开启了收到报警触发录像，则需要传此参数设置录像的时长，单位为秒。  
alarmTypesForSnap | 否 | string | alarmType列表，多个报警类型以`,`分隔，收到此列表中的任何一个报警类型，会触发截图。例如，如果希望收到`入侵检测报警`或者`运动目标检测报警`触发截图，则传递参数为`6,2`。关于报警类型的详细说明参考[报警类型说明 __](https://developer.qiniu.com/qvs/7775/gb-alarm-events-list#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

以上内容是否对您有帮助？