AI 驅動文件
您想了解什麼?
使用 Node-RED 向 Microsoft Teams 傳送訊息
本教程將向您展示如何將來自 OV20i 相機的檢查通知直接傳送到 Microsoft Teams 頻道。您將學習如何設定自動警報,包括檢查結果和可點選的影象連結,使您的團隊能夠即時瞭解生產狀態。
您將構建的內容: 一個自動化系統,將 OV20i 檢查結果(包括影象和合格/不合格狀態)直接釋出到 Microsoft Teams 頻道。
實際應用: 在檢查失敗時立即收到通知,與遠端團隊共享檢查影象,或在團隊協作空間中建立自動化質量報告。
先決條件
- 連線到您工廠網路的 OV20i 相機
- 具有新增聯結器許可權的 Microsoft Teams 訪問許可權
- 您希望接收通知的 Teams 頻道
- OV20i 與 Microsoft Teams 之間的網路連線
- 對 Node-RED 流程的基本理解
教程概述
我們將構建的內容: 一個 Node-RED 流程,自動將檢查結果傳送到 Microsoft Teams,並附帶可點選的影象連結。
所需時間: 15-20 分鐘
學習的技能: Teams webhook 整合、Node-RED HTTP 請求、自動化通知系統
第一步:設定 Microsoft Teams Webhook
1.1 訪問您的 Teams 頻道
- 開啟 Microsoft Teams,並導航到檢查通知的頻道
- 點選頻道名稱旁邊的 三個點 (•••)
- 從下拉選單中選擇 "管理頻道"
1.2 新增傳入 Webhook 聯結器
- 在頻道管理選單中點選 "聯結器"
- 在聯結器列表中 搜尋 "傳入 Webhook"
- 點選傳入 Webhook 選項旁的 "新增"
1.3 配置 Webhook 設定
- 名稱:輸入描述性名稱(例如,“OV20i 檢查警報”)
- 圖示:可選地上傳自定義圖示用於您的通知
- 點選 "建立" 以生成 webhook
1.4 儲存 Webhook URL
- 複製生成的 webhook URL - 這對於 Node-RED 設定至關重要
- 將 URL 儲存 在安全的位置(您將在第二步中需要它)
- 點選 "完成" 以完成 Teams 設定
檢查點: 您現在應該有一個看起來像這樣的 webhook URL:https://yourcompany.webhook.office.com/webhookb2/...
第二步:訪問 OV20i Node-RED
2.1 導航到 Node-RED
- 開啟您的 OV20i 網路介面
- 轉到 配方編輯器,並點選 配置 I/O 或從麵包屑選單中選擇 "IO 塊"
2.2 準備您的工作區
- 在 Node-RED 畫布中清理一個區域 用於您的 Teams 整合流程
- 識別左側的調色盤,其中包含可用節點
- 規劃您的流程:觸發 → 處理 → 傳送到 Teams
第三步:構建 Node-RED 流程
3.1 新增所需節點
從調色盤中將以下節點拖到您的畫布上:
- 注入節點(用於測試)
- 功能節點(用於格式化訊息)
- HTTP 請求節點(傳送到 Teams)
- 除錯節點(可選,用於故障排除)
3.2 連線節點
- 將注入 輸出連線到 功能 輸入
- 將功能 輸出連線到 HTTP 請求 輸入
- 將 HTTP 請求 輸出連線到 除錯 輸入(可選)
流程結構:
Inject → Function → HTTP Request → Debug
第 4 步:配置功能節點
4.1 基本訊息配置
- 雙擊功能節點以開啟配置
- 用以下基本訊息格式替換預設程式碼:
// 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 儲存功能配置
- 點選 "完成" 以儲存功能節點
- 給節點一個描述性名稱,例如 "格式化 Teams 訊息"
第 5 步:配置 HTTP 請求節點
5.1 設定 HTTP 請求
- 雙擊 HTTP 請求節點以進行配置
- 設定方法:從下拉選單中選擇 "POST"
- 設定 URL:貼上您在步驟 1.4 中獲得的 Teams webhook URL
- 設定返回:選擇 "UTF-8 字串"
5.2 其他設定
- 名稱:輸入 "傳送到 Teams" 以便清晰
- 頭部:保持為空(由功能節點處理)
- 有效載荷:保持為 "忽略"(由功能節點處理)
5.3 儲存 HTTP 配置
- 點選 "完成" 以儲存 HTTP 請求節點
- 驗證 webhook URL 是否正確 - 這對成功至關重要
第 6 步:測試您的整合
6.1 部署流程
- 點選右上角的 "部署" 按鈕
- 等待 "成功部署" 確認
- 檢查節點上的任何錯誤指示(紅色三角形)
6.2 使用注入節點進行測試
- 點選注入節點左側的按鈕
- 檢查除錯面板(右側邊欄)是否有任何錯誤訊息
- 驗證訊息是否出現在您的 Teams 頻道中
6.3 驗證 Teams 通知
- 切換到 Microsoft Teams 並檢查您的目標頻道
- 查詢來自您的 OV20i 的測試訊息
- 測試任何可點選的連結以確保它們正常工作
第 7 步:與檢查流程整合
7.1 連線到檢查結果
要在每次檢查後傳送自動通知:
- 找到您的主要檢查流程(通常以 "所有塊輸出" 開頭)
- 將您的 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 中沒有訊息 | 除錯顯示成功但沒有 Teams 通知 | 檢查 webhook URL,驗證網路連線 |
| HTTP 錯誤 400 | 除錯中的錯誤請求 | 檢查訊息格式,確保 Content-Type 頭 |
| 影象連結無法開啟 | 訊息出現但影象無法開啟 | 驗證影象 URL 是否可從 Teams 使用者網路訪問 |
| 流程未觸發 | 預期時沒有除錯輸出 | 檢查流程連線,驗證觸發條件 |
8.2 除錯您的流程
- 在每個步驟後新增除錯節點 以追蹤資料流
- 檢查除錯面板 以獲取錯誤訊息和資料結構
- 使用注入節點進行測試 以隔離配置問題
- 透過外部工具測試 webhook URL 以進行驗證(如有必要)
8.3 網路連線
- 確保 OV20i 可以訪問網際網路 (從相機進行 ping 測試)
- 檢查可能阻止出站 HTTPS 的防火牆設定
- 驗證 Teams webhook URL 的 DNS 解析
- 在與相機相同的網路上從瀏覽器測試
成功!您的 Teams 整合已完成
您的 OV20i 相機現在可以:
✅ 向 Microsoft Teams 頻道傳送自動通知
✅ 包含可點選的影象連結 以便立即檢查
✅ 根據檢查結果過濾通知
✅ 提供豐富的格式,包括檢查細節和時間戳
✅ 支援多個頻道 用於不同型別的通知
最佳實踐
訊息管理
- 為不同型別的通知使用描述性頻道名稱
- 在訊息中包含時間戳 和站點識別符號
- 過濾訊息 以避免通知過載
- 在生產部署前進行徹底測試
安全考慮
- 保護 webhook URL - 將其視為敏感憑據
- 對所有通訊使用 HTTPS (Teams 預設)
- 限制網路訪問 僅限必要服務
- 定期輪換 webhook URL 以防被洩露
效能最佳化
- 批次傳送通知 如果傳送多條訊息
- 對網路故障使用適當的重試邏輯
- 監控訊息投遞 成功率
- 實施速率限制 以避免 Teams API 限制

下一步
設定 Teams 整合後:
- 為各種檢查型別建立不同的通知頻道
- 為關鍵故障設定升級工作流程
- 與其他團隊工具整合 (電子郵件、簡訊等)
- 構建儀表板 將 Teams 與其他監控工具結合
- 培訓您的團隊 以響應自動通知
跳過手動設定
整合構建器 可以根據簡單的英文描述生成完整的 Teams 通知流程。描述您想要的內容(例如,“當零件失敗時,將檢查結果和影象釋出到 Teams 頻道”),並在幾秒鐘內獲得生產就緒的 Node-RED 流程。