Импорт камер скриптом

Автоматический импорт камер позволяет загрузить в Insentry список камер с помощью скрипта и задать настройки этих камер.

Описание процедуры

Импорт производится в три этапа:

  • Подготовка: установка необходимых компонент.
  • Создание json файла со списком камер.
  • Загрузка json файла на сервер с помощью скрипта.

Необходимые компоненты:

  • Python 3,
  • Библиотека requests,
  • Список камер в формате JSON,
  • User token активной сессии к серверу Insentry Watch

Установка Python 3

Установите с ресурса https://www.python.org/

Установка модуля requests для Python 3

Выполните команду

pip install requests

Получение User Token

Зайдите на сервер Insentry под учётной записью администратора.

Нажмите F12 и в окне консоли найдите и скопируйте User Token (см. скриншот).

Создание JSON файла со списком камер

Создайте JSON файл с массивом данных следующего вида:

[
  {
    "name": "ИМЯ_КАМЕРЫ",
    "host": "IP_КАМЕРЫ",
    "vendor": "onvif",
    "model": "onvifcamera",
    "httpPort": 80,
    "rtspPort": 554,
    "onvifPort": 80,
    "echd": true,
    "login": "ЛОГИН_К_КАМЕРЕ",
    "password": "ПАРОЛЬ_К_КАМЕРЕ"
  },
  {
    "name": "ИМЯ_КАМЕРЫ",
    "host": "IP_КАМЕРЫ",
    "vendor": "onvif",
    "model": "onvifcamera",
    "httpPort": 80,
    "rtspPort": 554,
    "onvifPort": 80,
    "echd": true,
    "login": "ЛОГИН_К_КАМЕРЕ",
    "password": "ПАРОЛЬ_К_КАМЕРЕ"
  },
  {
    "name": "ИМЯ_КАМЕРЫ",
    "host": "IP_КАМЕРЫ",
    "vendor": "onvif",
    "model": "onvifcamera",
    "httpPort": 80,
    "rtspPort": 554,
    "onvifPort": 80,
    "echd": true,
    "login": "ЛОГИН_К_КАМЕРЕ",
    "password": "ПАРОЛЬ_К_КАМЕРЕ"
  },
  ...
]

Загрузка списка камер на сервер

Создайте файл *.py с кодом:

import json
import requests

watch_host = 'IP адрес сервера Insentry'
user_token = 'Берем от активной сессии на сервер Insentry'
json_path = r'Абсолютный путь к json с камерами'
with open(json_path, 'r') as json_file:
    cameras = json.load(json_file)
i = 0
for camera in cameras:
    resp = requests.post(f'http://{watch_host}:9200/api/webclient/cameras/create', headers={'x-user-token': user_token}, json=camera)
    i = i + 1
    print(i, resp.text)

Запустите скрипт.

Статус выполнения скрипта будет отображаться списком строк, каждая строка соответствует одной камере.

Состав строки: номер_добавленной_камеры {её_уникальный_id, статус_запроса_добавления, сообщение_об_ошибке)