Быстрые ссылки на Aliexpress
К сожалению, в последнее время, камера Xiaomi xiaofang начала проситься обратно на родину в Китай. Выводя сообщение Only mainland China. Так как я обладатель этой камеры, то решил найти способ, как вдохнуть в нее жизнь и готов с ним поделиться с вами!
Сразу стоит отметить, что речь пойдет о камере Xiaomi Xiaofang 1S, убедитесь что у вас именно эта камера!
Что потребуется:
- microSD карта
- Card reader
- Скачать архив с прошивкой
Шаг 1
- Первым делом нужно отформатировать микроСД карту в FAT32, лично я использовал для этого программу SD Card Formatter
- Распаковываем скачанный архив и закидываем на карту файл demo.bin
- Выключаем камеру из сети, вставляем карту, зажимаем и не отпускаем кнопку SETUP, включаем камеру в сеть.
- Ждем 10 секунд и отпускаем кнопку SETUP
- Ждем около 3-х минут, пока не установиться прошивка. Чтобы понять, что прошивка установлена, следим за светодиодом, который расположен на камере. Когда он перестанет мигать, тогда процесс установки закончился.
Шаг 2
- Выключить камеру и вытащить карту
- Удалить все из карты
- Переходим в папочку firmware_mod/config/ и находим файл wpa_supplicant.conf.dist
- Переименовываем в wpa_supplicant.conf и открываем с помощью блокнота
- Где ssid указываем название вашей сети и где psk указываем пароль
- Теперь, все что внутри папки firmware_mod записываем на сд карту
- Вставляем карту в камеру, включаем камеру в сеть
- Заходим в браузер и вписываем ip камеры: https://ipaddess
- Попросит ввести пароль, вводим: Логин — root, пароль — ismart12
Единственный минус этой прошивки, что сд карту приходиться оставлять внутри камеры. Так как, если ее вытащить, то хак перестанет работать.
Если вы ввели ip адрес камеры и вместо ошибки у вас появилась меню настроек, то я вас поздравляю, вы все сделали правильно. Теперь быстро пробежимся по настройкам:
В настройках вы можете указать часовой пояс, чтобы на видео отображалась правильная дата, так же есть видео настройки, где вы можете указать разрешение, bitrate, framerate, пароль
Если не хотите заморачиваться с настройками, то перейдите в System -> Video и укажите эти настройки:
Video username: admin
Video password: admin123
Video port: 8554
Video Size: 1280x720
bitrate: 1000
Frame Rate: 15
Так же вы можете настроить автоматический ночной режим, звук. В целом там достаточно настроек для полноценной работы камеры.
Если автоматический ночной режим со старту не работает, то можно перейти в настройки Services -> SW Night configuration и вручную задать порог значения включения и выключения ночного режима!
В видео настройках вы найдете ссылку rtsp://IPADDRESS:8554/unicast, где вместо IPADDRESS будет ваш локальный адрес. Он то нам и нужен.
Добавляем камеру в Majordomo
Заходим в Устройства -> Простые устройства и добавляем камеру.
В настройках указываем как на скриншоте:
После сохранения настроек, в правом верхнем углу, должен появится снапшот, значит на данном этапе все в порядке и можно переходить к следующему.
Переходим в сцены, создаем или редактируем сцену, создаем элемент с типом HTML и в редакторе вставляем:
[#module name="thumb" url="rtsp://IPADDRESS:8554/unicast" username="admin" password="admin123" width="600" height="350" live="1"#]
Сохраняем элемент, переходим в Настройки -> Домашние страницы и создаем страницу с типом URL и с ссылкой на сцену. В итоге у вас на главной появится вкладка с вашей сценой, где будет выводится картинка, которая будет обновляться каждые 3 секунды.
Если вы хотите полноценное видео, то тут придется немножко заморочиться.
Настройка HLS
Если вы уже успели перейти на вкладку «Video«, то ниже вы могли заметить несколько ссылок видео потоков:
Path to feed: rtsp://IPADDRESS:8554/unicast
HLS: http://IPADDRESS:8554/unicast.m3u8
hls.js web player: http://IPADDRESS:8554
MPEG-DASH: http://IPADDRESS:8554/unicast.mpd
К сожалению браузер не умеет воспроизводить с RTSP, а в прошивке по умолчанию HLS отключен. Нам потребуется его включить. Для этого нужно найти файл firmware_mod\config\rtspserver.conf
Найти строчку RTSPH264OPTS=»» и в скобочках написать -S. В итоге должно получится:
RTSPH264OPTS="-S"
Сохранить и закинуть на SD карту, тогда при запуске камеры, автоматически будет работать HLS. Но у этого способа есть один нюанс, если вы решите поменять видео разрешение для камеры, то настройки собьются и придется записывать по новой.
Чтобы каждый раз не перезаписывать файл на карту, можно изменить другой файл, который отвечает за обновление конфига : firmware_mod\www\cgi-bin\status.cgi.js
//Найти строчку
'video_size': $('select[name=video_size]').val()
//и изменить ее на:
'video_size': $('select[name=video_size]').val() + ' -S',
Тогда при изменении настроек, автоматически будет прописываться -S
Обновляем файл на SD карте.
Теперь чтобы воспроизводить трансляцию в Majordomo, переходим в настройки сцены и редактируем элемент, который мы создавали для камеры. И вместо тэга, который мы прописывали для снапшотов, прописываем html:
<video controls id="hlsvideo" width="600" height="350"></video>
<script src="https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.8.9/hls.light.min.js"></script>
<script>
var video = document.getElementById("hlsvideo");
if (Hls.isSupported()) {
var hls = new Hls();
hls.loadSource("http://IPADDRESS/unicast.m3u8"); // IP ADDRESS вашей камеры!
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, function() {
video.play();
});
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = "http://IPADDRESS/unicast.m3u8"; // IP ADDRESS вашей камеры!
video.addEventListener('loadedmetadata', function() {
video.play();
});
} else {
document.write("HLS not supported");
}
</script>
Сохраняем и проверяем сцену на главной странице Majordomo. Сразу скажу что будет задержка на видео, но тут уже ничего не поделаешь.
Так как я активно пользуюсь модулем телеграм, я реализовал кнопку, которая возвращает снапшот камеры в чат.
Снапшот в телеграм
Заходим в модуль телеграм, переходим на вкладку «Команды» и добавляем следующую команду:
callMethod('Camera01.takeSnapshot'); // Вызываем метод, который делает снапшот камеры
$img = '/var/www/html/cms/images/'.gg('Camera01.snapshot'); // Указываем путь к снапшоту
$this->sendImageToUser($chat_id, $img, 'Камера в подвале'); // Отправляем в чат
Сразу хочу отметить, что путь к снапшоту может отличаться, зависит от вашей системы, где стоит majordomo.
На этом все, если остались вопросы, задавайте смело в комментариях!
Все заработало, но зависает примерно через 2 минуты после включения. И возник вопрос — как все откатить назад? Лучше уже пусть работает как раньше, чем так
Вся прошивка на SD карте, если ее вытащить, то камера будет работать в штатном режиме
А подскажите:
1. Останется ли доступен функционал стандартной прошивки? (уведомления в MiHome, просмотр через MiHoe)?
2. Если установить описанный вами «хак» — запись видео на MicroSD будет уже не доступна?
3. Есть ли в данной прошивке возможность в качестве хранилища указать FTP Сервер?
Заранее спасибо
1. Да, прошивка вся на сд карте, достаточно ее вытащить и камера будет работать в штатном режиме
2. Да
3. Вроде как да, но это не точно. Я поигрался недельку и больше камеру не использовал. На тот момент, была проблема с прошивкой, камера периодически зависала и меня это не очень устраивало. В итоге купил reolink