文章目录
- 一、什么是物模型
- 二、标准参数
- (1)标准参数的意义
- 三、物模型字段详细说明
- (1)物模型的每个属性包含以下字段
- (2)物模型的每个方法包含以下字段
- (3)物模型的每个事件包含以下字段
- 四、不同平台物模型规范区别
- (1)阿里
- (2)小米
- (3)京东
一、什么是物模型
物模型是产品数字化的描述,定义了产品的功能,物模型将不同品牌不同品类的产品功能抽象归纳,形成“标准物模型”,便于各方用统一的语言描述、控制、理解产品功能。
物模型由若干条“参数”组成,参数按描述的功能类型不同,又分为属性、方法和事件。
参数 | 说明 |
---|---|
属性 | 一般用于描述设备状态,支持读取和设置 |
方法 | 设备可被外部调用的能力或方法,可设置输入参数和输出参数,参数必须是某个“属性”。相比于属性,服务可通过一条指令实现更复杂的业务逻辑 |
事件 | 用于描述设备上报云端的事件,可包含多个输入参数,参数必须是某个“属性” |
二、标准参数
为了实现设备功能的统一理解,对于每个品类会定义一套“标准参数”,标准参数包含了某个品类可能用到的所有参数,开发者在定义产品物模型时优先从标准参数中选择,如果标准参数未包含的功能,可以定义“自定义参数”。
(1)标准参数的意义
-
标准参数是以品类为维度,综合各品类设备功能,统一抽象的一组参数定义。
-
每个品类有一套标准参数,如“灯”品类的标准参数,定义了所有品牌的灯可能有的所有功能。各品类之间同样的功能保持参数一致,例如在“灯”品类的开关,“插座”品类的开关,乃至所有品类的开关都用同样的参数定义(“power”)。
-
这样高度抽象的物模型定义,是为了统一不同功能在不同设备上的表示方式,方便做通用功能时理解不同设备功能。
例如在做语音控制设备开关时,只需要将“打开”这样的意图与“power”参数对应,即可实现所有设备的开关控制。
三、物模型字段详细说明
(1)物模型的每个属性包含以下字段
字段名称 | 字段说明 | 约束条件 |
---|---|---|
名称 | 参数中文名 | “仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格), 必须以中文、英文或数字开头,长度不超过40个字符。” |
标识符 | 参数唯一英文标识 | 支持大小写字母、数字和下划线、不超过50个字符。 |
数据类型 | 必选,可选整数型、浮点型、枚举型、字符串。 | |
枚举项 | 枚举值和解释 | 仅枚举值参数。 分为参数值和参数描述,参数值支持整形,不超过2个字符, 参数描述支持中文、英文、数字、下划线,不超过20个字符,枚举项数量可自定义。 |
取值范围 | 数据范围 | 仅整形、浮点数。 可自定义,输入的数值范围不超过各类型数据所能表示的范围。 |
步长 | 取值间隔 | 仅整形、浮点数。 步长是指设备上报或下发数值时,递增或递减的间隔。 步长只能是一个正数;整数型最小步长为1;浮点数最小步长为10^(-7);最大步长不能超出取值范围的差值。 |
数据长度 | 字符串长度 | 仅字符串参数。 整数,表示字符串最大长度,取值1-2048 |
单位 | 数据单位 | |
读写权限 | 读写权限 | 可选“读”“写”“读写” 表示参数的读写权限 |
描述 | 参数描述 | 100字以内 |
(2)物模型的每个方法包含以下字段
字段名称 | 字段说明 | 约束条件 |
---|---|---|
名称 | 参数中文名 | 仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格), 必须以中文、英文或数字开头,长度不超过40个字符。 |
标识符 | 参数唯一英文标识 | 支持大小写字母、数字和下划线、不超过50个字符。 |
调用方式 | 异步调用是指云端执行调用后直接返回, 不会关心设备的回复消息, 如果服务为同步调用,云端会等待设备回复,否则会调用超时。 | 异步调用或同步调用任选其一。 |
输入参数 | 输入参数只可选择当前设备的属性,可多选,可为空。 | |
输出参数 | 输出参数只可选择当前设备的属性,可多选,可为空。 | |
描述 | 参数描述 1 | 00字以内 |
(3)物模型的每个事件包含以下字段
字段名称 | 字段说明 | 约束条件 |
---|---|---|
名称 | 参数中文名 | 仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格), 必须以中文、英文或数字开头,长度不超过40个字符。 |
标识符 | 参数唯一英文标识 | 支持大小写字母、数字和下划线、不超过50个字符。 |
输出参数 | 输出参数只可选择当前设备的属性,可多选,可为空。 | |
描述 | 参数描述 | 100字以内 |
四、不同平台物模型规范区别
不同的平台有自己的物模型规范,各平台之间在抽象归纳的层级上有所差异,但实际使用时差别不大,都能实现统一物模型的目的。
(1)阿里
阿里的ICA联盟发布的物模型和上面介绍的很相似,分为属性、方法、事件。只是在支持的数据类型、单位上有所不同。
(2)小米
- 小米的物模型称作spec定义,由服务、属性、方法、事件组成,服务由若干属性、方法、事件组成,产品由若干服务组成,这样的架构更加灵活,它将具有某些功能组合的部件抽象成服务,
- 例如空调就是由风扇服务、空气调节服务、指示灯服务组成,增加“服务”层级的意义在于,只要定义了少量的服务,就可以通过不同组合描述不同产品的功能。
(3)京东
京东的模型定义比较简单,只有属性,属性变化时会上报,但由于没有“方法”参数,设备无法实现一些需要多个输入参数的复杂功能。