产品
通过本文档你可以了解到产品相关的基础操作。
产品是实体的集合,通常是一组具有相同功能定义的实体集合。

创建产品
选中【产品】选项卡,在页面下选择【创建产品】,进入创建产品页面。输入新建产品的信息后,点击【立即创建】。
![[../../../Pasted image 20260623102412.png]]
| 参数 | 描述 |
|---|---|
| 产品名称 | 为产品命名。产品名称具有唯一性。例如,可以填写为产 品型号。支持中文、英文字母、数字、下划线(_)、连接号(-)、@符号和英文圆括号,长度限制4~30,一个中文汉字算2位。 |
| 接入网关协议 | 物理/虚拟设备接入网关所使用的网络协议,可选“HTTP协议”与“定制协议”,详细定义与区别请参考概念定义 - 接入协议。 |
| 数据格式 | 设备与平台数据交互的格式,可选“BV JSON数据格式”与“透传/自定义”,详细定义与区别请参考概念定义 - 数据格式。 |
| 认证方式 | 实体接入DTS的安全认证方式。产品创建成功后,认证方式不可变更。可选:实体密钥:使用DTS为实体生成的deviceSecret进行实体认证签名计算。 |
| 产品描述 | 可输入文字,用来描述产品信息。字数限制为100。 |
快捷创建
- 选中【产品】选项卡,在页面下选择【快捷创建】,进入快捷创建产品页面。
- 选择已有的品牌下的产品,通过已有产品的模板进行快速创建。
- 输入产品名称,点击【立即创建】。
- 产品的接入协议、数据格式、认证方式、坐标系、关联网关默认与预设的产品配置一致,可自定义修改。
快捷创建的产品会根据选择产品自动生成产品Profile和消息解析脚本。

产品详情
在产品页面选择需要编辑查看的产品,点击”编辑”进入产品详情页面。在产品详情页展示所有与产品相关的数据内容,可查看或编辑 产品基本信息 、Topic类以及产品Profile,消息解析脚本、实体详情页、订阅关系等内容。

产品基本信息
可修改产品的名称以及产品描述等基本信息,但产品的接入信息如接入网关协议等内容不可重新编辑修改。

设置产品标签
产品标签用于对产品以及该产品下所有实体所具有的共性属性和业务属性进行逻辑分组(如产品的制造商、所属区域等)。产品标签支持“可选择 + 可输入”的组合模式,既可以从下拉列表中快速选择已有的分组或标签,也允许自定义输入新标签。

| 参数 | 说明 |
|---|---|
| 标签分组 (一级标签) | 标签的类别或属性组,支持选择已有分组或手动输入创建(如 Manufacturer、Region)。 |
| 标签 (二级标签) | 具体的标签值,支持选择已有标签或手动输入创建(如 大视景、华东区)。 |
Topic类列表
产品Topic类
Topic类是一类Topic的集合。
创建实体后,产品的所有Topic类会自动映射到实体上,无需单独为每个实体创建Topic。
通信Topic
产品的Topic类不⽤于通信,只是定义Topic。⽤于消息通信的是具体的实体Topic。

系统Topic
DTS预定义的Topic。
系统Topic包含展示在控制台产品、实体详情页下的Topic和各功能使用的Topic。

自定义Topic
自定义Topic通信不使用产品模型profile,消息的数据结构由网关服务根据业务自定义。自定义Topic主要解决产品关系复杂,数据关联较多,无法通过产品Profile很好的体现。比如大数据量的资源传输、产品模型结构复杂、业务偏向于资源管理无事件服务、添加产品Profile操作繁琐等情况下。
定义Topic类

