Если вы владелец дома, кафе или офисного здания и уже поставили камеры Ezviz, а хотите, чтобы всё работало без ручных перезапусков, то API – ваш помощник. Он позволяет брать список устройств, получать видеопоток, включать запись и даже интегрировать систему с внешними датчиками. Для инсталляторов API открывает путь к централизованному управлению сразу десятками камер через один сервер.
Ezviz – это бренд видеонаблюдения, выпускаемый Hikvision. У него есть REST‑компоненты, которые открыты для подключения со стороны программного обеспечения. Через API можно выполнять операции, аналогичные тем, которые доступны в мобильном приложении: авторизация, чтение списка устройств, установка параметров, получение событий. Все запросы формируются через HTTPS и требуют токена, полученного при логине.
Для начала сделайте POST‑запрос к https://open.ezviz.net/api/v1.0/user/login. Тело запроса в JSON:
{
"userName": "admin",
"password": "123456",
"companyId": ""
}
Ответ содержит поле token. Оно уникально, но живет в течение часа. Храните его в переменной и добавляйте в заголовок Authorization: Bearer <token> для всех последующих запросов.
GET‑запрос к https://open.ezviz.net/api/v1.0/products?productType=Camera вернёт массив объектов, каждый из которых описывает камеру: id, имя, IP‑адрес, текущий статус. Чтобы не запрашивать список каждый раз, стоит кэшировать его на несколько минут.
GET /products?productType=Camera HTTP/1.1 Host: open.ezviz.net Authorization: Bearer <token>
Реализация проста: GET‑запрос к /events?productId=1234&take=10 возвращает последние 10 событий—тут можно заметить, когда камера засняла движение. События удобно сохранять в БД и использовать для обработки в real‑time.
PUT‑запрос к /recording/setState с телом:
{
"productId": "1234",
"state": "Start"
}
Ответ подтверждает, что запись запущена. Для остановки используйте state: "Stop".
API не отдаёт сам поток, но через вызов /p2p/rtspUrl?productId=1234 можно получить прямую RTSP‑адрес. Вы можете передать его в любой медиаплеер или библиотеку.
Пример с RaspberryPi: каждая камера отправляет HTTP‑уведомление в прошедшие 5 секунд, если зафиксирована тревога. Скрипт на Python разбирает «payload», проверяет статус записи и, если всё в порядке, сохраняет клип в облачное хранилище. Ниже короткий пример:
import requests, json, time
TOKEN = "..."
def get_events(prod_id):
r = requests.get(f"https://open.ezviz.net/api/v1.0/events?productId={prod_id}",
headers={"Authorization": f"Bearer {TOKEN}"})
return r.json()
while True:
ev = get_events("1234")
for e in ev.get("eventList", []):
if e["eventType"] == "motion":
print("Движение:", e["time"])
time.sleep(5)
Официальная документация Ezviz рекомендует использовать HTTPS и хранить токены в переменных окружения. Никогда не публикуйте токен в репозитории. При работе с внешним сервисом добавляйте проверку подлинности пользователя, чтобы не открывать доступ для всех.
В большинстве стран в праве действует строгий контроль за хранением видеоданных. Убедитесь, что ваша система соответствует требованиям GDPR, если вы работаете в ЕС, или требованиям ФЗ-152 в РФ.
Элементы системы можно подобрать в каталоге поставщика y‑ss.ru. Там есть цены на IP‑камеры Ezviz и комплектующие. При установке на объекте стоит оценить стоимость камер, серверного оборудования и облачного хранилища, а также время работ. Пример расчёта:
| Параметр | Значение |
|---|---|
| Камера Ezviz C3 (2‑фунт) | 3 000 руб. |
| Сервер (Raspberry Pi 4) | 4 500 руб. |
| Облако (1 МБ/мес) | 150 руб. |
| Сумма за 12 мес. | 42 300 руб. |
Воспользуйтесь этими точками в своих скриптах, и система будет работать как часы, не требуя ручного вмешательства. По ходу экспериментов не забывайте менять параметры в соответствии с реальными требованиями вашего объекта и нормативными актами.
