Просмотрено
Category: Видеонаблюдение

Прошивка камеры IPC8232SWC-WE от Ростелеком на оригинальную прошивку

Прошивка камеры IPC8232SWC-WE от Ростелеком на оригинальную прошивку

Прошивка камеры IPC8232SWC-WE от Ростелеком на оригинальную прошивку

Внимание! Автор не несет ответственность за ваши неудачи, и не призывает к действию! Все что вы делаете — вы делаете на свой страх и риск!

Данный способ прошивки подсмотрен на 4pda, дополнен и немного изменен для лучшего понимания.

Немного о камере

Данная камера была приобретена на Avito за копейки. Хотелось избавиться от камер Xiaomi и приложения MiHome. Оригинальная прошивка поддерживает протокол Onvif и RTSP, что собственно мне и было нужно для добавления камер в видеорегистратор и Home Assistant. Так же у камеры на ножке есть магнит, который позволяет крепить камеру на металлических поверхностях, либо на металлическом пятаке, который идет в комплекте и прикручивается на пару саморезов. Еще один из плюсов — наличие Ethernet разъема на камере.

Наличие Ethernet разъема
Наличие Ethernet разъема

Прошивка камеры

Для прошивки нужно вскрыть камеру поддев чем-нибудь плоским черную часть камеры.

Поддеваем с краю черную часть камеры
Поддеваем с краю черную часть камеры

После того, как отковыряли лицевую часть камеры аккуратной отключаем микрофон и подцветку.

Отключаем микрофон и подсветку
Отключаем микрофон и подсветку

После этого ищем UART рядом с Ethernet разъемом. Нас интересуют только контакты Tx Rx и Gnd.

UART
UART

К UART можно под паяться или же использовать иголки как сделал я. Так же нужно воткнуть LAN кабель.

Подключаем UART и LAN кабель
Подключаем UART и LAN кабель

Теперь качаем TFTP сервер, архив с прошивкой и Pytty.

Распаковываем файлы прошивки в рядом с TFTP сервером.

Файлы прошивки рядом с TFTP сервером
Файлы прошивки рядом с TFTP сервером

Редактируем файл manuinfo.txt под себя

DEVICE_SERIAL_NUMBER: серийный номер вашей камеры (12 знаков)
MAC_ADDRESS: мак-адрес сетевого интерфейса в формате 0123-4567-89AB
ACTIVE_CODE: регистрационный код для облака EZ (25 знаков). Предлагаю использовать следующий формат: 0SSSSSSSSSSSSMMMMMMMMMMMM (S — серийный номер, M — мак адрес)
REGION_CODE: код региона IN — голосовые сообщения на английском, NONE — голосовые сообщения на китайском, FF — без голосовых сообщений

Запускаем TFTP, открываем Pytty выбираем наш COM порт и скорость 115200.

Настройки Pytty
Настройки Pytty

Подаем питание на камеру и жмем в Pytty Ctrl + Enter либо Ctrl + B чтобы остановить загрузку.

Останавливаем загрузку
Останавливаем загрузку

После того, как остановили загрузку нужно указать IP адрес камеры и IP адрес TFTP сервера.

ipaddr — адрес камеры, serverip — адрес tftp сервера.

setenv ipaddr 192.168.0.99
setenv serverip 192.168.0.111
Указываем IP адреса камеры и TFTP сервера
Указываем IP адреса камеры и TFTP сервера

Далее очищаем флеш-память камеры, загружаем новый загрузчик и перезагружаем камеру.

mw.b 0x42000000 0xff 0x1000000;tftp 0x42000000 u-boot.bin
nand erase 0 0x8000000;nand write 0x42000000 0 0x100000
reset

В TFTP сервере должны увидеть скачивание файла загрузчика.

Скачивание загрузчика
Скачивание загрузчика

После перезагрузки камеры снова выставляем IP адреса камеры и сервера.

setenv ipaddr 192.168.0.99
setenv serverip 192.168.0.111

Обновляем прошивку, загружаем конфигурацию, выставляем свой MAC-адрес и перезагружаемся.

update all
manuinfo manuinfo.txt
config ethaddr 01:23:45:67:89:AB (mac-адрес вашей камеры)
reset
Загрузка прошивки
Загрузка прошивки

После перезагрузки если все правильно сделали можно перейти в web-интерфейс камеры.

Страница авторизации
Страница авторизации

По умолчанию данные для входа admin/123456.

Web-интерфейс камеры
Web-интерфейс камеры

Итог

Прошивка камеры на этом закончена. Теперь камеру можно добавить в регистратор через протокол Onvif или RTSP.

RTSP основного потока rtsp://admin:123456@ipaddress:554/media/video1
RTSP второго потока rtsp://admin:123456@ipaddress:554/media/video2

Автоматическое удаление записей в ZoneMinder

Автоматическое удаление записей в ZoneMinder

Автоматическое удаление записей в  ZoneMinder

Сколько не искал как настроить ZM, чтобы он сам удалял старые записи, так и не смог найти. Пришлось сделать свой костыль на PHP. Скрипт писался исключительно для себя, и не претендует на правильность.

<?php
$servername = ""; // IP адрес MySQL сервера
$database = "zm"; // Имя БД
$username = ""; // Имя пользователя БД
$password = ""; // Пароль пользователя БД
$path = ""; // Путь к папке с записями
$interval = "7"; // Удалять записи старше N дней

// Создаем соединение
$mysqli = new mysqli($servername, $username, $password, $database);

// Получаем записи старше N дней
$result = $mysqli->query('SELECT * FROM `Events` WHERE StartDateTime < (NOW() - INTERVAL '.$interval.' DAY)');
$rows = $result->fetch_all(MYSQLI_ASSOC);

// Форматируем дату
$arrDates = array();
foreach($rows as $row) {
    $date = explode(' ', $row['StartDateTime'])[0];
    array_push($arrDates, $date);
}
// Удаляем дубликаты дат
$arrDates = array_unique($arrDates);

// Удаляем папки старше N дней
foreach($arrDates as $date) {
    // Удаление для каждого монитора отдельно
    exec('rm -R '.$path.'5/'.$date);
    exec('rm -R '.$path.'6/'.$date);
}

// Удаляем записи старше N дней
$mysqli->query('DELETE FROM `Events` WHERE StartDateTime < (NOW() - INTERVAL '.$interval.' DAY)');

// Закрываем соединение
$mysqli->close();

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