跳到主要內容

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

🔗 另請參閱​