产品功能

更新时间:2024-02-01 09:25:14下载pdf

产品功能 是涂鸦 IoT 开发平台对智能硬件设备功能的抽象表示,用于描述实际硬件产品功能及其参数。确定了 产品功能 后,涂鸦 IoT 平台基于智能硬件设备的产品功能生成云端控制对接模型,便于硬件开发者理解产品功能及其数据交互方式。

什么是产品和产品功能?

在涂鸦,产品是一系列具有同样配置和属性的智能设备的集合,方便您批量管理设备。当您在 涂鸦 IoT 平台 创建了一个产品后,平台赋予该产品一个 PID(Product ID),用来表示产品的注册标识。完成产品的创建后您可以进行产品开发,而定义产品功能是产品开发的第一步。

您在平台为产品设置的功能,则描述了该产品能够干什么,以及云端如何 “指挥” 设备。物联网设备存在于物理空间中,产品功能 则是设备在云端的数字化表示,用来规范化表达设备发送给云端的遥测数据。

应用场景

以一个灯带为例,用户通过控制端设置了灯带的某个瞬间状态,云端或者边缘网关需要将用户的设置一一对应地去执行。此时,就需要明确产品的功能,通过改变功能的值来控制设备。

产品功能

一般地,解决方案构建者或者智能硬件生产者需要为设备设计好 产品功能,然后以固件地形式将功能实现到设备应用程序中。

而物联网移动应用和云应用则使用对应的开发语言编写设备检测和控制代码,让终端用户能够使用设备所有的 产品功能

功能分类

涂鸦 产品功能 分为如下几类:

类型 介绍
标准功能 标准功能是某一产品支持的常用功能,又称为标准 dpcode。由于各个产品属性的差异,每个产品的标准功能也会有所不同。
自定义功能 如果您设计的设备功能不在标准功能中时,您可以自定义功能。
高级功能 例如云定时、网页跳转等不适用常见的功能表达格式的功能,称为高级功能。

表达格式

涂鸦 IoT 平台定义了以下字段,用来数字化表达产品功能:

属性 说明 示例(以灯带彩光模式为例)
DP ID 全称为 Data Point ID,缩写为 DPID。DP 是产品功能在设备应用程序中的简称,则 DP ID 是产品功能的简单编码,一般为整数型,例如 1、2、101。设备与云端的功能数据通过 DP ID 进行传输。 24
功能名称 产品功能的名称,可以用中文、英文、日语、法语等语言表示,仅用做平台展示。 彩光模式
标识符 功能的字符串表示,又称为产品 dpcode,用于有多语言能力的应用程序中,例如移动应用。支持字母、数字和下划线,以字母开头。 color_mode
数据传输类型 定义了数据交互的方向。分为以下几种:
  • 可下发可上报:指令数据可以发送给设备,设备数据可以传输给云端。
  • 只上报:数据只支持从设备传输给云端。
  • 只下发:数据只支持从云端发送给设备。
可下发可上报
数据类型 定义了产品功能的取值的数据类型。分为以下几种:
  • 布尔型(bool):非真即假的二值型变量。例如开关功能的开或者关。
  • 数值型(value):可线性调节类型的数据。例如温度调节,温度范围 20-40℃。
  • 枚举型(enum):自定义的有限集合值。例如低档、中档、高档的取暖器。
  • 故障型(fault):用于上报和统计故障的功能点,支持多故障,数据只上报。例如温度传感器故障、电机故障和高温故障等。
  • 字符串型(string):以字符串形式传输的产品功能。
  • 透传型(raw):以二进制形式透传的产品功能。
字符型(String)
功能属性 进一步明确 数值型 产品功能的数值取值范围、数值间距和单位。 -
备注 针对一些较复杂或者涉及到多人协作的产品功能,您可以在备注中说明相关注意,提示其他团队成员。 某某功能由产品专员重新定义。

完整示例

本章节以一个下图所示的电压力锅为例,介绍产品功能涉及到的大概流程。

产品功能

第一步:构思产品功能

根据预先的产品功能构思,可以拆分为如下表所示的初代功能或者迭代功能:

功能分类 产品功能 数据类型 传输方式 功能描述
控制功能 烹饪时间 数值型 上报/下发 设置设备的工作时长,0-6000,单位为分钟
设置开关 布尔型 上报/下发 设备开关按钮
启动/取消 布尔型 上报/下发 设备启动/取消按钮
烹饪模式 枚举型 上报/下发 设置设备烹饪的模式,例如:
  • beans(豆类)
  • cake(蛋糕)
  • meat(肉类)
  • rice(米饭)
  • steam(慢炖)
  • boil(蒸煮)
  • soup(汤)