| 参数 | 描述 |
|---|---|
| 实体操作权限 | 实体对该Topic的操作权限,可设置为发布、订阅。 |
| Topic类 | 根据实体Topic规则,设置Topic类的⾃定义类⽬名称 |
| 描述 | 对⾃定义的Topic类进⾏描述,可以为空。 |
产品Profile
产品Profile描述产品“是什么,能做什么”,构建该实体的数字化数据模型。完成功能定义后,系统将自动生成该产品模型。
当定义完一款产品Profile后,在创建实体时,就可以选择已经创建好的该产品Profile。
[!NOTE]
关于产品Profile的基础概念,请参考概念定义 - 产品Profile。
选择【编辑草稿】进入产品Profile的编辑状态。在完成变成编辑后,需点击【发布】将编辑内容保存。
添加产品profile
可为产品添加属性、服务、事件,且各产品Profile参数皆为自定义类型。
添加属性
用于添加和配置描述实体基础信息或运行时状态的属性字段。
[!NOTE]
关于属性与遥测指标的分类定义,请参考概念定义 - 属性。

| 参数 | 描述 |
|---|---|
| 功能名称 | 属性的名称,同一产品下功能名称不能重复。 |
| 说明:支持中文、大小写字母、数字、短划线和下划线,且必须以中文、英文或数字开头,不超过30个字符。 | |
| 标识符 | 属性唯一标识符,在产品中具有唯一性。即JSON格式中的identifier的值,作为实体上报该属性数据的Key,DTS根据该标识符校验是否接收数据。可包含英文 、数字、下划线,长度不超过50个字符,例如PowerComsuption。 |
| 说明 不能用以下系统保留参数作为标识符:set、get、post、time、value。 | |
| 数据类型 | - int32:32位整型。需定义取值范围、步长和单位符号。 - float:单精度浮点型。需定义取值范围、步长和单位符号。 - double:双精度浮点型。需定义取值范围、步长和单位符号。 - enum:枚举型。定义枚举项的参数值和参数描述,例如1-加热模式、2-制冷模式等。 - bool:布尔型。采用0或1来定义布尔值,例如0-关;1-开。 - text:字符串。需定义字符串的数据长度,最长支持2048字节。 date:时间戳。格式为String类型的UTC时间戳,单位:毫秒。 - struct:JSON对象。定义一个JSON结构体,新增JSON参数项,例如定义灯的颜色是由Red、Green、Blue三个参数组成的结构体。不支持结构体嵌套。 - array:数组。需声明数组内元素的数据类型,可选择int32、float、double、text或struct。需确保同一个数组元素类型相同。数组内可包含1-128个元素。 |
| 步长 | 属性值和事件以及服务中输入输出参数值变化的最小粒度。数据类型为int32、float、double时,根据业务需要设置步长。例如为温度计产品定义温度属性时,将数据类型设置为int32,步长为2,单位为℃,取值范围0~100。即温度每变化两度,实体上报温度值,例如0℃、2℃、4℃、6℃、8℃……。 |
| 单位 | 单位可选择为无或根据实际情况选择。 |
| 读写类型 | - 读写:请求读写的方法支持GET(获取)和SET(设置)。 - 只读:请求只读的方法仅支持GET(获取)。 说明 属性可以通过方法上报,如果部分属性提供设置,可选择读写类型,数字孪生将提供设置接口,用来接收订阅者发来的设置属性信息。 |
| 描述 | 输入文字,对该功能进行说明或备注。长度限制为100字。 |
添加事件
用于定义实体运行时的通知或告警事件,支持配置多个输出参数。
[!NOTE]
关于事件的作用与分类定义,请参考概念定义 - 事件。

