移动应用程序
我们的移动应用允许您通过本地局域网或我们的远程服务进行连接。它们可用于 Android 和 iOS 设备。
Python 包装器
这里有一个用于基本UI功能的Python包装器:agent-py 。
URL 参数
您可以通过调用 Agent DVR 网址(区分大小写)来打开到特定视图的 Agent DVR:
- ?start=Live&viewIndex=3(视图 3 上的直播中视图)
- ?start=Live&viewIndex=3&ot=2&oid=2&max=true(视图 3 上的直播中视图,摄像头 id 2 已最大化)。"oid" 是设备的对象 id(在编辑摄像头时显示在对话框顶部),"ot" 是对象类型 - 1 = 麦克风,2 = 摄像头。
- ?start=TimeMachine(时间机器视图)
- ?start=Timeline(时间轴视图)
- ?start=Photos(照片视图)
- ?start=Recordings(录像文件视图)
- ?start=Floorplans&planIndex=2(楼层平面图视图,平面图 2)
- ?start=VR(虚拟现实)
您可以使用特定语言打开 Agent DVR(绕过语言选择)。只需传入 2 个字母的语言代码:?lang=fr
您可以使用筛选器参数传入已保存的筛选器的名称以应用它 - 例如:?start=Recordings&filter=intruder。您也可以使用 javascript 刻度为筛选器传入开始和结束时间。例如 ?start=timeline&from=1657841514949&to=1657852514949。
设置默认主题选项(主题选项在账户菜单 - 主题设置中可用):
- ?theme=darkly&variant=dark&large=false
- ?theme=sketchy&variant=primary&large=true
加载时自动播放音频(可能还需要更改浏览器设置):
- ?playaudio=true
以最小化模式启动(隐藏顶部和底部 UI 栏):
- ?mini=true
传入本地用户名和密码以自动登录(警告 - 这会将您的凭据暴露给网络):
- ?un=username&pwd=password
按警报 id 打开特定警报(在警报 json 中):
- ?alertid=xxx
命令
要在 Agent DVR 中访问命令,请点击 Agent DVR 用户界面右上角的服务器图标,并在系统下选择"命令"。快速快捷方式是按"Alt-C"。
Agent DVR 包含几个预建的命令,可以同时控制多个设备。这些命令利用 API 来执行各种任务。您可以灵活地添加自己的自定义命令来调用 API 或在计算机上运行软件。
调用脚本文件
要执行通用脚本文件,只需将 .bat 文件(在 Linux/macOS 上为 .sh 文件)添加到命令目录。脚本的文件名(不包括扩展名)将出现在命令列表中,可以点击运行。注意:您可能需要重新加载用户界面才能显示。
调用 API
在安装 Agent DVR 的命令文件夹中创建一个新的 .bat 文件。第一行应该是:
REM ispy-internal
这一行表示该文件应由 Agent DVR 内部处理,而不是作为独立应用程序执行。
后续行被解释为 Agent DVR API 的命令。例如:
REM ispy-internal
switchon&group=external
switchoff&group=internal
record&group=external
broadcast 'external cameras are on and recording'
这些命令以 /command.cgi?cmd=... 的格式附加到 API 调用中。因此,您可以使用 API 中提供的任何命令。
上面的示例命令将激活所有标记为"外部"的设备,停用所有"内部"设备,在"外部"设备上开始录制,并向所有已连接的客户端发送广播消息。
请参考readme命令按钮获取示例以及 API 文档以了解可用命令的列表。
重新加载用户界面后并按"Shift-Alt-C",您的新命令应该在列表中可见。点击它来执行。
从版本 3.8.1.0+ 开始,您可以在命令中使用位置名称(例如,switchon&location=home)。只需先为您的设备分配位置!
Amazon Alexa
从版本 2.9.5.0 开始,Agent DVR 提供 Amazon Alexa 集成。此功能允许您通过启用 Alexa 的设备使用语音命令控制 Agent DVR。您可以启用或禁用系统,或在 Alexa Show 设备上显示实时视频源。
要进行设置,请在 Agent DVR 的服务器菜单中的集成下选择"Alexa"。这会将您重定向到 Amazon 以链接您的账户。
链接后,运行 Alexa 的发现过程。它应该会找到两个设备:安全面板和摄像头控制。
现在您可以使用语音命令,例如:
- "Alexa,启用家庭模式的 Agent"
- "Alexa,显示 Agent 摄像头"
在 Agent DVR 设置中设置您的安全代码以执行需要身份验证的操作。默认代码是 1234。
Alexa 配置文件(家庭/离开/夜间)与 Agent DVR 中的配置文件相匹配。在服务器 - 配置文件中配置它们。
对于多个服务器,在设置中设置服务器名称,并在语音命令中使用它。
Home Assistant
Agent DVR 与 Home Assistant 完全集成,允许你将 Agent DVR 添加到你的 Home Assistant 设置中。在 lovelace UI 中嵌入 Agent DVR 面板或选择各个摄像头。它还包括对主安全面板的控制。有关更多信息,请参阅服务器 - 集成下的 Home Assistant 链接。
Agent DVR 也可以通过 MQTT 将其设备作为传感器和开关发布到 Home Assistant:请参阅 Home Assistant MQTT 发现。
更喜欢用自然语言提问?Agent DVR 还可以与 Claude、ChatGPT 和 Gemini CLI 等 AI 助手配合使用;请参阅连接 AI 助手。
ioBroker
ioBroker 用户可以通过社区维护的 ioBroker.agent-dvr 适配器将 Agent DVR 连接起来(也可在 npm 上找到)。它通过本地 HTTP API 与 Agent DVR 通信,因此可与本网络上的免费版本一起使用。
您可以获得的内容
- 数据点:每个摄像头会自动被发现,其属性(在线、录制、已检测、警报、分辨率等)会镜像为 ioBroker 状态,供脚本和可视化使用。
- 控件:录制、快照、布防和撤防、打开和关闭、探测器和计划任务开关、灵敏度、带预设的 PTZ 以及系统级布防、撤防、配置文件选择和重启。
- 实时仪表板和录像文件:ioBroker 提供的内置仪表板,包含每个摄像头的 MJPEG、FLV 或 go2rtc 流,以及带有回放和删除功能的录像文件浏览器。
- 实时更新:在 Agent DVR 中将适配器的 webhook URL 添加为呼叫 URL 操作,这样 ioBroker 就能在警报和新录像时立即刷新,而不是等待下次轮询。
设置
- 从 ioBroker 管理界面安装适配器(需要 iobroker.web 适配器)。
- 在适配器的"连接"选项卡上输入 Agent DVR 的 IP 地址和端口(默认为 8090)。如果 Agent DVR 已配置登录,请输入相同的用户名和密码。
- 使用 Agent DVR v7.8.0.0 或更新版本以在适配器仪表板中进行录像文件回放。
推送警报
有关设置移动推送警报的详细信息,请参见设置推送警报。
Telegram
将 Agent DVR 与 Telegram 聊天机器人连接,以便控制和接收实时警报通知。在设备 "设置" 中启用 推送通知 以获取实时警报。首先在远程网页界面的 "服务器" 图标下选择 Telegram 按钮。
机器人 "命令"
- /list - 列出已连接的 "服务器"
- /command - 向 Agent DVR 服务器发送 "命令"
- /groupalerts - (在 "组" 中)向此 "组" 发送 "警报"
- /privatealerts - (在私人聊天中)将 "警报" 发送回此私人聊天
网络钩子(Discord、Slack 等)
Agent DVR 可以向接受传入 Webhook 的任何服务发送警报,包括 Discord、Slack、Mattermost、Google Chat、Microsoft Teams 和 ntfy。无需账户关联:你在目标服务中创建一个 Webhook URL,Agent DVR 直接向其发送警报,这样即使在没有互联网面向的远程访问的服务器上也能工作。
每个服务的常规设置相同。编辑你的摄像头或麦克风,打开操作选项卡并添加一个操作:
- 如果:警报(或任何其他事件)
- 然后:呼叫 URL
- URL:来自该服务的 Webhook URL
- 方法:POST
- 正文:消息,格式如下面每个服务所示
你可以在"正文"字段中使用标签如 {NAME}、{MESSAGE}、{AI} 和 {ZONE} 来动态构建消息。
Content-Type: application/json
Discord
在 Discord 中,打开你的频道设置(齿轮图标)并选择集成 - Webhooks - New Webhook,然后复制 Webhook URL。在 Agent DVR 操作中使用:
- URL:复制的 Webhook URL
- 正文:
{"content":"{MESSAGE}: {NAME} on {SERVER} {AI}"}
要将快照附加到 Discord 消息,将上传图片滑块设置为 1 或更多(v7.8.7.0+)。超过第一张的每张图像相隔半秒捕获。
Slack
在 api.slack.com/apps 创建一个 Slack 应用,启用传入 Webhooks,点击Add New Webhook to Workspace,选择一个频道并复制 URL(它以 hooks.slack.com 开头)。在 Agent DVR 操作中使用:
- URL:复制的 Webhook URL
- 正文:
{"text":"{MESSAGE}: {NAME} on {SERVER} {AI}"}
Slack 传入 Webhook 仅支持文本,所以将"上传图片"保持为 0。
Mattermost
在 Mattermost 中,转到主菜单 - 集成 - 传入 Webhooks - 添加传入 Webhook,选择一个通道并复制 URL。使用与 Slack 相同的正文格式:
{"text":"{MESSAGE}: {NAME} on {SERVER}"}
Google Chat
在 Google Chat 空间(Workspace 账户)中,点击空间名称并选择应用与集成 - Webhooks - 添加 Webhook,然后复制 URL。使用与 Slack 相同的正文格式:
{"text":"{MESSAGE}: {NAME} on {SERVER}"}
Microsoft Teams
在 Teams 中,点击频道旁边的三个点,选择工作流并添加模板在收到 Webhook 请求时发布到频道,然后复制它给你的 URL。Teams 要求消息为自适应卡:
{"type":"message","attachments":[{"contentType":"application/vnd.microsoft.card.adaptive","content":{"type":"AdaptiveCard","version":"1.4","body":[{"type":"TextBlock","text":"{MESSAGE}: {NAME} on {SERVER}","wrap":true}]}}]}
ntfy
ntfy无需账户即可将推送通知发送到你的手机,也可以自托管。选择一个难以猜测的主题名称(任何知道它的人都可以订阅),然后:
- URL:https://ntfy.sh/your-topic-name
- 正文:纯文本(无 JSON),例如
{MESSAGE}: {NAME} on {SERVER} - 标头(可选,每行一个):
Title: Agent DVR Tags: rotating_light Priority: high
在你的手机上安装 ntfy 应用并订阅你的主题以接收警报。
其他服务
任何接受 HTTP POST 的服务都以相同的方式工作,例如 Home Assistant Webhook 触发器(http://homeassistant.local:8123/api/webhook/your-id - 虽然MQTT 集成功能更丰富)。Agent DVR 将 JSON 正文作为 application/json 发送,其他任何内容作为表单编码发送。你可以在标头字段中添加额外的标头(例如 API 密钥),每行格式为名称:值。