跳到主要内容

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 请求、自动化通知系统

第 1 步:设置 Microsoft Teams Webhook

1.1 访问您的 Teams 频道

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

1.2 添加 Incoming Webhook 连接器

  1. 在频道管理菜单中单击 “Connectors”(连接器)
  2. 在连接器列表中搜索 “Incoming Webhook”(传入 Webhook)
  3. 在 Incoming Webhook 选项旁边点击 “Add”(添加)

1.3 配置 Webhook 设置

  1. 名称(Name):输入一个描述性名称(例如“OV10i 检验警报”)
  2. 图标(Icon):可选,上传自定义图标用于通知
  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 网页界面
  2. 转到 配方编辑器,点击 配置 I/O,或从面包屑导航中选择 “IO Block”(IO 块)

2.2 准备工作区

  1. 在 Node-RED 画布上为你的 Teams 集成流程清出一个区域
  2. 识别左侧的调色板中可用的节点
  3. 规划你的流程:触发器 → 处理 → 发送到 Teams

第 3 步:构建 Node-RED 流

3.1 添加所需节点

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

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

3.2 连接节点

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

Flow structure:

Inject → Function → HTTP Request → Debug

第4步:配置 Function 节点

4.1 基本消息配置

  1. Double-click the function node 以打开配置
  2. Replace the default code 使用以下基本消息格式替换默认代码:
// 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" 以保存函数节点
  2. 为节点起一个描述性名称,如 "Format Teams Message"

第5步:配置 HTTP Request 节点

5.1 设置 HTTP 请求

  1. Double-click the HTTP request node 进行配置
  2. Set Method: 从下拉菜单选择 "POST"
  3. Set URL: 粘贴来自步骤 1.4 的 Teams webhook URL
  4. Set Return: 选择 "UTF-8 string"

5.2 附加设置

  • Name: 为清晰起见输入 "Send to Teams"
  • Headers: 保留为空(由 function node 处理)
  • Payload: 保持为 "Ignore"(由 function node 处理)

5.3 保存 HTTP 配置

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

第6步:测试您的集成

6.1 部署流程

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

6.2 使用 Inject Node 进行测试

  1. 点击注入节点左侧的按钮
  2. 检查调试面板(右侧边栏)是否有错误消息
  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 常见问题

问题症状解决方法
在 Microsoft Teams 中无通知调试显示成功但未收到 Microsoft Teams 通知检查 webhook URL,验证网络连通性
HTTP 错误 400调试中的错误请求检查消息格式,确保 Content-Type 标头
图像链接无法工作信息出现但图像无法打开验证图像 URL 是否可被 Teams 用户所在网络访问
流程未触发预期无调试输出检查流程连接,验证触发条件

8.2 调试您的 Flow

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

8.3 网络连通性

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

成功!您的 Teams 集成已完成

您的 OV10i 相机现在可以:

发送自动通知 到 Microsoft Teams 通道

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

基于检测结果筛选通知

提供带检测详情和时间戳的丰富格式

支持针对不同通知类型的多个通道

image.png

下一步

完成 Teams 集成后:

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

Integration Builder 可以根据简单的英文描述生成完整的 Teams 通知流程。描述你想要的内容(例如“当部件失败时,将带有图像的检查结果发布到 Teams 频道”)并在几秒钟内获得生产就绪的 Node-RED 流。

🔗 相关链接