跳到主要內容

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

🔗 另請參閱