Иван, пропал интерес к модулю или к ZM в целом?
Неплохо бы глубже интегрировать. Можно ведь и список мониторов получить через api и управлять ими. А то и вовсе в ПУ добавить, чтоб каждый свой огород не городил и это дело как-то стандартизировалось.
По-поводу отключения сделал метод, привязанный к свойству enabled:
Код: Выделить всё
if ($this->getProperty("enabled")) {
$function='Modect';
} else {
$function='None';
}
$enabled=$this->getProperty("enabled");
$username = $this->getProperty("user");
$password = $this->getProperty("pass");
$monitor = $this->getProperty("number");
$path = $this->getProperty("path");
$loginUrl = "$path/index.php";
$apiUrl = "$path/api";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password.'&action=login&view=console');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec($ch);
#turn off POST after login - important
curl_setopt($ch, CURLOPT_POST, 0);
print "---------- Disable Monitor -----------------";
curl_setopt($ch, CURLOPT_URL, $apiUrl."/monitors/$monitor.json");
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password."&Monitor[Function]=$function&Monitor[Enabled]=$enabled");
$content = curl_exec($ch);
print $content;
curl_close($ch);
У объекта, соответственно, должны быть свойства:
path - URL к серверу zm (без слеша в конце)
number - Номер монитора в zm
enabled - Включение/Отключение наблюдения (Связаный метод: zmCamModeSwitch)
pass - Пароль
user - Пользователь
Name - Название камеры
А дальше командую через шаблоны, но что мешает через кнопки на сценах или меню изменять enabled.
Кроме того я использую запись по движению, но можно изменить на другие режимы:
None - мониторинг выключен
Monitor - только просмотр
Modect - запись только движения
Record - постоянная запись
Mocord - тоже что и Record, но дополнительно выделяются те области, где было замечено движение
Nodect - запись по внешнему триггеру (что, кстати, неплохой вариант интеграции с МД)