Nx Witness Generic Event 的 HTTP API
Nx Witness 提供了一個 HTTP API,允許外部系統或應用程式觸發其內部的「通用事件」(Generic Event)。
這是實現第三方整合和自動化的常用方法。
API 端點 (Endpoint): 通常是 http://<NX伺服器IP或主機名>:<端口>/api/createEvent
<NX伺服器IP或主機名>: 你的 Nx Witness Media Server 的 IP 位址或主機名稱。
<端口>: Nx Witness Server 的 HTTP 端口,預設通常是 7001,但可能在安裝時被修改。
請求方法 (Method): 通常使用 GET 或 POST 方法。使用 GET 時,參數會附加在 URL 後面;使用 POST 時,參數通常放在請求主體 (Request Body) 中(例如使用 application/x-www-form-urlencoded 或 application/json 格式)。官方文件建議或範例可能會偏好其中一種。
必要參數 (Parameters): 觸發通用事件時,你通常需要提供一些參數來描述這個事件,這些參數會被 Nx Witness 的「事件規則」(Event Rules) 用來匹配和觸發後續動作。常見的參數包括:
source: 事件的來源標識,例如 "門禁系統"、"感應器A"。
caption: 事件的標題或簡短描述,例如 "前門開啟"、"偵測到移動"。
description: 事件的詳細描述(可選)。
metadata: 可以用 JSON 格式傳遞更複雜的結構化數據(可選)。
身份驗證 (Authentication): 對 API 的請求通常需要身份驗證。Nx Witness 支援多種驗證方式:
HTTP Digest Authentication: 使用 Nx Witness 用戶的帳號密碼。
Bearer Token Authentication: 建議的方式,可以為特定應用程式或整合產生一個長期有效的 Token,避免直接暴露用戶密碼。
範例 (使用 GET):
http://192.168.1.100:7001/api/createEvent?source=SensorX&caption=MotionDetected&description=Motion%20detected%20in%20Warehouse%20Zone%201
(請記得對參數值進行 URL 編碼,例如空格變成 %20)
重要提示: 請務必查閱你所使用的 Nx Witness 版本的官方 API 文件 (通常可以在 Nx Witness Portal 或安裝的伺服器上找到),以獲取最準確的端點、參數和驗證方法。
利用此 API 可以做出什麼事件通知 (或動作)?
單獨調用 createEvent API 只是在 Nx Witness 系統中「登記」了一個通用事件。
這個事件本身不會直接產生通知。
它的真正威力在於和 Nx Witness 的 「事件與動作規則 (Event Rules)」 引擎結合:
觸發條件: 你可以在 Nx Witness Client 的「事件規則」設定中,新增一個規則,選擇「當發生通用事件時 (Generic Event occurs)」作為觸發條件。
過濾: 你可以設定過濾條件,讓規則只對特定 source、caption 或 description 的通用事件做出反應。例如,只對 source="門禁系統" 且 caption="強行闖入" 的事件反應。
執行動作: 當符合條件的通用事件被 API 觸發時,這個規則就會執行你設定的動作。這些動作可以包括:
發送移動應用程式推播通知: 給指定的 Nx Mobile 用戶。
發送 Email 通知: 給指定的郵箱地址。
在客戶端顯示彈出通知: 在操作員的 Nx Client 畫面上顯示訊息。
開始/停止錄影: 在指定的攝影機上。
建立書籤 (Bookmark): 在相關攝影機的時間軸上標記事件。
播放聲音: 在伺服器或客戶端上。
說出文字 (Text-to-Speech): 在伺服器或客戶端上。
執行 PTZ 預設位: 移動攝影機到指定位置。
觸發另一個 HTTP 請求: 將事件資訊轉發給其他系統,可透過次方式呼叫其他APP或連動其他軟體。
寫入日誌 (Write to log): 在 Nx Witness 事件日誌中記錄。
顯示文字疊加 (Show text overlay): 在攝影機畫面上顯示文字。
觸發軟觸發器 (Soft Trigger): 啟動或停止界面上的虛擬按鈕。
總結: 你可以透過 API 觸發一個「標籤」,然後在 Nx Witness 內部設定規則,決定看到這個「標籤」時要做什麼通知或動作。這提供了極大的靈活性。