# ThingsBoard 规则链部署操作指南 ## 如何找到 "Deploy" 按钮 ### 方法 1:在规则链编辑器中(推荐) 1. **登录 ThingsBoard Web UI** - 访问:`http://localhost:8080` - 使用管理员账号登录 2. **进入规则链管理** - 点击左侧菜单:**Rule Chains**(规则链) - 或者直接访问:`http://localhost:8080/ruleChains` 3. **打开 Root Rule Chain** - 在规则链列表中,找到 **Root Rule Chain** - 点击 **Root Rule Chain** 名称进入编辑页面 4. **找到 Deploy 按钮** - 在规则链编辑器的**右上角**,有一个 **"Deploy"** 按钮(通常是橙色或蓝色) - 按钮位置:编辑器顶部工具栏右侧 - 按钮文字:**"Deploy"** 或 **"部署"** ### 方法 2:通过规则链列表 1. **进入规则链列表** - 点击左侧菜单:**Rule Chains** 2. **找到 Root Rule Chain** - 在规则链列表中,找到 **Root Rule Chain** 这一行 3. **点击操作按钮** - 在 **Root Rule Chain** 行的右侧,有一个 **"..."** 或 **操作菜单** - 点击后会显示下拉菜单 - 选择 **"Deploy"** 或 **"部署"** ### 方法 3:在规则链编辑器中(详细步骤) 1. **打开规则链编辑器** - 进入:`Rule Chains` → `Root Rule Chain` - 你会看到一个可视化的规则链编辑器界面 2. **查看顶部工具栏** - 编辑器顶部通常有多个按钮,包括: - **Save**(保存)- 保存配置但不部署 - **Deploy**(部署)- 保存并部署规则链 - **Import**(导入) - **Export**(导出) - **Clear**(清除) 3. **点击 Deploy 按钮** - 找到 **"Deploy"** 按钮(通常在右上角) - 点击后会: - 保存所有配置更改 - 重新部署规则链 - 触发所有节点重新初始化 ## 部署后的验证 ### 查看部署状态 部署后,你会看到: - 提示消息:**"Rule chain deployed successfully"** 或类似成功提示 - 如果失败,会显示错误信息 ### 检查日志 部署后,检查日志确认节点是否重新初始化: ```bash # 查看最新的规则链相关日志 docker logs mytb 2>&1 | tail -50 | grep -i "rule.*chain\|rule.*node\|mqtt.*init" # 查看 MQTT 节点初始化日志 docker logs mytb 2>&1 | grep -i "c5b9d6d0\|mqtt.*broker\|t-aaron\|10883" | tail -20 ``` ## 常见问题 ### Q1: 找不到 Deploy 按钮? **可能原因**: 1. 权限不足:确认你有管理员权限 2. 规则链是只读的:检查规则链是否被锁定 3. UI 版本不同:不同版本的按钮位置可能略有不同 **解决方法**: - 确认登录账号有 `TENANT_ADMIN` 权限 - 尝试刷新页面(F5 或 Ctrl+R) - 检查浏览器控制台是否有错误 ### Q2: 点击 Deploy 后没有反应? **检查步骤**: 1. 查看浏览器控制台(F12)是否有 JavaScript 错误 2. 检查网络请求是否成功(Network 标签页) 3. 查看 ThingsBoard 日志是否有错误 ### Q3: 部署后节点配置没有更新? **解决方法**: 1. **清除浏览器缓存**:Ctrl+Shift+R 强制刷新 2. **删除节点重新添加**: - 删除旧的 MQTT 节点 - 重新添加 MQTT 节点 - 配置新地址 - 保存并部署 3. **重启 ThingsBoard 容器**(最后手段): ```bash docker restart mytb ``` ## 按钮位置示意图 ``` ┌─────────────────────────────────────────────────┐ │ Rule Chains > Root Rule Chain │ ├─────────────────────────────────────────────────┤ │ [Save] [Import] [Export] [Clear] [Deploy] ←── 这里 ├─────────────────────────────────────────────────┤ │ │ │ 规则链可视化编辑器 │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │ │节点1│───→│节点2│───→│节点3│ │ │ └─────┘ └─────┘ └─────┘ │ │ │ └─────────────────────────────────────────────────┘ ``` ## 替代方法:通过 API 部署 如果 Web UI 无法使用,可以通过 REST API 部署: ```bash # 1. 先登录获取 JWT Token JWT_TOKEN=$(curl -s -X POST http://localhost:8080/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"tuoheng@t-aaron.com","password":"tuohengadmin"}' \ | jq -r '.token') # 2. 获取 Root Rule Chain ID(需要先获取) # 3. 部署规则链(需要规则链 ID) curl -X POST "http://localhost:8080/api/ruleChain/{ruleChainId}/deploy" \ -H "X-Authorization: Bearer $JWT_TOKEN" ``` ## 总结 **最简单的方法**: 1. 登录 ThingsBoard Web UI 2. 点击左侧菜单:**Rule Chains** 3. 点击 **Root Rule Chain** 进入编辑器 4. 在编辑器**右上角**找到 **"Deploy"** 按钮 5. 点击 **"Deploy"** 按钮 6. 等待部署完成(通常几秒钟) 部署成功后,MQTT 节点会使用新配置(`mqtt.t-aaron.com:10883`)重新初始化。