配置: 使用 MQTT

關於

MQTT 是 Message Queuing Telemetry Transport 的简称,是一种轻量级且高效的消息传输协议,广泛用于物联网 (IoT) 中的设备间通信。它设计用于在网络带宽受限且低功耗设备的环境下运行,非常适合连接远程传感器、移动设备和各种小型设备到互联网。

Agent DVR 可以向 MQTT 发布事件并通过它接收命令,使其成为连接摄像头与智能家居或家庭自动化系统之间的灵活桥梁。

連接

使用「設定」選單將 Agent DVR 連接到您的 MQTT 伺服器。連接後,您可以設定警示動作以將訊息發佈到 MQTT 伺服器。詳見 MQTT 伺服器設定

若要設定此功能,請編輯您的裝置並在選單中選擇「動作」。為警示(或其他事件)新增動作,並選擇 MQTT 作為工作類型。在此,您可以指定要發佈的主題和訊息。

Adding action for MQTT

指定要發佈到的主題(例如 Agent/alerts)並相應地編寫您的訊息。

發送指令

Agent DVR 也可以在 SERVER/commands 主题上接收和处理 MQTT 消息,其中 SERVER 是您的服务器名称(在服务器菜单中显示,可在设置中编辑)。服务器名称中的任何斜杠、下划线和连字符都会从 MQTT 主题中删除。这些命令的格式类似于 HTTP API。只需将 /command 替换为 cmd=:

要打开所有设备:cmd=allon

要在特定设备上拍照:cmd=snapshot&ot=2&oid=1

使用 mosquitto,您可以发送类似的命令(将 SERVER 替换为您的服务器名称):

mosquitto_pub -t 'SERVER/commands' -m 'cmd=record&ot=2&oid=1'

Agent DVR 将执行该命令并向 SERVER/responses 主题发送 JSON 响应。

自動 MQTT

Agent DVR 具有自动 MQTT 配置,可发送默认事件、状态和使用统计。要激活此功能,请在编辑设备时在 MQTT 标签页启用"MQTT 事件"选项。

此配置包括用于运动、已连接、警报、录制、延时摄影、警报(武装状态)和检测器(运动检测开/关)等主题的标志。

如果您使用 Home Assistant,无需直接处理这些主题:请参阅 Home Assistant 了解自动设置。

故障排除

如果您在 MQTT 中遇到频繁的断开和重新连接,这通常表示服务器设置中的 MQTT 下指定的客户端 ID 正被多个客户端使用。务必确保连接到 MQTT 的每个客户端都具有唯一的客户端 ID。

家庭助理

Agent DVR 可以使用 MQTT discovery 自動向 Home Assistant 宣佈其設備。您的攝像頭和麥克風隨後會在 Home Assistant 中顯示為具有感測器和開關的設備,無需 YAML 配置即可在儀表板和自動化中使用。

您將獲得什麼

  • 動作感測器:偵測器檢測到活動時開啟。
  • 警報感測器:設備發出警報時開啟。
  • 連接感測器:設備是否在線。
  • 錄製感測器:設備正在錄製時開啟。
  • 啟用開關:從 Home Assistant 開啟或關閉設備。
  • 警報開關:從 Home Assistant 啟用或禁用警報。
  • 偵測器開關:從 Home Assistant 開啟或關閉動作偵測。

啟用 發送統計資訊 後,伺服器也會顯示為具有 CPU、記憶體和磁碟使用量感測器的設備。當 Agent DVR 離線時,所有實體在 Home Assistant 中顯示為不可用。

設定方法

您需要一個 MQTT broker(通常是 Home Assistant 機器上的 Mosquitto 外掛程式)和連接到該 broker 的 Home Assistant MQTT 整合。Agent DVR 無需開啟額外連接埠:它像 Home Assistant 一樣向 broker 建立連出連接。

在新安裝時,只需在歡迎畫面上 Home Assistant 下輸入 broker 的地址和登入資訊。就這樣:MQTT 和 discovery 會自動開啟,之後新增的每個攝像頭和麥克風都會自動出現在 Home Assistant 中。

若要稍後設定(或在現有安裝上),請前往 伺服器設定 - MQTT,配置 broker 並同時啟用 啟用Home Assistant Discovery。然後在要發佈的每個設備上啟用 MQTT 事件(編輯設備時的 MQTT 分頁)。discovery 開啟時新增的設備會自動啟用 MQTT 事件;之前存在的設備保持其目前設定。

注意事項

  • Agent DVR 連接到 broker 後的幾秒內,設備會出現在 Home Assistant 中。重新命名設備或切換 MQTT 事件會自動更新 Home Assistant。
  • 進階 MQTT 設定中的 Discovery Prefix 必須與 Home Assistant MQTT 整合中的 discovery prefix 相符。除非您知道已更改,否則將兩者都保留在預設值 (homeassistant)。
  • 關閉 Home Assistant Discovery 會從 Home Assistant 中移除實體。
  • 開關在內部使用 Agent DVR 的 MQTT 命令,因此 MQTT 網路上的任何其他應用都可以傳送相同的命令。