一、主要内容
本文主要记录eclipse ditto的学习笔记,内容会随时更新。官网学习模板如下:
二、创建物设备
Properties与Desired Properties的区别
| 字段 | 比喻 | 谁产生数据 | 代表含义 |
|---|---|---|---|
| Properties | 员工当前正在做什么 | 现场设备 PLC | 设备真实现状 |
| Desired Properties | 领导下发的工作指令 | 前端 / 平台系统 | 设备需要达到的目标 |
完整控制闭环流程(阀门案例)
- 前端点击 3D 模型阀门,下发指令:期望阀门打开 → Ditto 写入
features.actuator.desiredProperties.valveOpen = true - Ditto 通过 EMQX 把期望指令发给 PLC
- PLC 收到指令,执行开阀动作
- PLC 上报硬件真实状态:阀门已打开 → Ditto 更新
features.actuator.properties.valveOpen = true - 前端对比两者:desired 和 properties 一致 → 控制执行成功
简单物模型如下:
{
"thingId": "com.example:warehouse-sensor-1",
"attributes": {
"location": "Warehouse B, Shelf 3"
},
"features": {
"temperature": {
"properties": {
"value": 22.5,
"unit": "Celsius"
}
}
}
}
三、运行环境解释
(1)Environments = 运行环境切换器 下拉列表 4 个选项:
local_ditto_ide:本地开发 IDE 环境(你当前正在使用)local_ditto:纯净本地单机环境ditto_sandbox:官方在线沙箱测试环境(云端演示,不用本地装 Docker)oidc_example:OIDC 统一身份认证演示环境(企业 SSO 登录专用)
(2)四个环境分别是什么场景
① local_ditto_ide(你当前选中)
本地开发调试环境,Docker Compose 完整启动全套 Ditto 服务,带 Explorer 可视化面板,日常写代码、调试 MQTT、对接 Three.js 前端都用这个。
② local_ditto
极简本地单机环境,去掉多余调试组件,轻量化部署,仅保留核心孪生服务。
③ ditto_sandbox
Eclipse 官方云端沙箱,网页直接在线体验 Ditto,不用本地安装 Docker,适合新手快速上手测试语法、API。
④ oidc_example
企业级权限演示环境,集成 OIDC 单点登录,替换默认ditto/ditto基础账号,适配公司内部登录系统,工厂多角色管理员场景使用。
四、界面解释
顶部导航栏
- Things:数字孪生设备列表(当前页面)
- Policies:权限策略管理(控制谁能读写设备)
- Connections:MQTT/HTTP 设备连接桥(对接 EMQX/PLC 硬件核心页面)
- Operations:后台任务、批量操作日志
- Environments :多环境隔离(你当前:
local_ditto_ide本地开发环境) 右上角Authorize:登录鉴权按钮

五、其它
Thing ID 命名规则:<namespace>:<name>
Policies :每个事物都通过其 链接到一个策略。Policies 定义了哪种情况 经过认证的主体可以读取和写写该物品------细分到个体属性和特征 属性。
Definition:一个事物可以包含一个,将其链接到描述其能力的模型。该 定义可以是:definition