Получение уведомления о движении с камеры на устройства Apple

05 февраля 2021, 11:46

Предисловие

1600x_image.png?1611709221
Планировалось использовать камеру как датчик движения и получать уведомление на телевизор через AppleTV. Такая встроенная возможность появилась у устройств Apple в последних версиях OS. Меня интересовала такая возможность только для Apple TV, так как мой домофон и вызывая панель (Hikvision: DS-KD8003-IME1, DS-KH8350-WTE1) поддерживают двустороннюю связь с телефоном или планшетом посредством собственного ПО Hikconnect. 

К сожалению, модель домофона и вызывной панели не имеет методов связи (таких как FTP, Webhook, EMail) при входящем звонке, по крайней мере, на момент написания статьи. Соответствующий запрос/пожелание о добавлении функционала на входящий звонок был оправлен в офис Hikvision.

Поэтому решено реализовать схожую функцию для получения уведомления с видеопотоком от домофона, используя функционал наружной камеры Hikvision DS-2CD2T85FWD, поддерживающая методы связи FTP, EMail, Webhook - нет.

Для этого на камере был активирован детектор пересечения линии, движения. Детектор отправляет изображение на FTP сервер, где сервер, получив изображение, автоматически отправляет запрос в Homebridge, после чего последний отправляет уведомление на Apple TV (в HomeКit).

Перечень необходимого оборудования и ПО

  • Камера с поддержкой детектора пересечения линии и возможностью отправки их на FTP сервер.
  • Компьютер с Homebridge и плагином camera-ffmpeg (процесс установки Homebridge и ffmpeg описан в этих статьях: HomeBridge и ffmpeg).

Настройка и Установка FTP

Чтобы получать изображения с камеры по детектору, нам понадобиться FTP Сервер. В данной статье я буду использовать FileZilla FTP Server для компьютера под управлением Windows.

  • Необходимо скачать и установить FilleZilla Server с официального сайта. 

1600x_image.png?1611698910
  • Соглашаемся с правилами пользования и нажимаем "I Agree".
1600x_image.png?1611698910
  • Оставляем стандартный тип установки и нажимаем "Next".
1600x_image.png?1611698910
  • Выбираем папку установки или оставляем по умолчанию,
    нажимаем "Next".
o01-1.jpg
  • Ставим галочку в пункте "Start Server after setup completes", нажимаем "Next".
o01-1.jpg
  • В пункте "Start Interface after setup completes" ставим галочку
    и нажимаем "Install".
o01-1.jpg
Мы установили FTP Сервер, теперь нужно его настроить.
  • Запускаем приложение FileZilla Interface с рабочего стола и в открывшимся окне ставим галочку в пункте "Always connect to this server", нажимаем "Connect".
o01-1.jpg
  • В панели нажимаем на "Edit" и, следом, на "Users".
  • В правой части открывшегося окна нажимаем на кнопку "Add" и в мини окне вводим "cam" (или любое другое название для учетной записи).
  • Ставим галочку в пункте "Password" и вводим пароль для учетной записи (его необходимо придумать самому).
o01-1.jpg
  • Переходим во вкладку "Shared folders" и нажимаем "Add", выбираем директорию для сервера (сюда будут сохраняться изображения с камеры).
  • После требуется поставить галочку в пункте "Write", "Read", нажать на "Set as home dir" и "Ok".

Настройка камеры

В моем случае, я буду показывать настройку камеры Hikvision, но данный способ подойдет и для камер других производителей.

o01-1.jpg
  • Для начала необходимо указать размещение ftp сервера, для этого нужно зайти в "Сеть", далее "Доп. Настройки" и выбрать вкладку "FTP".
  • Указываем адрес компьютера, на котором запустили FTP сервер, вводим "имя пользователя" и "пароль" (который мы создавали в настройках FileZilla), и ставим галочку в пункте "захват изображения".
  • Для проверки соединения можно нажать кнопку "Тест", и если вы настроили все верно, то должно появиться окно "Тест пройден".
  • Если тест пройден, нажимаем кнопку "Сохранить".
