物模型简介
物模型,即Thing Description,简称TD。顾名思义,物模型就是对物的描述,其序列化(文本化)形式是一个JSON文档。 简单起见,可以将TD看成是描述物及其能力的入口(就像一个网站的index.html)。一个TD的实例由4个部分组成:关于物体本身的元数据、表示如何使用物体的交互可识别功能、方便机器理解的数据交互模式和与物体相关的其他物体或资源的链接。 WoT交互模型定义了三种交互可识别功能:属性、动作和事件 。
- 「属性」可用于检测和控制参数,如取得当前属性的值或设置某个操作状态。
- 「动作」对物理(因而耗时的)流程建模,也可用于抽象类似RPC的对既有平台的调用。
- 「事件」用于推送通信模型,异步将通知、离散事件或值流发送给接收者。
物模型样例参考:
{
"@context": [
"https://www.w3.org/2019/wot/td/v1"
],
"id": "urn:midea-iot-spec-v1:thing-v:0000:13",
"title": "Lamps",
"version": {
"instance": {
"td": "1.0.0"
}
},
"description": "灯具通用品类设备通用能力描述",
"securityDefinitions": {
"nosec_sc": {
"scheme": "nosec"
}
},
"security": [
"nosec_sc"
],
"properties": {
"power": {
"type": "boolean",
"description": "开关灯,true表示开灯,false表示关灯"
},
"brightValue": {
"type": "integer",
"description": "当前亮度,范围:1~255",
"minimum": 1,
"maximum": 255
},
"screenModel": {
"type": "string",
"description": "场景模式",
"enum": [{
"value": "manual",
"description": "手动模式"
},
{
"value": "life",
"description": "生活模式"
},
{
"value": "read",
"description": "阅读模式"
},
{
"value": "mild",
"description": "柔和模式"
},
{
"value": "film",
"description": "影院模式"
},
{
"value": "moon",
"description": "夜晚模式"
}
]
}
},
"actions": {
"togglePower": {
"title": "开关灯",
"description": "开关灯",
"input": {
"type": "object",
"properties": {
"power": {
"type": "boolean",
"description": "开关灯,true表示开灯,false表示关灯"
}
}
},
"output": {
"type": "object",
"properties": {
"power": {
"type": "boolean",
"description": "开关灯,true表示开灯,false表示关灯"
}
}
}
},
"setBrightValue": {
"title": "调节亮度",
"description": "调节亮度",
"input": {
"type": "object",
"properties": {
"brightValue": {
"type": "integer",
"description": "当前亮度,范围:1~255",
"minimum": 1,
"maximum": 255
}
}
},
"output": {
"type": "object",
"properties": {
"brightValue": {
"type": "integer",
"description": "当前亮度,范围:1~255",
"minimum": 1,
"maximum": 255
}
}
}
}
},
"events": {
"fullStatusNotify": {
"title": "状态上报",
"description": "状态上报",
"data": {
"power": {
"type": "boolean",
"description": "开关灯,true表示开灯,false表示关灯"
},
"brightValue": {
"type": "integer",
"description": "当前亮度,范围:1~255",
"minimum": 1,
"maximum": 255
}
}
}
}
}