跳到主要内容

AI 驱动文档

您想了解什么?

使用 Node-RED 向 Microsoft Teams 发送消息

本教程演示如何将来自 OV10i 摄像头的检验通知直接发送到 Microsoft Teams 频道。您将学习如何设置包含检验结果和可点击图片链接的自动化提醒,使您的团队能够即时了解生产状态。

您将构建的内容: 一个自动化系统,将 OV10i 的检验结果(包括图片和通过/不通过状态)直接发布到 Microsoft Teams 频道。

实际应用场景: 在检验不合格时即时通知、与远程团队共享检验图片,或在团队协作空间中创建自动化质量报告。

先决条件

  • OV10i 摄像头已连接到工厂网络
  • 具备添加连接器权限的 Microsoft Teams 账户
  • 希望接收通知的 Teams 频道
  • OV10i 与 Microsoft Teams 之间的网络连通性
  • 对 Node-RED 流程的基本了解

教程概览

我们将构建: 一个 Node-RED 流,能够自动将检验结果发送到 Microsoft Teams,并附带可点击的图片链接。

所需时间: 15-20 分钟

学习技能: Teams webhook 集成、Node-RED HTTP 请求、自动化通知系统

步骤 1:配置 Microsoft Teams Webhook

1.1 访问您的 Teams 频道

  1. 打开 Microsoft Teams,并导航至用于检验通知的频道
  2. 在频道名称旁边点击 三点图标 (•••)
  3. 从下拉菜单中选择 “管理频道”

1.2 添加 Incoming Webhook 连接器

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

1.3 配置 Webhook 设置

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

1.4 保存 Webhook URL

  1. 复制生成的 webhook URL——这是 Node-RED 设置的关键
  2. 将 URL 保存到安全位置(在第 2 步中将需要它)
  3. 点击 "Done" 以完成 Teams 设置

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

步骤 2:访问 OV10i Node-RED

2.1 导航到 Node-RED

  1. 打开您的 OV10i Web 界面
  2. 转到 Recipe Editor,点击 Configure I/O,或从面包屑菜单中选择 "IO Block"

2.2 准备工作区

  1. 在 Node-RED 画布中清除一个区域,用于 Teams 集成流程
  2. 在左侧识别包含可用节点的调色板
  3. 规划您的流程:Trigger → Process → Send to Teams

步骤 3:构建 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

Step 4: Configure the Function Node

4.1 基本消息配置

  1. 双击函数节点 以打开配置
  2. 用以下基本消息格式替换默认代码:
// Basic Teams message
msg.headers = {
"Content-Type": "application/json"
};

msg.payload = {
text: "You got a new message from your OV20i"
};

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 保存函数节点配置

  1. 点击 "Done" 以保存函数节点
  2. 为节点取一个描述性名称,如 "Format Teams Message"

Step 5: Configure HTTP Request Node

5.1 设置 HTTP 请求

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

5.2 其他设置

  • Name:输入 "Send to Teams" 以提高清晰度
  • Headers:保持为空(由 function node 处理)
  • Payload:保持为 "Ignore"(由 function node 处理)

5.3 保存 HTTP 配置

  1. 点击 "Done" 保存 HTTP 请求节点
  2. 验证 webhook URL 是否正确 - 这对成功至关重要

Step 6: Test Your Integration

6.1 部署流程

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

6.2 使用 Inject 节点进行测试

  1. 点击注入节点左侧的按钮
  2. 检查调试面板(右侧边栏)中的错误信息
  3. 在你的 Teams 频道中验证消息是否显示

6.3 验证 Teams 通知

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

Step 7: Integration with Inspection Flow

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 中没有消息调试显示成功但未收到 Teams 通知检查 webhook URL,验证网络连接性
HTTP 错误 400调试中的 Bad request 错误检查消息格式,确保 Content-Type 头
图像链接无法打开消息出现但图像无法打开验证图像 URL 是否可从 Teams 用户的网络访问
Flow 不会触发预期时没有调试输出检查流程连接,验证触发条件

8.2 调试你的流程

  1. 在每个步骤后添加调试节点 以跟踪数据流
  2. 检查调试面板 以获取错误信息和数据结构
  3. 使用 inject 节点进行测试 以排除配置问题
  4. 通过外部工具测试验证 webhook URL(如有需要)

8.3 网络连接性

  1. 确保 OV10i 能连接到互联网(摄像头的 ping 测试)
  2. 检查可能阻止出站 HTTPS 的防火墙设置
  3. 验证 Teams webhook URL 的 DNS 解析
  4. 在与相机同一网络的浏览器中进行测试

成功!您的 Teams 集成已完成

现在,您的 OV10i 摄像头可以:

将自动通知发送到 Microsoft Teams 通道

包含可点击的图像链接,以便立即进行检查回顾

根据检查结果过滤通知

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

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

最佳实践

信息管理

  • 为不同类型的通知使用描述性通道名称
  • 在消息中包含时间戳和站点标识符
  • 筛选消息,以避免通知过载
  • 在生产部署前进行全面测试

安全考量

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

性能优化

  • 在发送大量消息时进行批量通知
  • 对网络故障使用合适的重试逻辑
  • 监控消息投递的成功率
  • 实现速率限制,以避免 Teams API 限制

image.png

下一步

在完成 Teams 集成设置后:

  1. 为不同的检测类型创建通知通道,以覆盖各种检测类型
  2. 为关键故障设置升级工作流
  3. 与其他团队工具集成(邮件、短信等)
  4. 构建仪表板,将 Teams 与其他监控工具结合使用
  5. 培训贵团队以应对自动通知
跳过手动设置

The Integration Builder can generate complete Teams notification flows from a plain English description. Describe what you want (e.g., "post inspection results with images to a Teams channel when a part fails") and get a production-ready Node-RED flow in seconds.

🔗 相关链接