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 流程。