使用 LinoVision POE 相机,根据 API,有一种方法可以通过发送 JSON 请求来控制它。这可以使用 CURL 或直接的 HTTP URL 来完成吗?
手册中的 JSON 示例:
常见请求格式如下
PUT /LAPI/V1.0/System/Time/NTP HTTP/1.1
{
"Enabled":1,
"AddressType":0,
"Address":"24.56.178.140",
"Port":123,
"SynchronizeInterval":60
}
当方法为 PUT/POST 时,HTTP Body 通常需要包含 JSON 数据。 请求必须发送到设备的 HTTP/HTTPS 端口。
云台控制
/LAPI/V1.0/通道//云台/云台控制
|网址 | /LAPI/V1.0/Channels//云台/云台Ctrl | |描述 |用于控制指定通道的云台。 | |方法|放置 | |输入数据| PTZ 命令信息 | |成功返回数据|无 |
这是实际提供的云台信息:
云台命令信息
Json 块 { “PTZCmd”:, “第 1 段”:, “段落2”:, “第3段”: }
参数 | 要求 | 类型 | 描述 | 示例 |
---|---|---|---|---|
云台命令 | M | 无符号长 | 云台操作命令字: | 1794(0x0702) |
0x0101:停止减少光圈 | ||||
0x0102:减少光圈 | ||||
0x0103:停止增加光圈 | ||||
0x0104:增加光圈 | ||||
0x0201:停止在 | ||||
0x0202:焦点靠近 | ||||
0x0203:停止远焦 | ||||
0x0204:焦点远 | ||||
0x0301:停止放大 | ||||
0x0302:放大 | ||||
0x0303:停止缩小 | ||||
0x0304:缩小 | ||||
0x0402:打开 | ||||
0x0404:调低 | ||||
0x0502:右转 | ||||
0x0504:左转 | ||||
0x0702:转到左上方 | ||||
0x0704:转向左下角 | ||||
0x0802:转到右上方 | ||||
0x0804:转到右下角 | ||||
0x0901:停止 | ||||
0x0A01:雨刮器打开 | ||||
0x0A02:刮水器关闭 | ||||
0x0B01:灯亮 | ||||
0x0B02:灯灭 | ||||
0x0C01:加热器开启 | ||||
0x0C02:加热器关闭 | ||||
0x0D01:红外开启 | ||||
0x0D02:红外关闭 |
这些是我尝试激活 LED 灯的 HTTP URL,但没有成功
http://172.16.5.91/LAPI/V1.0/Channels/0/PTZ/PTZCtrl?Data={"PTZCmd":"1"}
http://172.16.5.91/LAPI/V1.0/Channels/0/PTZ/PTZCtrl?Data={"PTZCmd":"0x0B01"}
使用 HTTP URL 我得到以下响应:
{
"Response": {
"ResponseURL": "/LAPI/V1.0/Channels/0/PTZ/PTZCtrl",
"CreatedID": -1,
"ResponseCode": 0,
"SubResponseCode": 0,
"ResponseString": "Succeed",
"StatusCode": 0,
"StatusString": "Succeed",
"Data": {
"PTZCmd": 0,
"ContinueTime": 0,
"Para1": 0,
"Para2": 0,
"Para3": 0
}
}
}
这些是我尝试过的 CURL 命令字符串:
curl -d '{"PTZCmd":"0x0B01"}' -X PUT http://172.16.5.91/LAPI/V1.0/Channels/0/PTZ/PTZCtrl
curl -d '{"PTZCmd":1}' -X PUT http://172.16.5.91/LAPI/V1.0/Channels/0/PTZ/PTZCtrl
这两个选项都不会激活灯光,但它们都会做出以下响应:
{
"Response": {
"ResponseURL": "/LAPI/V1.0/Channels/0/PTZ/PTZCtrl",
"CreatedID": -1,
"ResponseCode": 0,
"SubResponseCode": 0,
"ResponseString": "Succeed",
"StatusCode": 0,
"StatusString": "Succeed",
"Data": "null"
}
}
编辑1: 使用 INT 而不是 Hex 值也不会激活光。
curl -d '{"PTZCmd":2817}' -X PUT http://172.16.5.91/LAPI/V1.0/Channels/0/PTZ/PTZCtrl
{
"Response": {
"ResponseURL": "/LAPI/V1.0/Channels/0/PTZ/PTZCtrl",
"CreatedID": -1,
"ResponseCode": 0,
"SubResponseCode": 0,
"ResponseString": "Succeed",
"StatusCode": 0,
"StatusString": "Succeed",
"Data": "null"
}
}
@partofthething 这就是我最终所做的,以确认 URL 命令是否正确。伟大的头脑:-)
不管怎样,这个项目在与制造商一番来回后就被搁置了。它们确实支持手动控制 LED 灯,但前提是相机设置为“夜间模式”。不幸的是,无论如何对我们来说,夜间模式只是灰度,我们需要看到颜色来确定藻类生长的类型。
对于后代,这些是在其他人获得此相机时起作用的命令和 URL:
http://172.16.5.91/LAPI/V1.0/Channels/0/Media/Video/Streams/0/Snapshot
curl -i -H 'Content-Type: application/json' --data '{"TimeZone":"GMT-10:00"}' -g --anyauth -u 'username:password' -X PUT http://172.16.5.91/LAPI/V1.0/System/Time
curl -i -H 'Content-Type: application/json' --data '{"PTZCmd":2817}' -g --anyauth -u 'username:password' -X PUT http://172.16.5.91/LAPI/V1.0/Channels/0/PTZ/PTZCtrl
有指定子码流或分辨率的URL吗?
此 URL 适用于 Advidia M 系列 http://cameraIP/LAPI/V1.0/Channels/0/Media/Video/Streams/0/Snapshot
curl -X PUT http://192.168.0.10:91/LAPI/V1.0/Channels/0/PTZ/Presets/2/goto { “回复”: { "ResponseURL": "/LAPI/V1.0/Channels/0/PTZ/Presets/2/goto", “创建ID”:-1, “响应代码”:0, “子响应代码”:0, "ResponseString": "成功", “状态代码”:0, "StatusString": "成功", “数据”:“空” } }
但我仍然不知道如何使用语法从 http...anu 建议运行它?