主页

索引

模块索引

搜索页面

物模型

三种功能元素:

1. 属性Property
    属性的特点是可读可写
2. 事件Event
    由产品设备在运行过程中产生的信息、告警和故障等
3. 动作Action
    也被称作服务(Service)
    动作由应用下发给设备,设备可以返回结果给应用
https://img.zhaoweiguo.com/knowledge/images/iots/thing_model1.jpeg

六种数据类型:

1. 布尔型(Bool)
    非真即假的二值型变量。例如,开关功能只有开、关两种状态
2. 整数型(Int)
    可用于线性调节的整数变量。例如,电灯的亮度是一个整数范围
3. 字符串型(String)
    以字符串形式表达的功能点。例如,灯的位置
4. 浮点型(Float)
    精度为浮点型的功能点。例如,电压值的范围是 0.0 - 24.0
5. 枚举型(Enum)
    自定义的有限集合值。例如,灯的颜色有白色、红色、黄色等
6. 时间型(Timestamp)
    String 类型的 UTC 时间戳

属性-智能电灯的开关属性:

{
  "id": "power_switch",   // 属性的唯一标识
  "name": "电灯开关",      // 名称
  "desc": "控制电灯开灭",   // 属性的详细描述
  "required": true,       // 表示此属性是否必需包含,是
  "mode": "rw",           // 属性的模式,r 代表读,w 代表写
  "define": {             // 属性的数值定义
    "type": "bool",       // 数值的类型,布尔
    "mapping": {          // 具体数值的含义
      "0": "关",           //0 表示灯关闭
      "1": "开"            //1 表示灯打开
    }
  }
}

事件-智能电灯的电压:

{
  "id": "low_voltage",      // 事件唯一标识
  "name": "LowVoltage",      // 事件名称
  "desc": "Alert for device voltage is low",  // 事件的描述
  "type": "alert",          // 事件的类型,告警
  "required": false,        // 表示此属性是否必需包含,否
  "params": [                // 事件的参数
    {
      "id": "voltage",        // 事件参数的唯一标识
      "name": "Voltage",      // 事件参数的名称
      "desc": "Current voltage",  // 参数的描述
      "define": {                 // 参数的数值定义
        "type": "float",          // 数值类型,浮点数
        "unit": "V",              // 数值的单位,伏
        "step": "1",              // 数值变化的步长,1
        "min": "0.0",              // 数值的最小值
        "max": "24.0",             // 数值的最大值
        "start": "1"                // 事件的起始值
      }
    }
  ]
}

继承的具体特征是:

1. 子模型继承父模型的所有要素,且继承的元素无法被修改
2. 子模型可以再被继承,支持多层的继承关系
3. 子模型可以创建独立的要素,但子模型中新增的要素不可以和所有上级父模型中的元素重名
4. 当父模型中的元素发生变更时,子模型中继承自父模型的元素同步变更,保持与父模型一致
{
  "version": "1.0",            // 模型版本
  "properties": [              // 属性列表
    {
      "id": "power_switch",    // 电灯开关属性
      "name": "电灯开关",
      "desc": "控制电灯开灭",
      "required": true,
      "mode": "rw",
      "define": {
        "type": "bool",
        "mapping": {
          "0": "关",
          "1": "开"
        }
      }
    },
    {
      "id": "brightness",        // 亮度属性
      "name": "亮度",
      "desc": "灯光亮度",
      "mode": "rw",
      "define": {
        "type": "int",
        "unit": "%",
        "step": "1",
        "min": "0",
        "max": "100",
        "start": "1"
      }
    },
    {
      "id": "color",            // 电灯颜色属性
      "name": "颜色",
      "desc": "灯光颜色",
      "mode": "rw",
      "define": {
        "type": "enum",
        "mapping": {
          "0": "Red",
          "1": "Green",
          "2": "Blue"
        }
      }
    },
    {
      "id": "color_temp",        // 色温属性
      "name": "色温",
      "desc": "灯光冷暖",
      "mode": "rw",
      "define": {
        "type": "int",
        "min": "0",
        "max": "100",
        "start": "0",
        "step": "10",
        "unit": "%"
      }
    }
  ],
  "events": [                        // 事件列表
    {
      "id": "status_report",          // 运行状态报告
      "name": "DeviceStatus",
      "desc": "Report the device status",
      "type": "info",
      "required": false,
      "params": [                      // 事件参数列表
        {
          "id": "status",
          "name": "running_state",
          "desc": "Report current device running state",
          "define": {
            "type": "bool",
            "mapping": {
              "0": "normal",
              "1": "fault"
            }
          }
        },
        {
          "id": "message",
          "name": "Message",
          "desc": "Some extra message",
          "define": {
            "type": "string",
            "min": "0",
            "max": "64"
          }
        }
      ]
    },
    {
      "id": "low_voltage",            // 低电压告警事件
      "name": "LowVoltage",
      "desc": "Alert for device voltage is low",
      "type": "alert",
      "required": false,
      "params": [
        {
          "id": "voltage",
          "name": "Voltage",
          "desc": "Current voltage",
          "define": {
            "type": "float",
            "unit": "V",
            "step": "1",
            "min": "0.0",
            "max": "24.0",
            "start": "1"
          }
        }
      ]
    },
    {
      "id": "hardware_fault",            // 硬件错误事件
      "name": "Hardware_fault",
      "desc": "Report hardware fault",
      "type": "fault",
      "required": false,
      "params": [
        {
          "id": "name",
          "name": "Name",
          "desc": "Name like: memory,tf card, censors ...",
          "define": {
            "type": "string",
            "min": "0",
            "max": "64"
          }
        },
        {
          "id": "error_code",
          "name": "Error_Code",
          "desc": "Error code for fault",
          "define": {
            "type": "int",
            "unit": "",
            "step": "1",
            "min": "0",
            "max": "2000",
            "start": "1"
          }
        }
      ]
    }
  ],
  "actions": [],                  // 动作列表
  "profile": {                    // 产品参数
    "ProductId": "8D1GQLE4VA",    // 产品 ID
    "CategoryId": "141"            // 产品分类编号
  }
}

设备影子

备注

设备影子用于缓存设备状态。应用程序可以通过设备影子直接获取设备最后一次更新的属性值,而无需每次都访问设备。设备在线时,可以直接获取应用指令;设备离线后,再次上线可以主动拉取应用指令。

本质-应用程序和设备的解耦:

使用设备影子机制,设备只需要主动同步状态给设备影子一次,
多个应用程序请求设备影子获取设备状态,即可获取设备最新状态,做到应用程序和设备的解耦。

数字孪生

备注

物模型是物理实体的数字化模型,但主要针对的是物联网中应用的开发和设备的互操作。

特斯拉公司为其生产的每一辆电动汽车都建立了数字孪生模型,相关的模型数据保存在公司的数据库中,以便在测试中排查故障,为用户提供更好的服务。

主页

索引

模块索引

搜索页面