您现在的位置是:首页 >技术杂谈 >物联网平台:一文读懂什么是物模型网站首页技术杂谈

物联网平台:一文读懂什么是物模型

jianqiang.xue 2023-07-07 12:00:03
简介物联网平台:一文读懂什么是物模型

一、什么是物模型

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

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

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

二、标准参数

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

(1)标准参数的意义

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

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

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

三、物模型字段详细说明

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

在这里插入图片描述

字段名称字段说明约束条件
名称参数中文名“仅支持中文、英文大小写、数字、部分常用符号(下划线,减号,括弧,空格),
必须以中文、英文或数字开头,长度不超过40个字符。”
标识符参数唯一英文标识支持大小写字母、数字和下划线、不超过50个字符。
数据类型必选,可选整数型、浮点型、枚举型、字符串。
枚举项枚举值和解释仅枚举值参数。 分为参数值和参数描述,参数值支持整形,不超过2个字符,
参数描述支持中文、英文、数字、下划线,不超过20个字符,枚举项数量可自定义。
取值范围数据范围仅整形、浮点数。 可自定义,输入的数值范围不超过各类型数据所能表示的范围。
步长取值间隔仅整形、浮点数。 步长是指设备上报或下发数值时,递增或递减的间隔。
步长只能是一个正数;整数型最小步长为1;浮点数最小步长为10^(-7);最大步长不能超出取值范围的差值。
数据长度字符串长度仅字符串参数。 整数,表示字符串最大长度,取值1-2048
单位数据单位
读写权限读写权限可选“读”“写”“读写” 表示参数的读写权限
描述参数描述100字以内

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

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

在这里插入图片描述

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

在这里插入图片描述

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

四、不同平台物模型规范区别

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

(1)阿里

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

(2)小米

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

(3)京东

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。