o01-1.jpg
  • Теперь необходимо открыть настройки "Хранение" -> "Сохранение" и перейти во вкладку "Захват параметров".
  • В открывшейся вкладке ставим галочку в опции "Активация захвата изображения по событию", в параметре "Номер захвата" вводим единицу и нажимаем "Сохранить".
1600x_image.png?1611704560
  • Переходим в настройки "По событию", далее "События SMART" и во вкладку "Детектор пересечения линии".
  • В опции "Вкл" нужно поставить галочку, далее нажать на кнопку "Detection Area", выделить линию, выбрать направление движения, например, "B->A", нажать кнопку "Завершить", а после - "Сохранить".
o01-1.jpg
  • Переходим во вкладку "Метод связи" и ставим галочку в параметре "Загрузить на FTP", нажимаем "Сохранить".
Теперь когда камера заметит движение при пересечении линии со стороны B на A, она отправит изображение на FTP сервер.

Установка и настройка плагина Homebridge Videodoorbell

1600x_image.png?1612039283

Установка плагина через Web-интерфейс:

  • Открываем браузер, вводим IP адрес Homebridge, далее авторизуемся.
  • Переходим на вкладку "Плагины" и вводим в поисковой строке название плагина "Videodoorbell".
  • В блоке "Homebridge Videodoorbell" нажимаем кнопку "Установить", после установки плагина нажимаем кнопку "Настроить".
  • В открывшемся окне вводим: 
  1. Name - имя аксессуара.
  2. HTTP trigger portпорт, на который будем делать запросы (по умолчанию 5005).
  3. Source - RTSP поток камеры с ключами. 
  4. Throttle incoming requests задержка между уведомлениями (в миллисекундах).
  • Сохраняем настройки и перезагружаем Homebridge.

Скрипт отправки уведомлений

Прилагаю "PowerShell" скрипт, который ожидает изображение в папке FTP, а после отправляет http запрос на адрес сервера homebridge по порту плагина Videodoorbell. После получения http запроса, плагин Homebridge'а отправляет уведомление с видеопотоком домофона в Apple Homekit.
#Указываем размещение ftp папки и добавляем фильтр на изображения
$fsw = New-Object IO.FileSystemWatcher 'c:\FTP\', $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
#'Отслеживаем добавление файлов в указанной папкe 
Register-ObjectEvent $fsw Created -SourceIdentifier FtpFileAdded -Action { 
#Получаем имя и время добавленного файла 
$name = $Event.SourceEventArgs.Name 
$timeStamp = $Event.TimeGenerated 
#Выводим в консоль сообщение о добавленном файле 
Write-Host "File from cam was received '$name' at $timeStamp" -fore green 
#Создаем запрос на адрес Homebridge'а по порту плагина 
$HTTP_Request = [System.Net.WebRequest]::Create('http://192.168.1.60:5005') 
#Получаем ответ 
$HTTP_Response = $HTTP_Request.GetResponse() 
#Закрываем соединнение 
$HTTP_Response.Close() 
} 
while ($true) {}

Где:

  • $fsw = New-Object ... ,  "с:\FTP\" - каталог, в котором хранятся изображения, меняем на свой. 
  • $HTTP_Request ... , "192.168.1.60:5005" - IP адрес homebridge'а и порт, указанный в конфиге бриджа.

Сохраняем его в корне диска "С" с именем DoorEvent.ps1.

Чтобы добавить скрипт в автозагрузку, можно воспользоваться следующей "PowerShell" командой.
schtasks /create /tn «DoorEvent» /sc onstart /delay 0000:30 /rl highest /ru system /tr "powershell.exe -windowstyle hidden -ExecutionPolicy Bypass -File "C:\DoorEvent.ps1")

Вот, собственно, и все. Теперь когда вы будете сидеть за компьютером под управлением macOS или смотреть фильм на AppleTV, вы получите уведомление с видеопотоком в правом верхнем углу экрана о замеченном движении, при желании можно развернуть изображение в полный экран. Если камера имеет встроенный микрофон, можно не только увидеть, но и услышать, что происходит у вас на пороге.

1600x_image.png?1612037347

P.S.

