Eclipse Ditto 物模型相关代码
一、概述本文主要就Hello World 教程 • Eclipse Ditto™ • 数字孪生框架 文章做一个梳理归纳。二、完整代码如下{ thingId: io.eclipseprojects.ditto:floor-lamp-0815, policyId: io.eclipseprojects.ditto:floor-lamp-0815, definition: https://eclipse-ditto.github.io/ditto-examples/wot/models/floor-lamp-1.0.0.tm.jsonld, attributes: { manufacturer: , serialNo: }, features: { Spot1: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/dimmable-colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/switchable-1.0.0.tm.jsonld ], properties: { dimmer-level: 0, color: { r: 0, g: 0, b: 0 }, on: false } }, Spot2: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/dimmable-colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/switchable-1.0.0.tm.jsonld ], properties: { dimmer-level: 0, color: { r: 0, g: 0, b: 0 }, on: false } }, Spot3: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/dimmable-colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/switchable-1.0.0.tm.jsonld ], properties: { dimmer-level: 0, color: { r: 0, g: 0, b: 0 }, on: false } }, ConnectionStatus: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/connection-status-1.0.0.tm.jsonld ], properties: { readySince: , readyUntil: } }, PowerConsumptionAwareness: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/power-consumption-aware-1.0.0.tm.jsonld ], properties: { reportPowerConsumption: {} } }, SmokeDetection: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/smoke-detector-1.0.0.tm.jsonld ] }, Status-LED: { definition: [ https://eclipse-ditto.github.io/ditto-examples/wot/models/colored-lamp-1.0.0.tm.jsonld, https://eclipse-ditto.github.io/ditto-examples/wot/models/switchable-1.0.0.tm.jsonld ], properties: { color: { r: 0, g: 0, b: 0 }, on: false } } } }三、创建一个物模型1创建“落地灯”的数字孪生设备curl -u ditto:ditto -X PUT -H Content-Type: application/json -d { definition: https://eclipse-ditto.github.io/ditto-examples/wot/models/floor-lamp-1.0.0.tm.jsonld, attributes: { manufacturer: ACME, serialNo: 0815666337 } } http://localhost:8080/api/2/things/io.eclipseprojects.ditto:floor-lamp-08152通过ID查询该设备curl -u ditto:ditto -X GET \ http://localhost:8080/api/2/things/io.eclipseprojects.ditto:floor-lamp-0815 | jq # if you have python installed, thats an alternative for pretty-printing: curl -u ditto:ditto -X GET \ http://localhost:8080/api/2/things/io.eclipseprojects.ditto:floor-lamp-0815 | python -m json.tool3添加带有状态的功能添加一个特征来表示灯的第一个聚光灯。特征保存动态状态数据如 传感器读数或设备配置curl -u ditto:ditto -X PUT -H Content-Type: application/json -d { properties: { on: false, dimmer-level: 0, color: { r: 0, g: 0, b: 0 } } } http://localhost:8080/api/2/things/io.eclipseprojects.ditto:floor-lamp-0815/features/Spot14检索当前灯的状态例如检索 当前开关状态Spot1curl -u ditto:ditto -X GET \ http://localhost:8080/api/2/things/io.eclipseprojects.ditto:floor-lamp-0815/features/Spot1/properties/on四、更新物模型数据1通过更新灯具属性来点亮灯具oncurl -u ditto:ditto -X PUT -H Content-Type: application/json -d true \ http://localhost:8080/api/2/things/io.eclipseprojects.ditto:floor-lamp-0815/features/Spot1/properties/on2查询产品curl -u ditto:ditto -X GET \ http://localhost:8080/api/2/search/things?filtereq(attributes/manufacturer,ACME)