| 参数 | 描述 |
|---|---|
| 功能名称 | 事件的名称,同一产品下功能名称不能重复。 说明 支持中文、大小写字母、数字、短划 线和下划线,且必须以中文、英文或数字开头,不超过30个字符。 |
| 标识符 | 事件唯一标识符,在产品下具有唯一性。即JSON格式中该事件的identifier的值,作为实体上报该事件数据的Key,例如 ErrorCode。 说明 不能用以下系统保留参数作为标识符:set、get、post、time、value。 |
| 事件类型 | - 信息:指实体上报的一般性通知,例如完成某项任务等。 - 告警:实体运行过程中主动上报的突发或异常情况,告警类信息,优先级高。可以针对不同的事件类型进行业务逻辑处理和统计分析。 说明 信息事件类型不会进行通知中心以及系统弹框提醒。 |
| 消息质量 | 上行数据流转的消息质量。 说明 默认代表qos=0; 一级代表qos=1;二级代表qos=2; |
| 持久化存储 | 是否持久化存储。 说明 消息通过透传的方式进行持久存储用户模板渲染以及历史追溯。属性数据默认存储采用更新的方式存储。 |
| 输出参数 | 事件的出参。 自定义参数。 说明 - 不能用以下系统保留参数作为输出参数的标识符:set、get、post、time、value。- 一个事件最多支持定义50个出参。 |
| 输出模板 | 输出参数展示样式,对外响应效果。看板:选择看板作为事件展示时的模板样式,可通过低代码设计器绘制看板。 说明:看板将用来实时渲染展示,请确保输出参数identifier与看板使用的数据集identifier参数一致。不添加模板则不会进行页面渲染直接发送Json数据,默认发送模板链接以及json数据; |
| 描述 | 输入文字,对该事件功能进行说明或备注。长度限制为100字。 |
事件模板
事件模板是展示事件数据的一个可视化页面,可以展示以及渲染到第三方平台,进行静态页面展示。选择看板作为事件展示时的模板样式,可通过低代码设计器绘制看板。将选择的看板保存后就成为该事件的模板。
说明:将用来实时渲染展示,请确保输出参数identifier与看板使用的数据集identifier参数一致。不添加模板则不会进行页面渲染直接发送Json数据,默认发送模板链接以及json数据;

事件摘要
事件摘要是通过文本的形式简要明了的描述发生的事件。可以自行输入文本内容,也可以通过事件输出参数拼装组成。在发送事件摘要到通知中心时,会将数据值装载到摘要中。

添加服务
用于定义实体可被外部调用的能力或方法,支持配置输入与输出参数。
[!NOTE]
关于服务的机制与功能定义,请参考概念定义 - 服务。
服务地址和接口支持动态参数定义,输入格式为${参数名}(例如:/${admin})。
若配置了动态参数,需在产品服务定义下“输入参数”列表中定义同名的参数(如admin)。实际请求时,系统将自动使用该参数的值替换地址中的动态部分,生成完整的请求URL。
示例说明:
接口地址:http://api.example.com/${admin}/status
输入参数中定义:admin(值为visitor)
最终请求URL:http://api.example.com/visitor/status

| 参数 | 描述 |
|---|---|
| 功能名称 | 服务名称,同一产品下功能名称不能重复。 说明 支持中文、大小写字母、数字、短划线和下划线,且必须以中文、英文或数字开头,不超过30个字符。 |
| 标识符 | 服务唯一标识符,在产品下具有唯一性。即JSON格式中该服务的identifier的值。可包含英文、数字、和下划线,长度不超过30个字符。 说明 不能用以下系统保留参数作为标识符:set、get、post、time、value。 |
| 服务地址 | 通过产品Profile服务调用外部服务的请求目标地址。服务地址需在产品关联的网关下进行维护。 目前支持三种调用方式:HTTP方式、RedisMQ方式、WebSocket方式。其中WebSocket方式适用于局域网内与第三方平台的通信。 说明 只有HTTP方式支持同步和异步的调用选择,其余方式只能使用异步调用。 |
| 结果返回方式 | 服务执行完成后,是否需要将服务执行结果反馈到DTS。 - 属性上报:服务提供方将执行结果以属性上报的形式将结果返回; - 事件上报:服务提供方将执行结果以事件的形式将结果返回; - HTTP回调:通过HTTP将结果返回,需输入结果返回地址,服务提供方需将结果转发至目标地址; - Redis回调:通过Redis将结果返回,需输入结果返回地址,服务提供方需将结果转发至目标地址。 说明 属性上报和事件上报会将结果在DTS内部进行流转,HTTP和Redis方式服务提供方将结果转发至目标地址,数据不会回到DTS。 |
| 输入参数 | 设置该服务的入参,可选。 说明 不能用以下系统保留参数作为输入参数的标识符:set、get、post、time、value。可以自定义参数。一个服务最多支持定义 20 个入参。 |
| 输出参数 | 设置该服务的出参,可选。 说明不能用以下系统保留参数作为输出参数的标识符:set、get、post、time、value。可以自定义参数,一个服务最多支持定义20个出参。 |
| 描述 | 输入文字,对该服务功能进行说明或备注。长度限制为100字。 |
导入产品profile
编辑产品Profile的草稿,选择【导入Profile】,上传产品ProfileJSON文件(具体文件格式请查看产品Profile格式),即可快速添加一个产品Profile。