预约功能 数值型 上报/下发 设置时间,1-1440,单位为分钟
保温时间 数值型 上报/下发 设置时间,30-1440,单位为分钟
设备状态 设备状态 枚举型 仅上报 例如提供四个状态:
  • 待机中
  • 烹饪中
  • 关闭中
  • 已关闭
故障告警 故障型 仅上报 展示设备故障告警信息

第二步:创建产品功能

根据已经构思的产品功能,您可以在 涂鸦 IoT 平台 上根据 选品类创建产品 中描述的步骤,在平台上添加产品功能,如下所示:

产品功能

一般而言,IoT 平台上的 标准功能 能够满足大多数的设备需求,如果标准功能中缺少您所需要的产品功能,您可以添加 自定义功能 来实现。

第三步:(可选)查看设备的指令集

产品功能 是解决方案构建者或者智能硬件生产者关注的范畴,而云端的设备 指令集 则是物联网移动应用和云应用开发者关注的范畴。涂鸦提供的标准产品类别中,都具有对应的标准指令集,以及可使用标准状态集进行状态查询的标准化的产品类别列表。

例如,以上步骤中创建的电压力锅的功能属性如以下 JSON 样例所示,具体调用方式,参考云开发 标准指令集

{
"result": {
	"category": "dylg",
	"functions": [
	{
		"code": "switch",
		"type": "Boolean",
		"values": "{}"
	},
	{
		"code": "start",
		"type": "Boolean",
		"values": "{}"
	},
	{
		"code": "appointment_time",
		"type": "Integer",
		"values": "{\"unit\":\"min\",\"min\":0,\"max\":1440,\"scale\":0,\"step\":1}"
	},
	{
		"code": "cook_time",
		"type": "Integer",
		"values": "{\"unit\":\"min\",\"min\":0,\"max\":6000,\"scale\":0,\"step\":1}"
	},
	{
		"code": "warm_time",
		"type": "Integer",
		"values": "{\"unit\":\"min\",\"min\":30,\"max\":1440,\"scale\":0,\"step\":1}"
	}
	],
	"status": [
	{
		"code": "switch",
		"type": "Boolean",
		"values": "{}"
	},
	{
		"code": "start",
		"type": "Boolean",
		"values": "{}"
	},
	{
		"code": "appointment_time",
		"type": "Integer",
		"values": "{\"unit\":\"min\",\"min\":0,\"max\":1440,\"scale\":0,\"step\":1}"
	},
	{
		"code": "cook_time",
		"type": "Integer",
		"values": "{\"unit\":\"min\",\"min\":0,\"max\":6000,\"scale\":0,\"step\":1}"
	},
	{
		"code": "work_state",
		"type": "Enum",
		"values": "{\"range\":[\"idle\",\"appointment\",\"cooking\",\"warm\",\"paused\"]}"
	},
	{
		"code": "warm_time",
		"type": "Integer",
		"values": "{\"unit\":\"min\",\"min\":30,\"max\":1440,\"scale\":0,\"step\":1}"
	}
	]
},
"success": true,
"t": 1630599813188
}

第四步:使用产品功能

当解决方案构建者或者智能硬件生产者已经完成产品功能的设计和添加,或者产品已经完成所有的配置,对应的应用程序开发者就可以开始根据涂鸦提供的开发者产品使用产品功能。

应用程序类型 涂鸦提供的公版产品 涂鸦提供的开发方式
设备固件 零代码开发 TuyaOS 开发
移动端应用 公版 App IoT App SDK
云应用 暂无 云开发
边缘应用 暂无 边缘计算网关

相关概念

有了产品功能,应用程序才可以与智能设备产生交互。基于涂鸦物联网技术的软硬件结合开发的方式,传统设备可以被改造成智能硬件,进而让其拥有智能化、自动化、多设备联动的能力。此章节介绍几个与产品功能有相关性的概念。

上报下发

上报和下发是指固件指令的方向,一般都是异步模式。例如,在 MCU 低代码开发中,涂鸦云模组下发控制命令给 MCU,数据解析完成后,MCU 会根据命令执行对应的产品功能,若设备状态发生改变,MCU 还需使用状态上报命令。假设云模组控制命令下发的命令字为 X,MCU 状态上报的命令字为 Y,则如下图所示:

产品功能

智能场景

为了满足用户对智能场景的配置需求,涂鸦 IoT App SDK 为开发者提供了用于自定义设置智能场景中产品功能的接口。当一个智能设备的状态的变化,或者某个环境条件的变化影响着其他智能设备的开关或者状态调整时,这就是 智能场景。更多详情,参考 IoT App SDK 设备控制

产品功能