什么是物模型

物模型是产品数字化的描述,定义了产品的功能,物模型将不同品牌不同品类的产品功能抽象归纳,形成“标准物模型”,便于各方用统一的语言描述、控制、理解产品功能。

物模型由若干条“参数”组成,参数按描述的功能类型不同,又分为属性、方法和事件。

参数 说明
属性 一般用于描述设备状态,支持读取和设置
方法 设备可被外部调用的能力或方法,可设置输入参数和输出参数,参数必须是某个“属性”。相比于属性,服务可通过一条指令实现更复杂的业务逻辑
事件 用于描述设备上报云端的事件,可包含多个输入参数,参数必须是某个“属性”

标准参数

为了实现设备功能的统一理解,对于每个品类会定义一套“标准参数”,标准参数包含了某个品类可能用到的所有参数,开发者在定义产品物模型时优先从标准参数中选择,如果标准参数未包含的功能,可以定义“自定义参数”。

标准参数的意义

标准参数是以品类为维度,综合各品类设备功能,统一抽象的一组参数定义。

每个品类有一套标准参数,如“灯”品类的标准参数,定义了所有品牌的灯可能有的所有功能。各品类之间同样的功能保持参数一致,例如在“灯”品类的开关,“插座”品类的开关,乃至所有品类的开关都用同样的参数定义(“power”)。

这样高度抽象的物模型定义,是为了统一不同功能在不同设备上的表示方式,方便做通用功能时理解不同设备功能。例如在做语音控制设备开关时,只需要将“打开”这样的意图与“power”参数对应,即可实现所有设备的开关控制。

物模型字段详细说明

物模型的每个属性包含以下字段

字段名称 字段说明 约束条件
名称 参数中文名 “仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格),必须以中文、英文或数字开头,长度不超过40个字符。”
标识符 参数唯一英文标识 支持大小写字母、数字和下划线、不超过50个字符。
数据类型   必选,可选整数型、浮点型、枚举型、字符串。
枚举项 枚举值和解释 仅枚举值参数。

分为参数值和参数描述,参数值支持整形,不超过2个字符,参数描述支持中文、英文、数字、下划线,不超过20个字符,枚举项数量可自定义。

取值范围 数据范围 仅整形、浮点数。

可自定义,输入的数值范围不超过各类型数据所能表示的范围。

步长 取值间隔 仅整形、浮点数。

步长是指设备上报或下发数值时,递增或递减的间隔。步长只能是一个正数;整数型最小步长为1;浮点数最小步长为10^(-7);最大步长不能超出取值范围的差值。

数据长度 字符串长度 仅字符串参数。

整数,表示字符串最大长度,取值1-2048

单位 数据单位  
读写权限 读写权限 可选“读”“写”“读写” 表示参数的读写权限
描述 参数描述 100字以内

物模型的每个方法包含以下字段

字段名称 字段说明 约束条件
名称 参数中文名 仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格),必须以中文、英文或数字开头,长度不超过40个字符。
标识符 参数唯一英文标识 支持大小写字母、数字和下划线、不超过50个字符。
调用方式 异步调用是指云端执行调用后直接返回,不会关心设备的回复消息,如果服务为同步调用,云端会等待设备回复,否则会调用超时。 异步调用或同步调用任选其一。
输入参数   输入参数只可选择当前设备的属性,可多选,可为空。
输出参数   输出参数只可选择当前设备的属性,可多选,可为空。
描述 参数描述 100字以内

物模型的每个事件包含以下字段

字段名称 字段说明 约束条件
名称 参数中文名 仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格),必须以中文、英文或数字开头,长度不超过40个字符。
标识符 参数唯一英文标识 支持大小写字母、数字和下划线、不超过50个字符。
输出参数   输出参数只可选择当前设备的属性,可多选,可为空。
描述 参数描述 100字以内

不同平台物模型规范区别

不同的平台有自己的物模型规范,各平台之间在抽象归纳的层级上有所差异,但实际使用时差别不大,都能实现统一物模型的目的。

阿里

阿里的ICA联盟发布的物模型和上面介绍的很相似,分为属性、方法、事件。只是在支持的数据类型、单位上有所不同。

小米

小米的物模型称作spec定义,由服务、属性、方法、事件组成,服务由若干属性、方法、事件组成,产品由若干服务组成,这样的架构更加灵活,它将具有某些功能组合的部件抽象成服务,例如空调就是由风扇服务、空气调节服务、指示灯服务组成,增加“服务”层级的意义在于,只要定义了少量的服务,就可以通过不同组合描述不同产品的功能。

京东

京东的模型定义比较简单,只有属性,属性变化时会上报,但由于没有“方法”参数,设备无法实现一些需要多个输入参数的复杂功能。


0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注