AI 驱动文档
您想了解什么?
使用 Node-RED 向 Microsoft Teams 发送消息
本教程将向您展示如何将 OV10i 相机的检查通知直接发送到 Microsoft Teams 频道。您将学习如何设置自动化警报,其中包括检查结果和可点击的图像链接,让您的团队即时了解生产状态。
您将构建的内容: 一个自动化系统,可将 OV10i 检查结果(包括图像和通过/失败状态)直接发布到 Microsoft Teams 频道。
实际应用: 检查失败时获取即时通知、与远程团队共享检查图像,或在团队协作空间中创建自动化质量报告。
用简单的英语描述您需要的 Teams 通知,Auto-Integration Builder 将在数秒内为您生成完整的 Node-RED 流程。
先决条件
- OV10i 相机已连接到工厂网络
- 拥有添加连接器权限的 Microsoft Teams 访问权限
- 用于接收通知的 Teams 频道
- OV10i 与 Microsoft Teams 之间的网络连接
- 对 Node-RED 流程的基本了解
教程概览
我们将构建的内容: 一个 Node-RED 流程,可自动将检查结果发送到带有可点击图像链接的 Microsoft Teams。
所需时间: 15-20 分钟
学习技能: Teams webhook 集成、Node-RED HTTP 请求、自动化通知系统
第一步:设置 Microsoft Teams Webhook
1.1 访问您的 Teams 频道
- 打开 Microsoft Teams 并导航到用于检查通知的频道
- 点击频道名称旁边的三个圆点 (•••)
- 从下拉菜单中选择 "Manage channel"
1.2 添加 Incoming Webhook 连接器
- 在频道管理菜单中点击 "Connectors"
- 在连接器列表中搜索 "Incoming Webhook"
- 点击 Incoming Webhook 选项旁边的 "Add"
1.3 配置 Webhook 设置
- Name:输入一个描述性名称(例如,"OV10i Inspection Alerts")
- Icon:可选择上传自定义图标用于通知
- 点击 "Create" 生成 webhook
1.4 保存 Webhook URL
- 复制生成的 webhook URL —— 这对于 Node-RED 设置至关重要
- 将 URL 保存在安全位置(您将在第二步中用到它)
- 点击 "Done" 完成 Teams 设置
检查点: 您现在应该拥有一个类似如下格式的 webhook URL:https://yourcompany.webhook.office.com/webhookb2/...
第二步:访问 OV10i Node-RED
2.1 导航到 Node-RED
- 打开您的 OV10i Web 界面
- 转到程序编辑器并点击 Configure I/O,或从面包屑菜单中选择 "IO模块"
2.2 准备您的工作区
- 在 Node-RED 画布中清出一块区域用于 Teams 集成流程
- 识别左侧的调色板,其中包含可用节点
- 规划您的流程:触发 → 处理 → 发送到 Teams
第三步:构建 Node-RED 流程
3.1 添加所需节点
将以下节点从调色板拖到画布上:
- Inject 节点(用于测试)
- Function 节点(用于格式化消息)
- HTTP request 节点(用于发送到 Teams)
- Debug 节点(可选,用于故障排除)
3.2 连接节点
- 将 inject 输出连接到 function 输入
- 将 function 输出连接到 HTTP request 输入
- 将 HTTP request 输出连接到 debug 输入(可选)
流程结构:
Inject → Function → HTTP Request → Debug
第 4 步:配置 Function 节点
4.1 基本消息配置
- 双击 function 节点以打开配置
- 将默认代码替换为此基本消息格式:
// Basic Teams message
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: "You got a new message from your OV10i"
};
return msg;
4.2 带图像链接的高级消息
对于带可点击图像的动态检查结果:
// Dynamic message with inspection image
let imageUrl = msg.payload.image_url;
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `Inspection Complete - [View Image](${imageUrl})`
};
return msg;
4.3 完整的检查通知
对于完整的检查详情:
// Complete inspection notification
const inspectionData = msg.payload;
const imageUrl = inspectionData.image_url;
const result = inspectionData.result ? "PASS" : "FAIL";
const timestamp = new Date().toLocaleString();
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `🔍 **Inspection ${result}** - ${timestamp}\n\n[View Image](${imageUrl})`
};
return msg;
4.4 保存 Function 配置
- 点击 "Done" 保存 function 节点
- 为节点命名,如 "Format Teams Message"
第 5 步:配置 HTTP Request 节点
5.1 设置 HTTP Request
- 双击 HTTP request 节点进行配置
- 设置 Method:从下拉菜单中选择 "POST"
- 设置 URL:粘贴第 1.4 步获取的 Teams webhook URL
- 设置 Return:选择 "UTF-8 string"
5.2 其他设置
- Name:输入 "Send to Teams" 以便清晰识别
- Headers:留空(由 function 节点处理)
- Payload:保持为 "Ignore"(由 function 节点处理)
5.3 保存 HTTP 配置
- 点击 "Done" 保存 HTTP request 节点
- 验证 webhook URL 是否正确 - 这是成功的关键
第 6 步:测试集成
6.1 部署流程
- 点击右上角的 "Deploy" 按钮
- 等待 "Successfully deployed" 确认
- 检查节点上是否有任何错误指示(红色三角形)
6.2 使用 Inject 节点测试
- 点击 inject 节点左侧的按钮
- 检查 debug 面板(右侧边栏)是否有任何错误消息
- 验证消息是否出现在您的 Teams 频道中
6.3 验证 Teams 通知
- 切换到 Microsoft Teams 并检查目标频道
- 查找来自 OV10i 的测试消息
- 测试所有可点击的链接以确保它们正常工作
第 7 步:与检查流程集成
7.1 连接到检查结果
要在每次检查后发送自动通知:
- 找到您的主检查流程(通常以 "All Block Outputs" 开头)
- 将您的 Teams 通知作为主流程的分支添加
- 在检查处理之后但在最终结果之前进行连接
7.2 集成流程示例
All Block Outputs → [Inspection Logic] → Final Pass/Fail
↓
Format Teams Message → Send to Teams
7.3 过滤通知(可选)
仅针对失败的检查发送通知:
// Only send notifications for failures
const inspectionResult = msg.payload.result;
if (!inspectionResult) { // Only if inspection failed
const imageUrl = msg.payload.image_url;
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `⚠️ **INSPECTION FAILED** - Immediate attention required\n\n[View Failed Image](${imageUrl})`
};
return msg;
} else {
return null; // Don't send message for passing inspections
}
第 8 步:故障排除
8.1 常见问题
| 问题 | 症状 | 解决方案 |
|---|---|---|
| Teams 中无消息 | Debug 显示成功但 Teams 中无通知 | 检查 webhook URL,验证网络连接 |
| HTTP 400 错误 | Debug 中显示请求错误 | 检查消息格式,确保 Content-Type 头正确 |
| 图像链接无效 | 消息可显示但图像无法打开 | 验证 Teams 用户网络可访问该图像 URL |
| 流程未触发 | 预期时未输出 debug 信息 | 检查流程连接,验证触发条件 |
8.2 调试您的流程
- 在每个步骤后添加 debug 节点以追踪数据流
- 检查 debug 面板中的错误消息和数据结构
- 使用 inject 节点测试以隔离配置问题
- 必要时使用外部工具验证 webhook URL
8.3 网络连接
- 确保 OV10i 可以访问互联网(从相机进行 ping 测试)
- 检查防火墙设置,避免阻止出站 HTTPS
- 验证 DNS 解析是否能解析 Teams webhook URL
- 从浏览器测试,使用与相机相同的网络
成功!您的 Teams 集成已完成
您的 OV10i 相机现在可以:
✅ 自动发送通知到 Microsoft Teams 频道
✅ 包含可点击的图像链接,便于立即查看检查结果
✅ 基于检查结果过滤通知
✅ 提供丰富的格式,包含检查详情和时间戳
✅ 支持多个频道用于不同类型的通知
最佳实践
消息管理
- 使用描述性的频道名称区分不同类型的通知
- 在消息中包含时间戳和工位标识
- 过滤消息以避免通知过载
- 生产部署前充分测试
安全考虑
- 保护 webhook URL —— 将其视为敏感凭证
- 使用 HTTPS 进行所有通信(Teams 默认启用)
- 限制网络访问,仅允许必要的服务
- 若 webhook URL 泄露,应定期轮换
性能优化
- 批量发送通知(当需要发送大量消息时)
- 使用适当的重试逻辑应对网络故障
- 监控消息送达成功率
- 实施速率限制以避免触发 Teams API 限制

后续步骤
设置 Teams 集成后:
- 为不同的检查类型创建不同的通知频道
- 为严重故障设置升级工作流
- 与其他团队工具集成(电子邮件、短信等)
- 构建仪表板,将 Teams 与其他监控工具结合使用
- 培训您的团队响应自动化通知
Integration Builder 可以根据简单的英文描述生成完整的 Teams 通知流程。描述您的需求(例如:"当零件失败时,将检查结果和图像发布到 Teams 频道"),即可在数秒内获得可用于生产的 Node-RED 流程。