---
title: "更新协议脚本设备"
method: POST
path: "/api/v1/things/protocol/script/device/update"
tags: ["things/protocol/script/device", "thingsProtocolScriptDevice"]
---

# 更新协议脚本设备

`POST /api/v1/things/protocol/script/device/update`

## Request body

- ProtocolScriptDevice
  - `createdTime` integer — 创建时间
  - `device` DeviceInfo
    - `adcode` string — 地区编码
    - `address` string — 所在地址
    - `area` AreaInfo
      - `areaID` string — 项目区域id（只读）
      - `areaName` string — 项目区域名称（读写）
      - `projectID` string — 项目id（只读）
    - `areaID` string — 项目区域id 只读
    - `categoryID` integer — 产品品类
    - `cert` string — 设备证书 只读
    - `createdTime` string — 创建时间 只读
    - `desc` string
    - `deviceAlias` string — 设备别名 读写
    - `deviceImg` string — 设备图片
    - `deviceName` string, required — 设备名称 读写
    - `deviceType` integer — 设备类型:1:直连设备,2:网关,3:子设备,4:监控设备
    - `distributor` IDPath
      - `id` integer
      - `idPath` string
    - `expTime` string — 到期时间
    - `file` string — 设备相关文件
    - `firstBind` string
    - `firstLogin` string — 激活时间 只读
    - `gateway` DeviceInfo — recursive
    - `groupIDs` string[] — 如果要更新分组,必须填写groupPurpose
    - `groupPurpose` string — 更新的时候使用,将设备该用途下的分组进行更新
    - `groups` GroupCore[] — 所在分组信息,只读
      - `id` integer, required
      - `name` string, required
      - `parentID` integer, required
      - `purpose` string, required — 用途
    - `hardInfo` string — 模组硬件型号 只读
    - `iccid` string — SIM卡卡号
    - `id` integer
    - `imei` string — IMEI号信息 只读
    - `isEnable` integer — 是否启用
    - `isOnline` integer — 在线状态 1离线 2在线 只读
    - `isUpdateDeviceImg` boolean — 只有这个参数为true的时候才会更新设备图片,传参为设备图片的file path
    - `isUpdateFile` boolean — 只有这个参数为true的时候才会更新设备文件,传参为设备文件的file path
    - `lastBind` string — 最后绑定时间 只读
    - `lastIp` string — 最后登录的ip地址
    - `lastLocalIp` string — 最后登录局域网的ip地址
    - `lastLogin` string — 最后上线时间 只读
    - `lastOffline` string — 最后下线时间 只读
    - `logLevel` integer — 日志级别:1)关闭 2)错误 3)告警 4)信息 5)调试 读写
    - `mac` string — MAC号信息 只读
    - `mobileOperator` integer — 移动运营商:1)移动 2)联通 3)电信 4)广电
    - `needConfirmVersion` string — 待确认升级的版本
    - `netType` integer — 通讯方式:1:其他,2:wi-fi,3:2G/3G/4G,4:5G,5:BLE,6:LoRaWAN,7:wifi+ble,8:有线网,9:4G+BLE
    - `owner` UserCore
      - `createdTime` string — 创建时间
      - `email` string — 邮箱
      - `headImg` string — 用户头像
      - `lastIP` string — 最后登录ip
      - `nickName` string — 用户的昵称
      - `phone` string — 手机号
      - `regIP` string — 注册ip
      - `userID` string — 用户id
      - `userName` string — 用户名(唯一)
    - `phone` string — 手机号
    - `position` Point
      - `latitude` number, double, required — 纬度
      - `longitude` number, double, required — 经度
    - `productID` string, required — 产品id 只读
    - `productImg` string — 产品图片
    - `productName` string
    - `profiles` object
    - `projectID` string — 项目id 只读
    - `protocolConf` Tag[] — 协议配置
      - `key` string, required
      - `value` string, required
    - `ratedPower` integer
    - `rssi` integer — 信号强度
    - `schemaAlias` object — 设备物模型别名,如果是结构体类型则key为xxx.xxx
    - `secret` string — 设备秘钥 只读
    - `softInfo` string — 模组软件版本 只读
    - `sort` integer — 排序
    - `status` integer — 设备状态 1-未激活，2-在线，3-离线 4-异常(频繁上下线,告警中)
    - `subProtocolConf` Tag[] — 子协议配置
      - `key` string, required
      - `value` string, required
    - `tags` Tag[] — 设备tag
      - `key` string, required
      - `value` string, required
    - `tenantCode` string
    - `userID` string
    - `version` string — 固件版本 读写
    - `withProperties` object — 获取的属性列表,如果不传withProperty,则不会返回
  - `deviceName` string
  - `id` string
  - `priority` integer — 执行优先级
  - `product` ProductInfo
    - `authMode` integer — 认证方式:1:账密认证,2:秘钥认证
    - `autoRegister` integer — 动态注册:1:关闭,2:打开,3:打开并自动创建设备,4:在前面的基础上绑定没有也自动创建
    - `bindLevel` integer — 绑定级别: 1:强绑定(默认,只有用户解绑之后才能绑定) 2:中绑定(可以通过token强制解绑设备) 3:弱绑定(app可以内部解绑被绑定的设备)
    - `category` ProductCategory
      - `children` ProductCategory[]
      - `desc` string — 描述
      - `deviceCount` integer — 设备数量
      - `headImg` string — 用户头像
      - `id` integer
      - `idPath` integer[] — 只读
      - `isLeaf` integer
      - `isUpdateHeadImg` boolean — 用户头像
      - `name` string
      - `order` integer — 排序,必须大于等于1,为0代表不修改
      - `parentID` integer
    - `categoryID` integer — 产品品类
    - `config` ProductConfig
      - `devInit` DevInit
        - `areaID` string — 设备创建默认分配给的区域ID
        - `deptID` string — 设备创建默认分配给的部门
        - `projectID` string — 设备创建默认分配给的项目
        - `tenantCode` string — 设备创建默认分配给的租户
      - `productID` string, required
    - `createdTime` string — 创建时间 只读
    - `customUi` object — 自定义ui,key是端的类型(web-client mini-client) value是以下类型的对象{version:123(版本号,只读),isUpdateUi:bool(是否更新ui),path:string(前端路径,如果需要修改,需要将isUpdateUi置为true并在这个参数中传入压缩包的filePath)}
    - `desc` string — 描述
    - `deviceSchemaMode` integer — 设备物模型模式:1:手动创建,2:设备自动创建 3: 设备自动创建及上报无定义自动创建 4: 设备自动创建及上报无定义自动创建(数字类型只使用浮点)
    - `deviceType` integer — 设备类型:1:直连设备,2:网关,3:子设备,4:监控设备
    - `isUpdateProductImg` boolean — 只有这个参数为true的时候才会更新产品图片,传参为产品图片的file path
    - `netType` integer — 通讯方式:1:其他,2:wi-fi,3:2G/3G/4G,4:5G,5:BLE,6:LoRaWAN,7:wifi+ble,8:有线网,9:4G+BLE
    - `onlineHandle` integer — 在线处理:1: 自动 2: 永远在线
    - `productID` string — 产品id 只读
    - `productImg` string — 产品图片
    - `productName` string — 产品名称
    - `protocol` ProtocolInfo
      - `code` string — iThings,iThings-thingsboard,wumei,aliyun,huaweiyun,tuya
      - `configFields` ProtocolConfigField[] — 配置字段列表,没有可以不传
        - `group` string, required
        - `id` integer, required
        - `isRequired` boolean, required
        - `key` string, required
        - `label` string, required
        - `sort` integer, required
      - `configInfos` ProtocolConfigInfo[] — 配置列表
        - `config` object, required
        - `desc` string, required
        - `id` integer, required
      - `desc` string
      - `deviceFields` ProtocolConfigField[] — 设备级的配置字段列表,没有可以不传
        - `group` string, required
        - `id` integer, required
        - `isRequired` boolean, required
        - `key` string, required
        - `label` string, required
        - `sort` integer, required
      - `endpoints` string[]
      - `etcdKey` string
      - `id` integer
      - `isEnableSyncDevice` integer, required — 是否支持主动同步设备信息
      - `isEnableSyncProduct` integer, required — 是否支持主动同步产品信息
      - `name` string
      - `productFields` ProtocolConfigField[] — 产品级的配置字段列表,没有可以不传
        - `group` string, required
        - `id` integer, required
        - `isRequired` boolean, required
        - `key` string, required
        - `label` string, required
        - `sort` integer, required
      - `transProtocol` string — 传输协议: mqtt,tcp,udp
      - `type` string — 协议类型: 普通设备(默认):normal 音视频:media
    - `protocolCode` string — 协议code,默认urMqtt,设备下发只会发送给主协议 urMqtt,urHttp,wumei,aliyun,huaweiyun,tuya
    - `protocolConf` Tag[] — 协议配置
      - `key` string, required
      - `value` string, required
    - `sceneMode` string — 场景模式 读写类型: r(只读) rw(可读可写) none(不参与场景)
    - `secret` string — 动态注册产品秘钥 只读
    - `status` integer — 产品状态 1:启用 2:禁用 3:开发中
    - `subDeviceOnlineHandle` integer — 子设备在线处理:1:自动(跟随网关下线) 2:独立(不跟随)
    - `subProtocolCode` string — 子协议,主协议和子协议传输类型必须不相同, 设备控制下发只会发送给主协议, 当设备是音视频设备但是控制协议需要单独走的时候就可以把主协议定义为普通协议,子协议定义为音视频协议,这样就能实现音视频走音视频协议,控制走子协议
    - `subProtocolConf` Tag[] — 子协议协议配置
      - `key` string, required
      - `value` string, required
    - `tags` Tag[] — 产品tag
      - `key` string, required
      - `value` string, required
    - `tenantCode` string — 租户号,common 为公共的产品,公共的大家都可以看,但是只有default可以修改
    - `trialTime` string — 试用时间(单位为天,为0不限制)
  - `productID` string
  - `script` ProtocolScript
    - `createdTime` integer — 创建时间
    - `desc` string
    - `id` string
    - `name` string
    - `script` string — 脚本内容
    - `status` integer — 状态:是否启用
    - `tenantCode` string — 租户号,common 为公共的产品,公共的大家都可以看,但是只有default可以修改
    - `triggerDir` integer — 1:up 2:down
    - `triggerHandle` string — 对应 mqtt topic的第一个 thing ota config 等等
    - `triggerTimer` integer — 收到前处理1:before 2:after
    - `triggerType` string — 操作类型 从topic中提取 物模型下就是 property属性 event事件 action行为
  - `scriptID` integer
  - `status` integer — 状态:是否启用
  - `tenantCode` string — 租户号,common 为公共的产品,公共的大家都可以看,但是只有default可以修改
  - `triggerSrc` integer — product:1 device:2

## Response `200`

A successful response.

- object
  - `code` integer
  - `msg` string

---

[API](https://skmtc.net/unitedrhino/apis/things-api.md) · [All operations](https://skmtc.net/unitedrhino/apis/things-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unitedrhino/things-api/revisions/f3bdeb916389/schema)
