物模型

功能说明

物模型是物理空间中的实体(如传感器、车载装置、楼宇、工厂等)在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、可以对外提供哪些信息。定义了物模型的这三个维度,即完成了产品功能的定义

功能类型说明
属性(Property)用于描述设备运行时具体信息和状态。例如,环境监测设备所读取的当前环境温度、智能灯开关状态、电风扇风力等级等。属性可分为读写和只读两种类型。读写类型支持读取和设置属性值,只读类型仅支持读取属性值。
服务(Service)指设备可供外部调用的指令或方法。服务调用中可设置输入和输出参数。输入参数是服务执行时的参数,输出参数是服务执行后的结果。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,例如执行某项特定的任务。服务分为异步和同步两种调用方式。
事件(Event)设备运行时,主动上报给云端的信息,一般包含需要被外部感知和处理的信息、告警和故障。事件中可包含多个输出参数。例如,某项任务完成后的通知信息;设备发生故障时的温度、时间信息;设备告警时的运行状态等。事件可以被订阅和推送。

物联网平台支持为产品定义多组功能(属性、服务和事件)。一组功能定义的集合,就是一个物模型模块。多个物模型模块,彼此互不影响。

物模型模块功能,解决了工业场景中复杂的设备建模,便于在同一产品下,开发不同功能的设备。

例如,电暖扇产品的功能属性有电源开关档位(高、中、低)室内温度,您可以在一个模块添加前2个属性,在另一个模块添加三个属性,然后分别在不同设备端,针对不同物模型模块功能进行开发。此时,该产品下不同设备就可以实现不同功能。

CREATE TABLE thing_model (
    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    model_id VARCHAR(64) UNIQUE NOT NULL COMMENT '物模型ID',
    model_name VARCHAR(100) NOT NULL COMMENT '物模型名称',
    model_version VARCHAR(20) NOT NULL DEFAULT '1.0' COMMENT '模型版本',
    product_key VARCHAR(64) COMMENT '产品标识(与产品唯一绑定)',
    product_id VARCHAR(64) COMMENT '产品ID',
    category VARCHAR(50) COMMENT '设备品类',
    protocol_type VARCHAR(30) COMMENT '协议类型(MQTT/CoAP/HTTP等)',
    description TEXT COMMENT '模型描述',
    status TINYINT DEFAULT 1 COMMENT '状态:0-启用,1-禁用',
    is_standard TINYINT DEFAULT 0 COMMENT '是否标准模型',
    extend_data JSON COMMENT '扩展字段',
   `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
   `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
   `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
   `update_time` datetime DEFAULT NULL COMMENT '更新时间'
) COMMENT='物模型';
CREATE TABLE thing_property (
    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    model_id VARCHAR(64) NOT NULL COMMENT '物模型ID',
    identifier VARCHAR(100) NOT NULL COMMENT '属性标识符',
    name VARCHAR(100) NOT NULL COMMENT '属性名称',
    data_type VARCHAR(30) NOT NULL COMMENT '数据类型:int/float/double/string/bool/enum/date/struct等',
    data_spec JSON COMMENT '数据规范(JSON格式)',
    unit VARCHAR(20) COMMENT '单位',
    access_mode TINYINT NOT NULL COMMENT '访问模式:1-只读,2-只写,3-读写',
    required TINYINT DEFAULT 0 COMMENT '是否必选:0-否,1-是',
    is_primary TINYINT DEFAULT 0 COMMENT '是否为主属性',
    description TEXT COMMENT '属性描述',
    sort_order INT DEFAULT 0 COMMENT '排序',
    extend_config JSON COMMENT '扩展配置',
    `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
   `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
   `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
   `update_time` datetime DEFAULT NULL COMMENT '更新时间'
) COMMENT='属性定义表';