eclipse ditto 学习笔记

一、主要内容

本文主要记录eclipse ditto的学习笔记,内容会随时更新。官网学习模板如下:

数字孪生解析 • Eclipse 同理™ • 数字孪生框架

二、创建物设备

Properties与Desired Properties的区别

字段 比喻 谁产生数据 代表含义
Properties 员工当前正在做什么 现场设备 PLC 设备真实现状
Desired Properties 领导下发的工作指令 前端 / 平台系统 设备需要达到的目标

完整控制闭环流程(阀门案例)

  1. 前端点击 3D 模型阀门,下发指令:期望阀门打开 → Ditto 写入 features.actuator.desiredProperties.valveOpen = true
  2. Ditto 通过 EMQX 把期望指令发给 PLC
  3. PLC 收到指令,执行开阀动作
  4. PLC 上报硬件真实状态:阀门已打开 → Ditto 更新 features.actuator.properties.valveOpen = true
  5. 前端对比两者: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 个选项:

  1. local_ditto_ide:本地开发 IDE 环境(你当前正在使用)
  2. local_ditto:纯净本地单机环境
  3. ditto_sandbox:官方在线沙箱测试环境(云端演示,不用本地装 Docker)
  4. 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基础账号,适配公司内部登录系统,工厂多角色管理员场景使用。

四、界面解释

顶部导航栏

  1. Things:数字孪生设备列表(当前页面)
  2. Policies:权限策略管理(控制谁能读写设备)
  3. Connections:MQTT/HTTP 设备连接桥(对接 EMQX/PLC 硬件核心页面)
  4. Operations:后台任务、批量操作日志
  5. Environments :多环境隔离(你当前:local_ditto_ide 本地开发环境) 右上角 Authorize:登录鉴权按钮

五、其它

Thing ID 命名规则:<namespace>:<name>

Policies :每个事物都通过其 链接到一个策略。Policies 定义了哪种情况 经过认证的主体可以读取和写写该物品------细分到个体属性和特征 属性。

Definition:一个事物可以包含一个,将其链接到描述其能力的模型。该 定义可以是:definition

相关推荐
weixin_3831964717 分钟前
java基础面试题@Autowired和@Resource区别
java·开发语言
IPdodo_20 分钟前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip
sunly_1 小时前
TypeScript总结:16、面向对象速查
前端·javascript·typescript
云原生指北1 小时前
Docker Sandboxes 上手:从安装到第一次跑 Agent
运维·docker·容器
张元清1 小时前
React useInterval Hook:没有过期闭包的 setInterval (2026)
javascript·react.js
MXN_小南学前端1 小时前
React超长文本域中实现“返回顶部”浮动按钮
前端·javascript·react.js
言乐61 小时前
Python游戏水平测试辅助系统2
开发语言·windows·python·游戏·django
小马同学-1 小时前
高可用-Keepalived全解析
linux·运维
雨田哥1 小时前
3D 数字人的成长养成记
3d·数字人·3d数字人·陪伴·数伴·成长养成·3d数伴
我不是疯子是傻子1 小时前
Qt 实时曲线卡顿优化:从QPainter到OpenGL的3级加速实战
开发语言·qt