跳到主要内容

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 频道

  1. 打开 Microsoft Teams 并导航到用于检查通知的频道
  2. 点击频道名称旁边的三个圆点 (•••)
  3. 从下拉菜单中选择 "Manage channel"

1.2 添加 Incoming Webhook 连接器

  1. 在频道管理菜单中点击 "Connectors"
  2. 在连接器列表中搜索 "Incoming Webhook"
  3. 点击 Incoming Webhook 选项旁边的 "Add"

1.3 配置 Webhook 设置

  1. Name:输入一个描述性名称(例如,"OV10i Inspection Alerts")
  2. Icon:可选择上传自定义图标用于通知
  3. 点击 "Create" 生成 webhook

1.4 保存 Webhook URL

  1. 复制生成的 webhook URL —— 这对于 Node-RED 设置至关重要
  2. 将 URL 保存在安全位置(您将在第二步中用到它)
  3. 点击 "Done" 完成 Teams 设置

检查点: 您现在应该拥有一个类似如下格式的 webhook URL:https://yourcompany.webhook.office.com/webhookb2/...

第二步:访问 OV10i Node-RED

2.1 导航到 Node-RED

  1. 打开您的 OV10i Web 界面
  2. 转到程序编辑器并点击 Configure I/O,或从面包屑菜单中选择 "IO模块"

2.2 准备您的工作区

  1. 在 Node-RED 画布中清出一块区域用于 Teams 集成流程
  2. 识别左侧的调色板,其中包含可用节点
  3. 规划您的流程:触发 → 处理 → 发送到 Teams

第三步:构建 Node-RED 流程

3.1 添加所需节点

将以下节点从调色板拖到画布上:

  1. Inject 节点(用于测试)
  2. Function 节点(用于格式化消息)
  3. HTTP request 节点(用于发送到 Teams)
  4. Debug 节点(可选,用于故障排除)

3.2 连接节点

  1. 将 inject 输出连接到 function 输入
  2. 将 function 输出连接到 HTTP request 输入
  3. 将 HTTP request 输出连接到 debug 输入(可选)

流程结构:

Inject → Function → HTTP Request → Debug

第 4 步:配置 Function 节点

4.1 基本消息配置

  1. 双击 function 节点以打开配置
  2. 将默认代码替换为此基本消息格式:
// 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 配置

  1. 点击 "Done" 保存 function 节点
  2. 为节点命名,如 "Format Teams Message"

第 5 步:配置 HTTP Request 节点

5.1 设置 HTTP Request

  1. 双击 HTTP request 节点进行配置
  2. 设置 Method:从下拉菜单中选择 "POST"
  3. 设置 URL:粘贴第 1.4 步获取的 Teams webhook URL
  4. 设置 Return:选择 "UTF-8 string"

5.2 其他设置

  • Name:输入 "Send to Teams" 以便清晰识别
  • Headers:留空(由 function 节点处理)
  • Payload:保持为 "Ignore"(由 function 节点处理)

5.3 保存 HTTP 配置

  1. 点击 "Done" 保存 HTTP request 节点
  2. 验证 webhook URL 是否正确 - 这是成功的关键

第 6 步:测试集成

6.1 部署流程

  1. 点击右上角的 "Deploy" 按钮
  2. 等待 "Successfully deployed" 确认
  3. 检查节点上是否有任何错误指示(红色三角形)

6.2 使用 Inject 节点测试

  1. 点击 inject 节点左侧的按钮
  2. 检查 debug 面板(右侧边栏)是否有任何错误消息
  3. 验证消息是否出现在您的 Teams 频道中

6.3 验证 Teams 通知

  1. 切换到 Microsoft Teams 并检查目标频道
  2. 查找来自 OV10i 的测试消息
  3. 测试所有可点击的链接以确保它们正常工作

第 7 步:与检查流程集成

7.1 连接到检查结果

要在每次检查后发送自动通知:

  1. 找到您的主检查流程(通常以 "All Block Outputs" 开头)
  2. 将您的 Teams 通知作为主流程的分支添加
  3. 在检查处理之后但在最终结果之前进行连接

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 调试您的流程

  1. 在每个步骤后添加 debug 节点以追踪数据流
  2. 检查 debug 面板中的错误消息和数据结构
  3. 使用 inject 节点测试以隔离配置问题
  4. 必要时使用外部工具验证 webhook URL

8.3 网络连接

  1. 确保 OV10i 可以访问互联网(从相机进行 ping 测试)
  2. 检查防火墙设置,避免阻止出站 HTTPS
  3. 验证 DNS 解析是否能解析 Teams webhook URL
  4. 从浏览器测试,使用与相机相同的网络

成功!您的 Teams 集成已完成

您的 OV10i 相机现在可以:

自动发送通知到 Microsoft Teams 频道

包含可点击的图像链接,便于立即查看检查结果

基于检查结果过滤通知

提供丰富的格式,包含检查详情和时间戳

支持多个频道用于不同类型的通知

最佳实践

消息管理

  • 使用描述性的频道名称区分不同类型的通知
  • 在消息中包含时间戳和工位标识
  • 过滤消息以避免通知过载
  • 生产部署前充分测试

安全考虑

  • 保护 webhook URL —— 将其视为敏感凭证
  • 使用 HTTPS 进行所有通信(Teams 默认启用)
  • 限制网络访问,仅允许必要的服务
  • 若 webhook URL 泄露,应定期轮换

性能优化

  • 批量发送通知(当需要发送大量消息时)
  • 使用适当的重试逻辑应对网络故障
  • 监控消息送达成功率
  • 实施速率限制以避免触发 Teams API 限制

image.png

后续步骤

设置 Teams 集成后:

  1. 为不同的检查类型创建不同的通知频道
  2. 为严重故障设置升级工作流
  3. 与其他团队工具集成(电子邮件、短信等)
  4. 构建仪表板,将 Teams 与其他监控工具结合使用
  5. 培训您的团队响应自动化通知
跳过手动设置

Integration Builder 可以根据简单的英文描述生成完整的 Teams 通知流程。描述您的需求(例如:"当零件失败时,将检查结果和图像发布到 Teams 频道"),即可在数秒内获得可用于生产的 Node-RED 流程。

🔗 另请参阅