注意:导入产品Profile后,会覆盖该产品原有的功能定义。事件模板不能批量添加。
导出产品profile
编辑完成的产品Profile可以导出为Json文件形式,方便产品的转移。
发布产品profile
定义或修改产品Profile之后都需要将新的产品Profile进行发布。发布之后的产品Profile才能被DTS所识别。

输入/输出参数
定义事件以及服务中输入输出参数值。

| 参数 | 描述 |
|---|---|
| 参数名称 | 参数的名称。 说明支持中文、大小写字母、数字、短划线和下划线,且必须以中文、英文或数字开头,不超过30个字符。 |
| 标识符 | 参数唯一标识符。作为服务以及事件输出输入参数的Key,数据 孪生模块根据该标识符校验是否接收数据以及模板渲染。可包含英文、数字、下划线,长度不超过50个字符,例如PowerComsuption。 说明 不能用以下系统保留参数作为标识符:set、get、post、time、value。 |
| 数据类型 | - int32:32位整型。需定义取值范围、步长和单位符号。 - float:单精度浮点型。需定义取值范围、步长和单位符号。 - double:双精度浮点型。需定义取值范围、步长和单位符号。 - enum:枚举型。定义枚举项的参数值和参数描述,例如1-加热模式、2-制冷模式等。 - bool:布尔型。采用0或1来定义布尔值,例如0-关;1-开。 - text:字符串。需定义字符串的数据长度,最长支持2048字节。 - date:时间戳。格式为String类型的UTC时间戳,单位:毫秒。 - struct:JSON对象。定义一个JSON结构体,新增JSON参数项,例如定义灯的颜色是由Red、Green、Blue三个参数组成的结构体。不支持结构体嵌套。 - array:数组。需声明数组内元素的数据类型,可选择int32、float、double、text或struct。需确保同一个数组元素类型相同。数组内可包含1-128个元素。 |
| 步长 | 属性值和事件以及服务中输入输出参数值变化的最小粒度。数据类型为int32、float、double时,根据业务需要设置步长。例如为温度计产品定义温度属性时,将数据类型设置为int32,步长为2,单位为℃,取值范围0~100。即温度每变化两度,实体上报温度值,例如0℃、2℃、4℃、6℃、8℃……。 |
| 单位 | 单位可选择为无或根据实际情况选择。 |
| 读写类型 | - 读写:请求读写的方法支持GET(获取)和SET(设置)。 - 只读:请求只读的方法仅支持GET(获取)。 说明 属性可以通过方法上报,如果部分属性提供设置,可选择读写类型,数字孪生将提供设置接口,用来接收订阅者发来的设置属性信息。 |
| 描述 | 输入文字,对该功能进行说明或备注。长度限制为100字。 |
消息解析
数据格式为透传/自定义的产品下的实体与DTS进行数据通信时,需要DTS调用定义的消息解析脚本,将上、下行产品Profile数据分别解析为DTS的标准格式(BV JSON)和实体的自定义数据格式。
DTS接收到来自实体的数据时,先运行解析脚本,将透传的数据转换成BV JSON格式的数据,再进行业务处理;DTS下发数据给实体前,也会先通过脚本将BV JSON格式的数据转换为实体的自定义格式,再下发给实体。
在编辑脚本框内输入消息解析的脚本,可在下方模拟输入上行或下行数据测试脚本是否能够正常运行。
建议:事先在开发工具中编写测试好对应的脚本后,在移植在数字孪生服务中,进行简单修改即可。

实体详情页
实体详情页用于展示以及渲染到应用程序(MRC/ARC等),进行静态页面展示。在应用程序在选择实体后,会自动弹出详情页。看板的创建需要通过低代码设计器进行。如何创建看板可参考低代码设计器。

订阅关系
当前产品存在订阅时,可查看到所有订阅的信息。
