London

 
<<< Назад

Делаем видеодомофон в Homekit

Реализация видеодомофона на базе MajorDoMo, Apple HomeKit, видеокамеры и электромеханического замка.

Дано:
Имею на даче на калитке аналоговый видеодомофон, который заведен на ТВ-тюнер и аналоговый сигнал преобразуется в rtsp поток.
Изображение анализирую через ZoneMinder и при движении опредляю, что в домофон звонят, т.к., когда в него не звонят - сигнала нет, чёрный экран. Тоесть есть картинка, значит звонят -> можно отправлять уведомление в систему.
Так же, имею электромеханический замок на калитке, с прикрученной к нему ESP8266.

Чтобы всё это завести в Homekit пришлось сделать следующее:

Устанавливаем в Homebridge плагины Homebridge Camera FFmpeg и Homebridge Mqttthing (проще всего делать через Homebridge Config UI X)

Далее, добавляем камеру домофона по rstp, указывая так же настройки для mqtt. В конфиге homebridge в разделе platforms:

        {
            "name": "Camera FFmpeg",
            "porthttp": 8089,
            "mqtt": "127.0.0.1",
            "topic": "homebridge",
            "usermqtt": "mqttlogin",
            "passmqtt": "mqttpassword",
            "cameras": [
                {
                    "name": "Domofon",
                    "motion": false,
                    "doorbell": true,
                    "switches": false,
                    "videoConfig": {
                        "source": "-i rtsp://localhost:8091/live",
                        "stillImageSource": "-i http://localhost/zm/cgi-bin/nph-zms?mode=single&monitor=7&scale=100",
                        "maxWidth": 720,
                        "maxHeight": 482,
                        "maxFPS": 30,
                        "maxBitrate": 1024,
                        "forceMax": false,
                        "vcodec": "libx264",
                        "encoderOptions": "-preset ultrafast -vf mpdecimate -vsync vfr",
                        "audio": true,
                        "debug": false
                    }
                }
                    ],
          "platform": "Camera-ffmpeg"

в разделе accessories добавляем кнопку открывания замка через Mqttthing:

       {
            "type": "lockMechanism",
            "name": "Открыть домофон",
            "username": "mqttlogin",
            "password": "mqttpassword",
            "topics": {
                "getOnline": "homebridge/domofon/online",
                "getLockCurrentState": "homebridge/domofon/state",
                "getLockTargetState": "homebridge/domofon/status",
                "setLockTargetState": "homebridge/domofon/status"
            },
            "startPub": [
                {
                    "topic": "homebridge/domofon/state",
                    "message": "S"
                }
            ],
            "accessory": "mqttthing"
        }

Перезапускаем homebridge.
В MajorDoMo при обнаружении звонка в домофон вызываем топик mqtt:
callAPI('/api/module/mqtt','GET',array('publish'=>'homebridge/doorbell','msg'=>'Domofon'));

Теперь звонок в домофон прилетит push уведомлением на телефон.

в модуле MQTT привязываем топик homebridge/domofon/state к Геркону открытия калитки, к свойству status. Replace list указываем: U=0, S=1

топик homebridge/domofon/status привязываем к методу, который будет открывать замок и возвращать статус кнопки к "закрытому":

Открытие калитки у меня осуществляется свойством command объекта kalitka.
Соответственно, в методе следующий код

if (isset($params['VALUE']) && $params['VALUE']=='U' && !timeOutExists('domofon_lock_timer')) {
    sg('kalitka.command',1);
    setTimeout('domofon_lock_timer', "callAPI('/api/module/mqtt','GET',array('publish'=>'homebridge/domofon/status','msg'=>'S'));sg('kalitka.command',0);", 10);
}

В итоге получаем то, что на видео и наслаждаемся :)
Если статья оказалась Вам интересна, или полезна, не забывайте ставить лайк :)
Вопросы в комментариях приветствуются

https://youtu.be/1Ost2iWpQlY

P.S.
А ещё, неожиданно, это оказался юбилейный, 500-й блог в коннекте. С чем всех торжественно и поздравляю :-)

Обсуждение (0) (9)

Смотрите так же:
21.10.2021 Переезд с модуля zigbee2mqtt на модуль zigbeedev
14.07.2021 Интеграция c умным адаптером для домофонов от espdomofon.ru
07.10.2020 Модернизируем сенсорный выключатель LIVOLO для умного дома. Выводим нулевой провод, для нормального питания.
03.09.2020 Уведомления ZoneMinder без модуля.
14.05.2020 Подписка на топики mqtt
08.05.2020 Мониторинг хостов с миротика

Королёв, Россия

На форуме: London