Вариант для более ленивых. Так как при звонке в вызывную панель отправляется уведомление в HikConnect, было решено использовать отдельный телефон и прикрепить к нему датчик Aqara Vibration Sensor, который отслеживает вибрацию телефона. Датчик вибрации автоматизирован на включение триггера "Doorbell-trigger" от плагина VideoDoorbell.

Получаем тот же результат, но теперь по срабатыванию кнопки звонка вызывной панели.

Минусы такого решения - это большая задержка между звонком и получением уведомления, связь через облако и стоимость реализации (необходим отдельный телефон и датчик вибрации).

1600x_image.png?1612601239

Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Алексей Рожанков (arozjankov)
    Алексей Рожанков (arozjankov) 5 месяцев назад

    Сложновато. А не проще скриптом отслеживать сработку движения от камеры Hikvision через API?

    Вот документация. https://u.to/NL9ZGg

    • Юлий Митряшкин (JMiki)
      Юлий Митряшкин (JMiki) отредактировано 5 месяцев назад

      Вполне, но это статья подойдёт к большинству камер с отслеживанием движения, а вот апи у всех производителей разное. Для владельцев камер Hikvision я уже написал плагин (для Homebridge) с отслеживанием событий, но пока ещё его тестирую. Кому интересно - пишите в телегу.

      • Илья Гитлин (iGitlin)
        Илья Гитлин (iGitlin) 5 месяцев назад

        у меня то же домофон Hik - было бы очень интересно при нажатии кнопки получать уведомление в homekit, родное приложение реально с большой задержкой, особенно вне локальной сети. Видать из за облака. 

        Готов принять участие в тестировании. У меня 2 вызывные панели и монитор.

      • (deniskad)
        (deniskad) 5 месяцев назад

        Добрый день, очень интересует такой плагин, можно узнать о нем поподробней?  Есть камера hikvision, добавлена в HomeKit, через плагин camera ffmpeg. 

      • Карен  Закарян (Karen)
        Карен Закарян (Karen) отредактировано 5 месяцев назад

        все бы хорошо, но вот описания нету ни какого... хотябы readmi заполнить...

        есть еще такой плагин 

        Homebridge Hikvision plugin

        https://github.com/eu-evops/ho...

  2. Дмитрий Логвинов (ITuranchoks)
    Дмитрий Логвинов (ITuranchoks) 5 месяцев назад

    HA+Home Assistant Community Add-on: FTP+Homebridge на малине побюджетнее будет чем комп гонять все время, а вообще спасибо за статью, думал тоже в этом направлении.

    • Юлий Митряшкин (JMiki)
      Юлий Митряшкин (JMiki) отредактировано 5 месяцев назад

      Да, конечно, ftp сервер можно установить куда угодно. Homebridge у всех на разных платформах стоит, и я для примера решил показать на винде.

  3. Владимир Митряшкин (vova02)
    Владимир Митряшкин (vova02) 5 месяцев назад

    Юлий, ты же плагин написал для упрощения, почему стесняешься про него сказать? https://github.com/vova0255/Ho... Твой плагин?

К списку статей
Россия, г. Санкт-Петербург

Устройства в материале

Vibration sensor

Производитель: Aqara

Apple TV 4K

Производитель: Apple

Apple TV HD

Производитель: Apple
Заказать на:

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 ноября 2018, 09:42
Способы автоматизации механических ворот
30 августа 2019, 07:28
Несколько нетривиальных способов использования датчика открытия окон/дверей от Xiaomi/Aqara.
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.
17 июня 2019, 13:00
HomeKit - это программный framework от компании Apple, который позволяет пользователям iOS, macOS, watchOS и tvOS устройств управлять умными аксессуарами в доме, как через приложение "Дом", так и через голосовой ассистент Siri. Тем самым, делая ваш дом умным. При помощи Apple TV (tvOS) и HomePod управление возможно, но пока только на английском языке через Siri.
24 августа 2018, 09:49
Как удаленно управлять Mac через Siri.
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
29 сентября 2018, 09:05
Мы рассмотрим как из камеры и кнопки (Mi/Aqara) сделать домофон для HomeKit