Как добавить камеру Xiaomi в умный дом Apple HomeKit

Артём Суровцев avatar | 25
FavoriteLoading В закладки
Как добавить камеру Xiaomi в умный дом Apple HomeKit

Продолжаем делать наш дом умнее. Сегодня попробуем прокинуть одну из недорогих 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 появится камера.

Рейтинг поста:

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (4.43 из 5, оценили: 14)
🤓 Хочешь больше? Подпишись на наш Telegramнаш Telegram.
... и не забывай читать наш Facebook и Twitter 🍒
FavoriteLoading В закладки
undefined
iPhones.ru
Придется немного повозиться.
Прокомментировать

🙈 Комментарии 25

  1. i.v.kuznetsov avatar
    i.v.kuznetsov27 апреля в 19:18
    0

    Камера не факт что сама появится, в моем случае homebridge-camera-ffmpeg в логах отписал что нужно камеру добавить вручную. Для этого нужно сделать Add Accessory -> Don’t Have a Code or Can’t Scan, там появится камера. Код для нее будет тот же самый что использовался для добавления homebridge

  2. fbrovec avatar
    fbrovec27 апреля в 19:53
    0

    Подскажите, какие камеры без танцев с бубнами сразу можно подключить к Apple HomeKit?

    Артём Суровцев avatar
    Артём Суровцев27 апреля в 20:31
    1

    @fbrovec, https://www.apple.com/ru/ios/home/accessories/

    fbrovec avatar
    fbrovec27 апреля в 20:55
    0

    @Артём Суровцев, Спасибо!

    Kiro1 октябрь в 10:23
    0

    @Артём Суровцев, в статье есть неточности, поправьте пожалуйста:
    1. if (videoFilter !== null && vcodec !== “copy”) { — тут должны быть другие кавычки у copy, те которые дюймы, это наверно парсер вашего сайта заменяет, но если напрямую скопирывать с сайта – homebridge не запустится!
    2. во втором пункте вы приводите команду
    nano ~/.homebridge/ffmpeg.js ,а должно быть nano ffmpeg.js , мы ведь на первом шаге перешли в папку где файл ffmpeg.js

  3. stalkerj avatar
    stalkerj27 апреля в 20:27
    3

    Вы тупо копируете личные наработки ребят с ресурса indahomekit, вы реально ничего самостоятельно не умеете делать???

    Артём Суровцев avatar
    Артём Суровцев27 апреля в 20:33
    0

    @stalkerj, судя по вашей заинтересованности, вы сам один из этих ребят. Не стыдно выдавать чужие проекты с GitHub за свои наработки?

    Alexey27 апреля в 20:55
    3

    @Артём Суровцев, мы никогда не выдаем наработки с github за свои. Это как минимум невозможно.

    А если описываем их, то обязательно даем ссылку на них (либо на npm либо на github)

    Артём Суровцев avatar
    Артём Суровцев27 апреля в 23:30
    0

    @Alexey, так же сделал и я

    Alexey27 апреля в 23:47
    2

    @Артём Суровцев, только вот то, что было взято напрямую с нашего портала, никак не покрыто ссылкой.

    stalkerj avatar
    stalkerj27 апреля в 22:03
    6

    @Артём Суровцев, очевидно что вы не разбирались и самостоятельно не писали решение по оптимальной настройке камеры сяоми со звуком, вы не вникали с гитхаб разработчика самого плагина и ваша статья написано по статье с indahomekit, при этом вы не указали никакой ссылки. Делая репосты с Verge или других крупных ресурсов, ссылки на них ставить не забываете, а тут очень непрофессионально это выглядит. Лично вы питаетесь чужими статьями с 2-3х ресурсов по умному дому и просто немного их переписываете. Так поступают только сомнительные ресурсы, коим Iphones я не считал

    Boasnake avatar
    Boasnake27 апреля в 22:49
    6

    @stalkerj, а зря, это давно уже помойка.

    Артём Суровцев avatar
    Артём Суровцев27 апреля в 23:31
    0

    @stalkerj, зайдите на указанную вами статью и в описание плагина на Github и успокойтесь, все что есть в статье, есть и на Github

    Jeron avatar
    Jeron28 апреля в 19:40
    0

    @Артём Суровцев, а если там в статье будет слово Х*Й, тоже скопируете?

    Alexey28 апреля в 21:50
    2

    @Артём Суровцев, кхм… мой первый комментарий со ссылкой на источник видимо был удален. Там же я и описываю то, что было полностью заимстововано без указания на первоисточник. И этой информации нет в описании плагина на github. Повторюсь, т.к. этот кусок кода полностью с учетом названия переменных был сделан мной специально для той статьи.

    “Находим строку if (videoFilter !== null) { и добавляем новое условие. В итоге строка должна иметь такой вид: if (videoFilter !== null && vcodec !== “copy”) {“

  4. Garik999 avatar
    Garik99927 апреля в 21:10
    5

    Аффтур, переименуй статью и добавь «через бридж»!! Я уж офигел, думал вы крутой такой , нашли способ закинуть Ми сразу в ХК!! Ну и добавьте ещё, что нужна малинка, 3 тыр на Али, потом разобраться с установкой системы, хомбриджа… Ну а потом уже то, что вы скопипастили..

    pLoskutov avatar
    pLoskutov28 апреля в 3:11
    3

    @Garik999, я нашел способ вытащить любую машину из любой грязи с помощью айфона!
    Буквально пара тапов и я вызываю трактор :)

  5. D@ZENT avatar
    [email protected]27 апреля в 21:37
    0

    А потом покупаем новую…

  6. Shurygin avatar
    Shurygin27 апреля в 22:15
    6

    Автор, если как выше пишут, Вы взяли статью у ребят, почему не указать ссылку на оригинал?

  7. Maksim_ok avatar
    Maksim_ok27 апреля в 23:04
    0

    Зачем все это если купив камеру Xiaomi вы можете следить за происходящим при помощи приложения Xiaomi на iPhone?!

    i.v.kuznetsov avatar
    i.v.kuznetsov28 апреля в 0:30
    2

    @Maksim_ok, как минимум это лучше тем, что видеопоток идет через ваш локальный сервер и его не видит пол китая

  8. earll avatar
    earll27 апреля в 23:12
    5

    Автор нагло стырил материал. Где ссылки на источник? Ресурс в полной ж…

  9. ekimovsi avatar
    ekimovsi3 мая в 14:06
    0

    Добавить устройства Xiaomi таким способом конечно можно, но автор умалчивает (или просто не в курсе) информацию о стабильности работы HomeKit через прослойки аля HomeBridge. В самый неподходящий момент вы с удивлением обнаружите, что с аксессуаром нет связи! Подобное происходит постоянно. Все перезагружаешь, вроде работает, через пару дней — нет связи. Стабильно работает только одно решение — зашивать в аксессуар прошивку с прямой поддержкой HomeKit, например, на базе FreeRTOS. Кроме стабильности вы получите еще и моментальный отклик. “Привет, Cири, включи …” через Apple Watch начинает работать мгновенно.

  10. Alex D6 мая в 15:51
    0

    Зачем танцы с бубном, покупаете хаб aqara с homekit и все датчики и камеры залетают в Homekit!!!

    stalkerj avatar
    stalkerj6 мая в 17:32
    0

    @Alex D, вы ошибаетесь. Хаб камеры в хомкит не прокидывает

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь