Продолжаем делать наш дом умнее. Сегодня попробуем прокинуть одну из недорогих IP-камер от Xiaomi в систему управления гаджетами HomeKit.
Это позволит взаимодействовать с камерой прямо в приложении Дом на iPhone, iPad и даже Apple Watch. Можно быстро и просто проследить за происходящим в квартире, офисе или на улице.
Так можно неплохо сэкономить на видеонаблюдении дома, ведь решения, которые из коробки поддерживают HomeKit, стоят в разы дороже.
Материалы по теме:
Что нам понадобится
1. Сервер HomeBridge, который, например, запущен на Raspberry Pi.
2. Подходящая камера Xiaomi.
3. Ката памяти microSD на 1 ГБ или более.
4. Немного свободного времени.
На данный момент получится подключить самые популярные камеры от Xiaomi: Xiao Fang 1s, Smart Camera 1080p, Da Fang 1080p и PTZ 720/1080p. Возможно, вы найдете подходящие прошивки и хаки для других камер от китайского производителя – пробуйте и экспериментируйте.
1. Подготовка камеры
Для начала на камеру Xiaomi потребуется установить так называемый хак. Это своего рода загрузчик для прошивки, которая дает дополнительные возможности управления и настройки.
Так, например, после загрузки хака на камере можно будет установить нормальное время. Изначально все камеры отображают время для родного китайского часового пояса.
1. Качаем хак для своей версии камеры со страницы проекта на GitHub.
2. Форматируем карту памяти в FAT32.
3. Копируем файл CFW-Binary на отформатированную карту памяти и переименовываем его в demo.bin.
4. Отключаем камеру от питания и устанавливаем в неё карту памяти.
5. Зажимаем кнопку настройки на камере (на некоторых моделях её требуется нажимать скрепкой) и подаем питание.
6. Ждем около 10 секунд и отпускаем кнопку.
7. Через 3-5 минут хак будет установлен. Скорость зависит от класса карты памяти.
8. Отключаем камеру и вынимаем карту памяти.
9. Скачиваем все файлы проекта с GitHub.
10. Извлекаем данные из архива.
11. Содержимое папки firmware_mod (именно содержимое, а не саму папку) копируем в корень карты памяти и удаляем файл прошивки demo.bin.
12. В папке сonfig находим файл wpa_supplicant.conf.dist, переименовываем его в wpa_supplicant.conf.
13. Открываем файл в текстовом редакторе и находим параметры ssid и psk, меняем их значения на имя Wi-Fi сети и пароль, соответственно.
14. Сохраняем файл.
15. Устанавливаем карту памяти в камеру и включаем её.
16. Ждем пока камера подключится к домашней Wi-Fi сети (об этом будет свидетельствовать синее свечение диода).
17. Пробуем подключиться к камере в локальной сети по пути https://dafang/ или по сетевому адресу в браузере (адрес камеры можно узнать через веб-интерфейс роутера или его приложение).
18. Авторизуемся и подтверждаем запрос на работу с сертификатами.
логин: root
пароль: ismart12
Теперь наша камера готова для подключения к HomeBridge.
2. Подготовка HomeBridge
Для того, чтобы подключить любую камеру к HomeKit через HomeBridge обязательно потребуется установить плагины aac и ffmpeg. Ручная настройка и установка состоит из последовательного ввода 15-20 команд в терминале.
Энтузиасты с GitHub давно упростили данный процесс при помощи специального скрипта, нам остается сделать следующее:
1. Подключаемся к Raspberry с HomeBridhe по SSH или запускаем терминал напрямую в «малинке».
2. Последовательно вводим команды:
git clone https://github.com/fantomnotabene/camera-ffmpeg_setup_script
cd camera-ffmpeg_setup_script
bash ./install.sh
3. Процесс может занять от 30 минут до часа. Все зависит от скорости интернета и рабочей карты памяти в Raspberry.
После окончания установки можем увидеть новый плагин в одноименном разделе веб-интерфейса HomeBridge.
3. Подключение камеры
Практически все камеры от Xiaomi транслируют видео поток в h264. Чтобы наш HomeBridge не занимался декодированием видео, а транслировал поток напрямую, потребуется произвести некоторые настройки.
Это необходимо для снижения нагрузки на Raspberry и для уменьшения задержки во время трансляции. При декодировании задержка может доходить до 10-15 секунд, а одноплатный компьютер, в зависимости от модели, загружать процессор на 80-100%.
1. Ищем файл с конфигурацией плагина ffmpeg на Raspberry, обычно он находится по пути: /usr/lib/node_modules/homebridge-camera-ffmpeg/ffmpeg.js.
2. Открываем его для редактирования терминальной командой:
nano ~/.homebridge/ffmpeg.js
3. Находим строку if (videoFilter !== null) { и добавляем новое условие. В итоге строка должна иметь такой вид: if (videoFilter !== null && vcodec !== “copy”) {
4. Сохраняем файл конфигурации.
Остается самая малость – внести нужные изменения в файл конфигурации HomeBridge. Это можно сделать как через терминал, так и через веб-интерфейс.
Нам нужно добавить блок в раздел “platform”:
{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Камера",
"videoConfig": {
"source": "-re -i rtsp://192.168.31.226/unicast",
"maxStreams": 2,
"maxWidth": 640,
"maxHeight": 480,
"maxBitrate": 4000,
"vcodec": "copy"
}
}
]
}
В коде необходимо указать свой IP-адрес камеры, желаемое разрешение и битрейт. Значение параметра vcodec устанавливаем copy, чтобы трансляция шла без перекодирования или libx264 – с перекодированием.
Можно дополнительно добавить параметры:
- maxFPS – для ограничения кадров видео в секунду
- audio – для передачи звука с камеры (значение true)
- packetSize – размер пакетов со звуком (значение кратное 188)
На странице описания плагина найдете и другие параметры, например, отражение изображения по вертикали или горизонтали.
Сохраняем конфигурацию и перезагружаем HomeBridge. Если все было сделано правильно, то в приложении Дом на iOS появится камера.
28 комментариев
Форум →Камера не факт что сама появится, в моем случае homebridge-camera-ffmpeg в логах отписал что нужно камеру добавить вручную. Для этого нужно сделать Add Accessory -> Don’t Have a Code or Can’t Scan, там появится камера. Код для нее будет тот же самый что использовался для добавления homebridge
Подскажите, какие камеры без танцев с бубнами сразу можно подключить к Apple HomeKit?
@fbrovec, https://www.apple.com/ru/ios/home/accessories/
@Артём Суровцев, Спасибо!
@Артём Суровцев, в статье есть неточности, поправьте пожалуйста:
1. if (videoFilter !== null && vcodec !== “copy”) { — тут должны быть другие кавычки у copy, те которые дюймы, это наверно парсер вашего сайта заменяет, но если напрямую скопирывать с сайта – homebridge не запустится!
2. во втором пункте вы приводите команду
nano ~/.homebridge/ffmpeg.js ,а должно быть nano ffmpeg.js , мы ведь на первом шаге перешли в папку где файл ffmpeg.js
Вы тупо копируете личные наработки ребят с ресурса indahomekit, вы реально ничего самостоятельно не умеете делать???
@stalkerj, судя по вашей заинтересованности, вы сам один из этих ребят. Не стыдно выдавать чужие проекты с GitHub за свои наработки?
@Артём Суровцев, мы никогда не выдаем наработки с github за свои. Это как минимум невозможно.
А если описываем их, то обязательно даем ссылку на них (либо на npm либо на github)
@Alexey, так же сделал и я
@Артём Суровцев, только вот то, что было взято напрямую с нашего портала, никак не покрыто ссылкой.
@Артём Суровцев, очевидно что вы не разбирались и самостоятельно не писали решение по оптимальной настройке камеры сяоми со звуком, вы не вникали с гитхаб разработчика самого плагина и ваша статья написано по статье с indahomekit, при этом вы не указали никакой ссылки. Делая репосты с Verge или других крупных ресурсов, ссылки на них ставить не забываете, а тут очень непрофессионально это выглядит. Лично вы питаетесь чужими статьями с 2-3х ресурсов по умному дому и просто немного их переписываете. Так поступают только сомнительные ресурсы, коим Iphones я не считал
@stalkerj, а зря, это давно уже помойка.
@stalkerj, зайдите на указанную вами статью и в описание плагина на Github и успокойтесь, все что есть в статье, есть и на Github
@Артём Суровцев, а если там в статье будет слово Х*Й, тоже скопируете?
@Артём Суровцев, кхм… мой первый комментарий со ссылкой на источник видимо был удален. Там же я и описываю то, что было полностью заимстововано без указания на первоисточник. И этой информации нет в описании плагина на github. Повторюсь, т.к. этот кусок кода полностью с учетом названия переменных был сделан мной специально для той статьи.
“Находим строку if (videoFilter !== null) { и добавляем новое условие. В итоге строка должна иметь такой вид: if (videoFilter !== null && vcodec !== “copy”) {“
Аффтур, переименуй статью и добавь «через бридж»!! Я уж офигел, думал вы крутой такой , нашли способ закинуть Ми сразу в ХК!! Ну и добавьте ещё, что нужна малинка, 3 тыр на Али, потом разобраться с установкой системы, хомбриджа… Ну а потом уже то, что вы скопипастили..
@Garik999, я нашел способ вытащить любую машину из любой грязи с помощью айфона!
Буквально пара тапов и я вызываю трактор :)
А потом покупаем новую…
Автор, если как выше пишут, Вы взяли статью у ребят, почему не указать ссылку на оригинал?
Зачем все это если купив камеру Xiaomi вы можете следить за происходящим при помощи приложения Xiaomi на iPhone?!
@Maksim_ok, как минимум это лучше тем, что видеопоток идет через ваш локальный сервер и его не видит пол китая
Автор нагло стырил материал. Где ссылки на источник? Ресурс в полной ж…
Добавить устройства Xiaomi таким способом конечно можно, но автор умалчивает (или просто не в курсе) информацию о стабильности работы HomeKit через прослойки аля HomeBridge. В самый неподходящий момент вы с удивлением обнаружите, что с аксессуаром нет связи! Подобное происходит постоянно. Все перезагружаешь, вроде работает, через пару дней — нет связи. Стабильно работает только одно решение — зашивать в аксессуар прошивку с прямой поддержкой HomeKit, например, на базе FreeRTOS. Кроме стабильности вы получите еще и моментальный отклик. “Привет, Cири, включи …” через Apple Watch начинает работать мгновенно.
Зачем танцы с бубном, покупаете хаб aqara с homekit и все датчики и камеры залетают в Homekit!!!
@Alex D, вы ошибаетесь. Хаб камеры в хомкит не прокидывает
Странно, камеру настроил и мог на нее зайти, потом пол месяц камера лежала без дела. Сейчас подключил, айпишник вижу но на камеру не заходит… хз в чем дело.
@zubovvic, удалось исправить ошибку? я вот тоже ip вижу, но не открывается :(
Добрый вечер! застопорилась на пункте:
17. Пробуем подключиться к камере в локальной сети по пути https://dafang/ или по сетевому адресу в браузере (адрес камеры можно узнать через веб-интерфейс роутера или его приложение).
Не открывается страница на mac через safari и chrome. В чём может быть проблема?
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему не работает автоматическое обновление приложений в iOS
Как исправить ошибку iTunes «от устройства получен недействительный ответ»?
Как удалить джейлбрейк iOS 12.4
Что делать, если iPhone зависает во время входящих вызовов
Инструкция по созданию собственных горячих клавиш в macOS
Как на iPhone временно отключить уведомления от конкретного приложения
Почему отличается номер модели iPhone или iPad в Настройках и на сайте Apple
MacBook не включается после обновления до Sierra