集成
移动应用程序
我们的移动应用程序让您可以通过局域网或我们的远程服务进行连接。它们适用于 Android 和 iOS 设备。
Python包装器
这里有一个用于基本UI功能的Python封装器:agent-py 。
URL参数
您可以通过调用 Agent DVR url(区分大小写)来打开 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
您可以传入已保存的筛选器名称以应用,使用 filter 参数 - 例如: ?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 UI 右上角的服务器图标 ,然后在 System 下选择"Commands"。快捷方式是按"Alt-C"。
Agent DVR 包括多个预置命令,可以同时控制多个设备。这些命令利用 API 执行各种任务。您可以灵活地添加自定义命令来调用 API 或在您的计算机上运行软件。
调用脚本文件
要执行通用脚本文件,只需将 .bat 文件(或在 Linux/macOS 上的 .sh 文件)添加到命令目录。脚本的文件名(不含扩展名)将出现在命令列表中,可点击运行。注意:您可能需要重新加载 UI 才能使其显示。
调用 API
在 Agent DVR 安装所在的 Commands 文件夹中创建一个新的 .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 中的任何可用命令。
上面的示例命令将激活所有标记为"external"的设备,停用所有"internal"设备,在"external"设备上开始录制,并向所有连接的客户端发送广播消息。
请参阅 readme 命令按钮了解示例和 API 文档以获取可用命令列表。
重新加载 UI 后并按"Alt-C",您的新命令应该在列表中显示。点击它来执行。
从 3.8.1.0+ 版本开始,您可以在命令中使用位置名称(例如 switchon&location=home)。只需先为您的设备分配一个位置!
Amazon Alexa
从版本2.9.5.0开始,Agent DVR 提供了亚马逊 Alexa 集成功能。该功能允许您通过 Alexa 启用设备使用语音命令来控制 Agent DVR。您可以通过 Alexa Show 设备来布防或撤防系统,或者显示实时视频。
要设置,请在 Agent DVR 的服务器菜单下选择“集成”中的“Alexa”。这将重定向您到亚马逊以链接您的账户。
链接完成后,运行 Alexa 的发现过程。它应该会找到两个设备:安全面板和摄像头控制。
现在您可以使用以下语音命令:
- "Alexa,布防家庭模式的 Agent"
- "Alexa,显示 Agent 摄像头"
在 Agent 设置中设置您的安全码以进行需要身份验证的操作。默认码为 1234。
亚马逊 Alexa 的配置文件(家庭/外出/夜间)与 Agent DVR 中的配置文件相匹配。请在服务器 - 配置文件中进行配置。
对于多个服务器,请在设置中设置服务器名称,并在语音命令中使用它。
家庭助手
Agent DVR 与 Home Assistant 完全集成,允许您将 Agent DVR 添加到 Home Assistant 设置中。在 lovelace UI 中嵌入 Agent DVR 面板或选择单个摄像头。还包括主安全面板的控制。有关更多信息,请参阅"服务器 - 集成"下的 Home Assistant 链接。
Agent DVR 也可以通过 MQTT 将其设备发布到 Home Assistant 作为传感器和开关:请参阅Home Assistant MQTT 发现。
推送警报
设置移动推送警报的详细步骤请参考设置推送警报。
Telegram 电报
将Agent DVR与Telegram聊天机器人连接,以进行控制和实时警报通知。在设备设置中启用推送通知以获取实时警报。首先,在远程Web界面下的服务器图标下选择Telegram按钮。
Webhook(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 中打开频道设置(齿轮图标),选择整合 - Webhook - 新 Webhook,然后点击复制 Webhook URL。在 Agent DVR 的操作中设置:
- URL:复制的 Webhook URL
- 正文:
{"content":"{MESSAGE}: {NAME} ({SERVER}) {AI}"}
要在 Discord 消息中附加快照,请将上传图片滑块设置为 1 或更多(v7.8.7.0+)。之后的每张图片间隔半秒拍摄。
Slack
在 api.slack.com/apps 创建一个 Slack 应用,启用 Incoming Webhooks,点击 Add New Webhook to Workspace,选择频道并复制 URL(以 hooks.slack.com 开头)。在 Agent DVR 的操作中设置:
- URL:复制的 Webhook URL
- 正文:
{"text":"{MESSAGE}: {NAME} ({SERVER}) {AI}"}
Slack 传入 Webhook 仅支持文本,请将上传图片保持为 0。
Mattermost
在 Mattermost 中进入主菜单 - 集成 - 传入 Webhook - 添加传入 Webhook,选择频道并复制 URL。正文格式与 Slack 相同:
{"text":"{MESSAGE}: {NAME} ({SERVER})"}
Google Chat
在 Google Chat 聊天室(Workspace 账号)中点击聊天室名称,选择应用与集成 - Webhook - 添加 Webhook,然后复制 URL。正文格式与 Slack 相同:
{"text":"{MESSAGE}: {NAME} ({SERVER})"}
Microsoft Teams
在 Teams 中点击频道旁的三个点,选择工作流并添加模板收到 Webhook 请求时发布到频道,然后复制生成的 URL。Teams 要求消息为 Adaptive Card 格式:
{"type":"message","attachments":[{"contentType":"application/vnd.microsoft.card.adaptive","content":{"type":"AdaptiveCard","version":"1.4","body":[{"type":"TextBlock","text":"{MESSAGE}: {NAME} ({SERVER})","wrap":true}]}}]}
ntfy
ntfy 无需账号即可向手机发送推送通知,也可以自行托管。请选择一个难以猜到的主题名称(知道该名称的任何人都可以订阅):
- URL:https://ntfy.sh/your-topic-name
- 正文:纯文本(不是 JSON),例如
{MESSAGE}: {NAME} ({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 密钥),每行一个,格式为 Name: Value。