API Watch: импорт и настройка камер
API Watch позволяет массово добавлять, настраивать и администрировать камеры.
Импортировать камеры можно также с помощью веб-интерфейса через Excel файл.
Импорт камер
Автоматический импорт камер позволяет загрузить в 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
= 'IP адрес сервера Insentry'
watch_host = 'Берем от активной сессии на сервер Insentry'
user_token = r'Абсолютный путь к json с камерами'
json_path with open(json_path, 'r') as json_file:
= json.load(json_file)
cameras =0
ifor camera in cameras:
= requests.post(f'http://{watch_host}:9200/api/webclient/cameras/create', headers={'x-user-token': user_token}, json=camera)
resp = i+1
i print(i, resp.text)
Запустите скрипт.
Как запустить скрипт *.py
Чтобы запустить скрипт из файла *.py, откройте командную строку, наберите в ней python и нажмите Enter. Скопируйте содержимое файла *.py построчно.
Статус выполнения скрипта будет отображаться списком строк, каждая строка соответствует одной камере.
Состав строки: номер_добавленной_камеры {её_уникальный_id, статус_запроса_добавления, сообщение_об_ошибке)
Настройка камер
Массовая настройка камер позволяет изменить значения настроек камер с помощью скрипта в 4 этапа:
- Подготовка: установка необходимых компонент.
- Загрузка с сервера списка камер с настройками в файле формата json.
- Изменение настроек камер в файле.
- Загрузка файла с новыми настройками на сервер.
Необходимые компоненты:
- Python 3,
- Библиотека requests,
- User token активной сессии к серверу Insentry Watch
- Пустой файл с названием data в формате json.
Python 3
Установите с ресурса https://www.python.org/
Установка модуля requests для Python 3
Выполните команду pip install requests
Получение User Token
Зайдите на сервер Insentry под учётной записью администратора.
Нажмите F12 и в окне консоли найдите и скопируйте User Token (см. скриншот). Не разрывайте сессию до конца выполнения скрипта!
Скачивание списка камер с настройками в формате JSON
Создайте файл *.py с кодом:
import requests
import json
= 'HOST_ADDR'
watch_host = 'USER_TOKEN'
token = requests.post(f'http://{watch_host}:9200/api/webclient/cameras', headers={'x-user-token': token})
resp = resp.json()
req = req['cameras']
cameras = 0
i with open('C:/Users/1/Documents/CAMERAS/data.json', 'w') as outfile:
json.dump(cameras, outfile)
Где:
HOST_ADDR
— адрес сервера Insentry,
USER_TOKEN
— x-user-token. Как его получить — см. предыдущий пункт.
C:/Users/1/Documents/CAMERAS/data.json
— абсолютный путь до файла data.json.
Запустите скрипт. После выполнения скрипта все данные по камерам будут записаны в файл data.json. Для каждой камеры будет представлен список параметров, содержащих её настройки.
Как запустить скрипт *.py
Чтобы запустить скрипт из файла *.py, откройте командную строку, наберите в ней python и нажмите Enter. Скопируйте содержимое файла *.py построчно.
Изменение настроек камер в файле
В результате получения списка камер (см. пункт выше), в файле data.json будет записан список камер с параметрами, которые соответствуют настройкам камеры: имя, описание, вендор и т.д. Для изменения настроек камер можно воспользоваться следующим скриптом.
Создайте файл *.py с кодом:
import requests
import json
= 'C:/Users/1/Documents/CAMERAS/data.json'
json_path = open(json_path, 'r')
f =f.readlines()
data
f.close()= json.loads(data[0])
cam_list for cam in cam_list:
'name'] = ''
cam['description'] = ''
cam['host'] = ''
cam['vendor'] = ''
cam['model'] = ''
cam['echd'] = ''
cam['tcp'] = ''
cam[with open(json_path, 'w') as outfile:
json.dump(cam_list, outfile)
Задайте новые настройки камер, изменив значения параметров:
- cam[‘name’] = ’’ Имя камеры
- cam[‘description’] = ’’ Описание
- cam[‘host’] = ’’ IP адрес
- cam[‘vendor’] = ’’ Производитель камеры
- cam[‘model’] = ’’ Модель
- cam[‘echd’] = ’’ Включена ли интеграция с ЕЦХД (true/false)
- cam[‘tcp’] = ’’ Включена ли передача по tcp (true/false)
- cam[‘login’] = ’’ Логин
- cam[‘password’] = ’’ Пароль
Если какой-либо из параметров менять не нужно, то его можно удалить из кода.
Сохраните data.json. Для сохранения информации на сервере необходимо запустить скрипт обновления настроек.
Обновление настроек камер на сервере
Обновление настроек нужно, чтобы передать новые значения настроек камер из файла data.json на сервер.
Создайте файл *.py с кодом:
import requests
import json
= 'HOST_ADDR'
watch_host = 'USER_TOKEN'
token = 'C:/Users/1/Documents/CAMERAS/data.json'
json_path = open(json_path, 'r')
f =f.readlines()
data
f.close()= json.loads(data[0])
cam_list = 0
i for cam in cam_list:
= cam_list[i]['id']
cam_id = requests.post(f'http://{watch_host}:9200/api/webclient/cameras/update/{cam_id}', headers={'x-user-token': token}, json = cam)
resp += 1
i print (i, resp.text)
Где:
HOST_ADDR
— адрес сервера Insentry,
USER_TOKEN
— x-user-token. Как его получить — см. предыдущий пункт.
C:/Users/1/Documents/CAMERAS/data.json
— абсолютный путь до файла data.json.
Запустите скрипт.
Как запустить скрипт *.py
Чтобы запустить скрипт из файла *.py, откройте командную строку, наберите в ней python и нажмите Enter. Скопируйте содержимое файла *.py построчно.
Статус выполнения скрипта будет отображаться списком строк, каждая строка соответствует одной камере.
Состав строки: номер_добавленной_камеры {её_уникальный_id, статус_запроса_добавления, сообщение_об_ошибке)