Работаем с API Hikvision

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

Доброе время суток Уважаемые!
Есть вопрос, но вкратце опишу тему.
Итак, есть локальная сеть, состоящая для простоты из Mikrotik и подключенной к нему видеокамеры Hikvision. К приборам сети есть удалённый доступ. Организован(наличие "белого" IP, проброс портов и т .д.) удалённый просмотр онлайн видеокамеры через приложение на смартфон tinyCam Monitor PRO. Также ведётся видеозапись на регистратор и карту памяти в видеокамере.
Помимо этого, средствами WebUI видеокамеры определена "зона вторжения", при попадании в которую на смартфон приходит уведомление и фото.Всё замечательно работает, однако :-): как то раз гуляющая собака :-) зашла в "зону вторжения", а т.к. был приятный солнечный денёк, прилегла отдохнуть в этой "зоне", то потянется, то почешется, то пардон, яйца полижет :-) ну а мне соответственно на мобильник приходят уведомления с фото, так продолжалось пару часов. Ну и другие аналогичные ситуации, когда хотелось бы оперативно выключить этот режим и затем обратно иметь возможность включить. Следует сказать, что данный режим сейчас включен по расписанию, средствами WebUI видеокамеры.Оперативно включать/отключать через WebUI крайне неудобно, хотя там и нужно снять/поставить "галочку"
У камер Hikvision есть открытый API, чем я собственно и решил воспользоваться для этой цели, а возможности API и применения конечно намного больше.
Покурив "буквари", с помощью скрипта и использовании в нём fetch, я получил необходимые .xml файлы при снятой и установленной "галке".
/tool fetch keep-result=yes url="http://admin:password@xxx.xxx.xxx.xxx:xx/ISAPI/Smart/FieldDetection" mode=http dst-path="DetectionOFF.xml"
аналогично и для DetectionOFF
Изображение
Изображение
видим (обвёл красной рамочкой) состояние этой самой "галочки" в WebUI.
А вот теперь и собственно вопрос :-)
Предполагается, что при необходимости, я буду выполнять соответствующий скрипт через бота Telegram, но не совсем понимаю, мне необходимый .xml файл заливать в камеру через опцию src-path в fetch или использовать PUT ?
это фрагмент "букваря" API Hikvision
Изображение
:-)


REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

p.s. или PUT из "букваря" предполагает изменение переменных в /ISAPI/Smart/FieldDetection ?
но их там много,если перечислять в скрипте все, крайне легко ошибиться, а относительно одной, не совсем пока понимаю, как её одну описать.Кроме того, что нужно изменить всего одну, остальные в моей задаче не меняются, координаты зоны например и т.д.потому кажется, что проще залить нужный .xml проще....


REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

насколько я понимаю, "букварь" мне "говорит", что "установить параметры" я могу методом http=put , т.к. по умолчанию в fetch http=get , менял уже....
сейчас есть два .xml файла, один с true ,другой с false надо как-то "закидывать" их в камеру, потому как если менять одну переменную, то вообще непонятно становится....

Изображение
курю https://forum.mikrotik.com голова уже пухнет :)


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

А нельзя получить весь этот XML в переменную с помощью [/tool fetch ... as-value] ?
Или может быть HIKVISION умеют отдавать данные в JSON ? Для Микротик скрипт есть прекрасный парсер JSON в многомерный массив ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

Sertik писал(а): 15 апр 2022, 10:44 А нельзя получить весь этот XML в переменную с помощью [/tool fetch ... as-value] ?
Или может быть HIKVISION умеют отдавать данные в JSON ? Для Микротик скрипт есть прекрасный парсер JSON в многомерный массив ...
да можно наверно и в переменную получить, умеет и в JSON отдавать.....суть то в том, я вижу, какая переменная true.false в этих .xml(ях), остальное ничего не меняется....и эта переменная, насколько я понял, отвечает за "галочку" в WebUI. По крайней мере я считывал эти файлы со снятой и установленной "галкой"....
есть пример, как человек делает, там правда не с mikrotik и не fetch, а использует curl -T для записи того или иного .xml(я)

Изображение
суть одна, человек управляет просто другим датчиком, их там разные есть....ну и есть ещё варианты, когда на потоковое видео накладывают свою информацию....всё тоже самое по сути....


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Если умеет в JSON отдавать то с XML и не надо связываться. Получите все параметры в JSON, потом с помощью парсера https://github.com/Winand/mikrotik-json-parser вытащите нужные параметры, измените их и зашлите обратно. Для "засылания" обратно API камеры должно иметь какой-то "нормальный механизм", который позволит через /tool fetch это сделать.
Или уж если связываться с XML менять параметр в файле - это геморрой, надо считать всё в переменную или массив, изменить там, а уж потом записать в файл и послать его на камеру


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

Для "засылания" обратно API камеры должно иметь какой-то "нормальный механизм", который позволит через /tool fetch это сделать.
GET-получить PUT- изменить....именно так в "букваре" сказано....
в примере, собственно и делается, засылается curl -T необходимый файл....человек сам его редактировал, а мне и этого делать не нужно, т.к. я считал(получил) их с установленной и снятой "галкой".....
вопрос наверно звучит так: как пользоваться http-method=put потому как из wiki я понять не могу :)
неплохо бы конечно на forum.mikrotik.com спросить, но я пожалуй не смогу....правильно вопрос свой задать :)
с помощью GET, я получил....


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

/tool fetch вроде как put не умеет не помню точно ... post не подойдет ?
Последний раз редактировалось Sertik 15 апр 2022, 11:51, всего редактировалось 1 раз.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
REX
Сообщения: 201
Зарегистрирован: 01 апр 2021, 08:19

/tool fetch вроде как put не умеет не помню точно ...
ну почему же? просто нужно явно указывать, что http-method=put , по умолчанию http-method=get , в wiki это то есть....
вот походу, нужно указывать http-data нужный файл....+ к тому, что указываем http-method=put
Последний раз редактировалось REX 15 апр 2022, 11:53, всего редактировалось 1 раз.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Ну а в чём тогда дело ? Сформируйте строку с put и файл измененный прицепите.
А какая модель камеры ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить