ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

SIP-домофон своими руками

19/10/2011 22:06:09

Возможно, данная статья устарела.
Читайте новую статью SIP-домофон своими руками 2.0
Все новые статьи

И такая дребедень
Целый день
То тюлень позвонит, то олень.

(К. Чуковский, "Телефон")

Пожалуй, трудно будет не согласится с тем фактом, что в "умном" доме должны быть "умные" двери и не менее "умная" калитка забора. Помимо чисто декоративной функции калитка выполняет и в некотором роде защитную, а значит должна быть заперта на замок. Но мы живем в Умном Доме, поэтому не хотим бегать к калитке каждый раз, когда приходит какой-нибудь гость, но хотим иметь возможность поговорить и посмотреть на него, прежде чем пускать в дом. Кроме того, удобно было бы использовать электронные ключи вместо обычных.

"Что же тут умного?" - спросит читатель. Домофон, вызывная панель, управляемый замок, считыватель и контроллер ключей. Все это вместе с установкой обойдется тысяч в 8-10 в зависимости от навороченности деталей. "Эка невидаль! Все это есть в любом самом обычном доме."

Не шумите! Согласен! Но я предлагаю не просто установить домофонную систему контроля доступа, а интегрировать ее в общую систему "Умного Дома". А означает это вот что.

1. Считыватель ключей Touch Memory (iButton) мы подключим к серверу под управлением owfs. Это позволит нам: а) хранить в памяти неограниченное количество ключей б) легко управлять списками ключей (разрешить/запретить) через Web-интерфейс, в) реализовать различные алгоритмы доступа (например, после 9 часов вечера калитка открывается только определенным людям; доступ по времени или дням недели) г) получать сообщения SMS / Email о попытках доступа с незарегистрированных ключей и многое другое.
2. Вызывную панель мы подключим к программному серверу IP-телефонии Asterisk. Это позволит нам: а) говорить с гостем через любой телефон в доме б) осуществлять перехват, перенаправление звонков с вызывной панели в) осуществлять перенаправление вызова на мобильный или городской номер или даже в Skype в случае, если никого нет дома
3. Видеокамеру вызывной панели мы подключим к ZoneMinder. Это позволит нам: а) видеть человека с любого компьютера или мобильного устройства или через Интернет б) включить видеокамеру вызывной панели в общую систему видеонаблюдения дома в) осуществлять запись видео по движению в кадре или в момент нажатия кнопки вызывной панели г) хранить практически неограниченный архив видео д) распознавать лица входящих людей
4. Управляемый замок (электромеханический или электромагнитный) мы подключим к исполнительному устройству Умного Дома. Это позволит нам открывать калитку с любого телефона в доме, с любого компьютера, из Интернет, с мобильного телефона или даже с помощью сообщения по электронной почте.

Ну а теперь немного подробнее непосредственно о самом подключении.

Подключение считывателя TM к компьютеру

Домофонный ключ iButton или "таблетка" устройство непростое. В нем встроена довольно сложная микросхема DS1990A, которая поддерживает полноценную работу в цифровой сети 1-wire. В микросхему производитель, компания Maxim, записал уникальный идентификационный код. Этот то код и считывается мастером/контроллером сети в тот момент, когда мы подносим ключ к считывателю.

Считыватель (контактор) Touch Memory

К счастью у меня в доме уже работает сеть 1-wire, к которой подключены температурные датчики DS18B20, датчики контактов DS2406, исполнительные модули DS2413 под управлением пакета owfs. Нет ничего проще подключить к сети и считыватель TM. Но как с ним работать?

Компьютер с подключенным к нему мастером сети 1-wire (например, DS9490R) не может работать со считывателем так, как это делает микроконтроллер, определяющий логический ноль - "Presence Pulse". Поэтому единственным способом работы со считывателем является циклический опрос сети. Но чтобы избежать чрезмерную нагрузку как на саму сеть, так и на центральный процессор компьютера, можно ограничить опрос сети, скажем, 3-5 циклами в секунду.

Простейшая программа на PHP для опроса считывателя может выглядеть так:

<?
require "/opt/owfs/bin/ownet.php";
$ow=new OWNet("tcp://localhost:3000");

while ( true )
{
    if ( $keys_flag > 0 )
    $keys_flag--;
    else
    {
        unset($ow_keys);
        $ow_keys = $ow->dir("/uncached/bus.0/");

        //if ( preg_match("//01..+,//", $ow_keys['data']) )
        $s_pos = strpos($ow_keys['data'], "/01.");
        if( $s_pos > 0 )
        {
            $cur_key = substr($ow_keys['data'], $s_pos + 1, 15);
            //$cur_key = preg_replace("/.*/(01..+),.*/", "$1", $ow_keys['data']);
            echo $cur_key;
            $keys_flag = 25;
        }
    }
    usleep(200000);
}

?>

Здесь мы опрашиваем сеть 5 раз в секунду. В случае, если в сети появляется элемент с адресом, начинающимся на "01." (метки DS1990A), мы выводим адрес ключа на экран (этот блок мы потом поменяем на запрос к базе данных и прочий функционал, связанный с авторизацией). После того, как в сети замечен iButton, опрос блокируется на 5 секунд, чтобы избежать лишних и бессмысленных повторных операций.
Обратите внимание на закомментированные строчки. Методом $ow->dir() мы получаем список всех устройств, доступных в сети. Определить наличие элемента с адресом 01.* можно с помощью регулярных выражений, но с точки зрения производительности лучше воспользоваться функциями strpos() и substr(), так как они работают вдвое быстрее.
Хочу также акцентировать внимание на том факте, что следует читать непременно "uncached" ветку owfs, так как "корень" кешируется.

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

Подключение вызывной панели к Asterisk или сравнение Yealink SIP-T20 с Cisco SPA504G

Вообще в природе, в Красной Книге, встречаются вызывные панели, поддерживающие протокол SIP. Стоимость таких панелей начинается от 20 000 руб, выполнены они не в антивандальном корпусе, не предназначены для работы на российской улице (это, я напомню, от -35С) и имеют дизайн, который вызывает стойкое и непреодолимое желание немедленно открутить устройство от столба. Поэтому мы воспользуемся примечательной во всех смыслах и гениальной идеей Марата Гулевича из Вильнюса, за что ему большое спасибо.
Мы возьмем самую обыкновенную вызывную панель AVC-305 (или любую другую, например, МВК-325ц) и подключим ее к недорогому SIP-телефону, таким образом получив SIP-домофон. Идея очень проста. Нужно препарировать телефон и подключить к нему вызывную панель так, чтобы микрофон и динамик панели работали вместо микрофона и динамика спикерфона, а кнопка панели включена параллельно кнопке спикерфона. Таким образом вызывная панель у нас станет выносным спикерфоном SIP-телефона.

Остается только приобрести какой-нибудь недорогой SIP-телефон. В статье "Видео домофон HOWTO" Марат пишет об использовании Grandstream Budgetone 101. Действительно, это одна из самых дешевых моделей на сегодняшний момент. Я же решил, что экономия в 500 рублей несущественна и приобрел телефон Yealink SIP-T20. С одной стороны, я давно хотел попробовать продукцию Yealink, с другой стороны в Интернете можно встретить хорошие отзывы как о самой модели в целом, так и о спикерфоне в частности. Телефон обошелся мне в 3300 руб.

Yealink SIP-T20 vs Cisco SPA504G

Раз уж у меня появился этот телефон, прежде чем взяться за отвертки, кусачки и изоленту, я решил сравнить его с Cisco SPA504G.
Внешне телефон Yealink SIP-T20 похож на своего более именитого собрата. Вроде бы и цвет пластика схож и местами дизайн. Но качество изготовления уступает. И это видно невооруженным глазом. Нет, каких-то явных огрехов нет, но на ощупь пластик Cisco приятнее, кнопочки в нем сделаны более качественно, нажимаются мягко, трубку держать удобнее. Даже витой шнур, который идет к трубке Cisco SPA504G более мягкий и качественный. ЖК-панель в Yealink T20 также хуже. В целом удовольствие от использования телефона Cisco SPA504G испытываешь больше и сделан он добротнее. Но у Yealink есть и свои преимущества. Во-первых, поставляется он с блоком питания, тогда как для Cisco нужно покупать (и не самый дешевый). Во-вторых, Web-интерфейс русифицирован. Практически к каждому параметру есть подсказка, а это очень важно, если вы не семи пядей во лбу в области IP-телефонии, так как специфических настроек в такого рода телефонах очень много.

Yealink SIP-T20 vs Cisco SPA504G
А они похожи...

Но все эта лирика. Самое главное в телефоне, и IP-телефон здесь не исключение - качество звука. Так вот в этом компоненте Yealink, как мне показалось, ничем не уступает Cisco. А, может быть, по субъективным впечатлениям даже немного превосходит. Качество спикерфона (чувствительность микрофона, громкость динамика) в телефоне Yealink SIP-T20 на высоте. Таким образом, телефон Yealink SIP-T20 стоимостью почти вдвое дешевле SPA504G хотя и не побалует пользователя изящным пластиком и хорошими манерами, обеспечит высокое качество разговора, сгодится на роль трудовой лошадки и подопытного кролика, поэтому смело отправляется на операционный стол.

Переделка SIP-телефона Yealink SIP-T20

Для переделки потребуется:
1.    Отрезок шестипроводного ленточного кабеля длиной около 35 см (с ним удобнее работать).
2.    Гнездо 8P8C TJ8 (RJ-45)  в плату.
3.    Термоусадка диаметром 2 мм.
4.    Заряженный пистолет для термоклея.
5.    Приличный паяльник с припоем и флюсом.

Примерная последовательность переделки:
1.    Отсоединяем от аппарата микротелефонную трубку, чтобы не мешалась (если подключена).
2.    Выкрутив крепёжные винты, снимаем нижнюю крышку телефона. Для удобства дальнейшей работы вынимаем из неё разъемы трубки и гарнитуры, пометив для верности, где какой.
3.    Отпаиваем от платы провода, идущие к динамику. Изолируем их и закрепляем изолентой на динамике, затащив их внутрь отсека динамика (видно на следующей фотографии).
4.    Отсоединяем от платы разъём с проводами от микрофона.

5.    Берём ленточный кабель, раздираем его с одного конца на пары сантиметров по 5.
6.    Первую пару, не маркируя, припаиваем к контактам межплатного разъема, как показано на фото синим цветом. Эта пара должна «звониться» при нажатии кнопки «Спикерфон» на аппарате. Проверьте это! Кстати, у меня эта пара припаяна к разъёму со стороны контактных площадок кнопок на нижней коричнево-жёлтой плате, так как вначале мне не было известно, куда выведены контакты кнопки «Спикерфон». И это видно на фото. Конечно же, ее правильнее и проще припаять к верхней зеленой плате. Имейте в виду, что это провода не просто от кнопки, а от матрицы кнопок. Поэтому ни с чем другим, кроме вызывной кнопки панели, они соединяться не должны!!!
7.    Жилы второй пары помечаем красным и синим маркером и припаиваем туда, откуда отпаяли провода динамика: синий провод – верхний, красный – нижний.

8.    Жилы третьей пары помечаем черным и красным маркером и припаиваем снизу к контактам розетки микрофона: черный провод – левый, красный – правый. Здесь важно соблюсти полярность, так как микрофон электретный и на него из аппарата подаётся напряжение питания. Для удобства выполнения этой операции плату на время лучше открутить. Можно также отрезать провод сантиметрах в 3-х от вилки микрофона и припаяться к нему, но тогда вернуть телефон к «прежней жизни» будет гораздо труднее.

9. Берем нижнюю крышку и выламываем из неё заглушку PSTN. На ее место термоклеем вклеиваем гнездо 8P8C TJ8. Выбор термоклея обусловлен тем, что гнездо меньше отверстия где-то на полмиллиметра, и термоклей заполняет образовавшийся зазор, обеспечивая прочное, хотя и не очень красивое изнутри, соединение. Для успеха этой операции склеиваемые поверхности хорошо бы обезжирить.

А это вид с внутренней стороны крышки.

9.    Второй конец ленточного кабеля распаиваем на выводы 8P8C TJ8 в соответствии  со схемой и изолируем термоусадочной трубкой:

В результате переделки нутро телефона должно выглядеть примерно так:

10.    Места паек отмываем от остатков флюса.
11.    Возвращаем на место разъемы трубки и гарнитуры. Аккуратно, чтобы не прищемить лишнего, закрываем нижнюю крышку и закручиваем крепёжные винты. Подключаем трубку, адаптер питания, кабель LAN.
12.    В соответствии со схемой, подключаем вызывную панель, включаем телефон в сети и проверяем. Все должно работать!

Переделка вызывной панели

Для переделки потребуется:
1.    Отрезок ленточного кабеля длиной около 35 см (с ним удобнее работать).
2.    Приличный паяльник с припоем и флюсом.
3.    Прочий слесарно-монтажный инструмент.

Примерная последовательность переделки:
1.    Окручиваем 4 самореза, с помощью которых закреплена задняя крышка, и снимаем ее.
2.    Окручиваем 3 самореза, на которых закреплена большая печатная плата, и извлекаем ее из корпуса, насколько позволят провода. Маленькую печатную плату видеокамеры не трогаем.
3.    Отключаем от маленькой платы разъем трехпроводный разъем.
4.    Выпаиваем из платы 4 провода, идущие к динамику и микрофону (обведены красным).
5.    Отпаиваем их от динамика и микрофона. Они больше не понадобятся - удаляем.
6.    Откладываем корпус в сторону.
7.    Выпаиваем из платы электролитический конденсатор, показанный стрелкой.

8.    Отпаиваем от выводов реле силовой провод и удаляем его, продёрнув через два отверстия в плате. Выпаиваем SMD резистор 101.

9.    Выпаиваем два SMD резистора с указанных позиций (на фото уже выпаяны). Перерезаем две дорожки, ведущие к кнопке.

10.    Перерезаем дорожку, ведущую от кнопки под реле.

11.    Припаиваем к контактам кнопки 2-проводный плоский кабель.

12. Возвращаемся к работам с корпусом. Припаиваем к выводам динамика отрезок плоского 2-проводного кабеля, маркируем жилы.

13. Припаиваем к выводам микрофона отрезок плоского 2-проводного кабеля, маркируем жилы.

14. Запаиваем перемычку. Продергиваем провода от микрофона и динамика в отверстие платы. Устанавливаем плату на место в корпус.

15. Вставляем трехпроводный разъем на место, в плату видеокамеры.
16. Закрываем заднюю крышку, прикручиваем саморезами.
17. Соединяем панель с SIP телефоном по схеме, которая приведена выше
Включаем, проверяем. Все должно работать!

    Что мы сделали:
1.    Сохранили работоспособность видеокамеры и инфракрасной подсветки. Согласно инструкции, на панель должно быть подано напряжение питания 12В, и может быть снят видеосигнал. Выхода аудиосигнала в прежнем виде теперь нет, и провод «Аудио» можно удалить.
2.    Обесточили полностью схему усилителей и включения электрозамка.
3.    Полностью изолировали от схемы кнопку вызова.
4.    Вывели микрофон и динамик для подключения их к SIP телефону.

Настройка телефона и Asterisk

Нам необходимо, чтобы сразу после снятии трубки (нажатии кнопки спикерфона) SIP-домофон позвонил по определенному номеру. К счастью T20 поддерживает эту функцию, которая называется "Горячая линия".

Телефон -> Параметры
// Указываем номер, на который домофон будет звонить по умолчанию
Номер горячей линии: 102
// Чтобы наш домофон не ждал набора другого номера, скажем ему, чтобы набирал "горячую линию" сразу
Задержка вызова номера: 0
// После отбоя нам не хочется слушать сигнал "занято", поэтому отменяем эту "фичу"
Длительность сигнала занято(секунды): 0

Занятно не только посмотреть, но и послушать, что происходит рядом с калиткой. Сделать это просто. Достаточно в телефоне включить автоответ. В последних версиях прошивок для Yealink автоответ перекочевал из настроек телефона в настройки SIP-аккаунта, что очень логично, поэтому идем в закладку "Аккаунт" и выставляем опцию "Автоответ" в режим "Включено".

Чтобы можно было открывать замок на калитке с любого телефона, я применил следующее решение. Я определил, что при вызове номера '0' запускается скрипт, который управляет модулем, подающим кратковременно питание на замок. Сняли трубку, нажали 0, дверь открылась.

В файле extensions.conf

exten => 0,1,System(php /home/user/open-door.php)

Но когда нам звонят с вызывной панели, нажатием кнопки 0 не обойтись, нужно перевести звонок на номер '0'.
Для этого нужно, чтобы пользователи имели такую возможность - опция 't' (transfer, перевод вызова)

exten => _1XX,1,Dial(SIP/${EXTEN},,t)

А в файле features.conf внести изменения

[featuremap]
blindxfer => #

По умолчанию перевод (transfer) включается нажатием комбинации '#1', что в нашем случае не совсем удобно, поэтому я переопределил его на простую "решетку".
Человек звонит в домофон, мы говорим с ним, а потом, чтобы открыть дверь, нажимаем #0

Настройка Asterisk 2

Эксплуатация показала, что юзеры (то есть домочадцы) путались. Так как они не особенно представляли как все это работает, то не могли запомнить когда нужно нажимать "0" просто, а когда с решеткой. Нужно было сделать какое-то очень простое решение. Задача была сделать так, чтобы замок калитки открывался по нажатию на 0 в любой сиуации, в том числе во время разговора с вызывной панелью. Собственно также, как это работает в обычных домофонных системах. Оказывается, сделать это можно.

1. Необходимо прописать в файле features.conf в секции [applicationmap] новую "фичу"

gateopen => 0,self/callee,Macro,gate-open,moh-gate-open

0 - DTMF код, на который мы вешаем макрос
self/callee означает, что запустить макрос "macro-gate-open" может только принимающая звонок сторона.
Про moh-gate-open расскажу чуть позже

2. Теперь в файле extensions.conf задаем условия, при которых эта "фича" работает и сам макрос

exten => 151,1,Set(__DYNAMIC_FEATURES=gateopen)
exten => 151,2,Dial(SIP/152,,t)

[macro-gate-open]
exten => s,1,System(/var/www/mod_door_open.sh &)
exten => s,2,Playback(/usr/local/share/asterisk/sounds/door_open2)

Я задал конкретную ситуацию, когда фича работает, чтобы при случайном нажатии на 0 при любых других звонках фича не работала и звонок не открывался.

Теперь только когда телефон домофона вызывает виртуальный номер 151, активируется фича и перебрасывает на реальный номер 152, привязанный к одному из SIP-аппаратов. При нажатии на кноку 0, замок открывается и открывающий слышит в телефонной трубке сообщение "Замок открыт". Тут я подумал, а неплохо было бы сделать так, чтобы такое же сообщение слышал и звоняший в домофон. А как? Некоторое время я раздумывал, но решение нашлось! Нужно задать для нашей фичи MOH (Music On Hold) класс.

3. Задаем MOH класс в файле musiconhold.conf

[moh-gate-open]
mode=files
directory=/var/lib/asterisk/moh-door
format=alaw

Этот же класс прописываем в параметрах созданной нами "фичи". И все!
Файлик со звуковым сообщением я сгенерировал с помощью Google Translate, сконвертировал его в alaw-формат и разместил по указанным в конфигурации путям. Кстати, в папке moh-door всего-лишь линк на файл, размещенный в sounds.

Ах, да! Я долго промучился с тем, что DTMF-коды, отправляемые телефоном Cisco SPA-504G просто напросто не воспринимались Asterisk'ом. Но интуитивно я нашел решение. Нужно зайти в настройки телефона (закладка Ext) и изменить опцию DTMF Tx Method с AUTO на INFO. Ну вот кто бы мог подумать...

Хрю!

Спустя некоторое время после начала использования системы, домочадцы слезно попросили меня сделать так, чтобы рингтон (мелодия вызова) с домофона отличался от оного для телефонных звонков. Так как звонок с домофона поступал на телефон Cisco SPA504G, который имеет 4 линии, я решил пойти по простому варианту, а именно завести еще один аккаунт в Asterisk, а в настройках SPA504G прописать свой рингтон на этот новый extension. Теперь осталось только выбрать мелодию звонка. Думал я не долго. Этой мелодией будет тема из известной мобильной игрушки Angry Birds.

Но возникла одна проблема. При всех своих супервозможностях Cisco SPA504G поддерживает пользовательские рингтоны только с параметрами 8КГц, WAV, 6 секунд. Понимаете? 6 секунд. Не беда, я вырезал из темы начало и немного ускорил его, чтобы упаковать в 6 секунд. Получилось забавно.

Ринготон Angry Birds (WAV, 8кГц, 6000 мс)
Мелодия вызывает стойкое желание не откладывая бежать открывать калитку.

Для загрузки рингтона в телефон я воспользовался утилитой ringtone.exe

Подключение электромеханического замка

Я приобрел врезной электромеханический замок CISA 14020. Почему не магнитный и не накладной? Очень просто. Калитка ажурная, не глухая, без горизонтальной планки. Ответную часть электромагнитного замка можно было бы закрепить только сбоку, но она бы мешала проходу. Накладные замки все очень массивные и моя высокохудожественная натура не перенесла бы такого надругательства. К счастью итальянский амико придумал миниатюрный замок CISA 14020, который можно врезать в металлическую раму калитки, представляющую из себя трубу 40х40. То есть замок снаружи вообще не видно. Замок управляется подачей напряжения 12В (постоянного или переменного, 15ВА).

Электромеханический замок CISA 14020 в калитке
Электромеханический замок CISA 14020 в калитке

От старого ADSL-модема я взял блок питания AC 15В/15ВА и решил, что, учитывая длину проводов и падение напряжения, он подойдет. Управлять замком можно с помощью любого релейного модуля. Я использовал MegaD-2561.
Собственно, это почти все. Единственный нюанс, связанный с управлением замком заключается в том, что подачу напряжения нужно ограничивать по времени, иначе замок может выйти из строя. Сделать это очень просто. Вот тот самый open-door.php, упомянутый выше.

<?
require "key.php";
key_sw("door", 1);
usleep(750000);
key_sw("door", 0);
?>

Где в key.php реализована функция key_sw(), работающая с IP Power 9212 Delux. Более подробно о работе с этим устройством и реализации функции key_sw() можно прочитать в статье. Напряжение подается всего 0,75 секунды, чего вполне достаточно для срабатывания замка.

С видеокамерой вызывной панели все вышло совсем просто. Я только подключил ее к плате захвата и настроил ZoneMinder. Кроме того, после нажатия на кнопку вызова, фото с камеры наблюдения отображается на ТВ через спутниковый ресивер. Очень удобно, сидя у телевизора, сразу видеть кто звонит в дверь. В данный момент я провожу эксперименты с распознаванием лиц. Первые впечатления положительные.

Данная статья, на мой взгляд, наглядно демонстрирует насколько выгодна централизованная реализация Умного Дома и интеграция отдельных модулей в единую среду, которая управляет всеми элементами системы.

Про гидратированный оксид железа(III)

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

Считыватели TM - опыт уличного использования

Ко всему прочему конкретно эта модель, что изображена на фото слева, имела один маленький недостаток. Диаметр принимающего кольца больше, чем ключа-таблетки, поэтому ключ как-бы болтался в этом гнезде и приходилось его прижимать к какому-нибудь краю, чтоб обеспечить надежное срабатывание замка. В связи с этим, как только у меня выдалось два свободных летних вечера, я поменял считыватели на JSB-KTMn-11, стоимостью 220 руб за шт. Чуть дороже, зато и выглядит приличнее и ключ в считывателе не болтается. Надежность срабатывания отличная, блестящий хром приятен глазу. Посмотрим что с ним будет через полтора года..
Поскольку SIP-домофон - скорее этакий эксперимент, я не стал пока замуровывать всю эту механику в столб. Считыватели висят на простейшем двухсторонем скотче из строительного магазина. И отлично висят!

Update от 08.11.2013 - несмотря на блестящее покрытие (а-ля нержавейка), считыватель JSB-KTMn-11 покрылся ржавчиной уже спустя 3 месяца... Как это ни странно, но ржавчина эта легко очищалась ватным диском, смоченным в спирте. Стало быть ржавел на сам считыватель, а маленькие частички металла, попадавшие на поверхность считывателя с ключей-таблеток. Что ж, в любом случае следует подумать уже и о бесконтактных техологиях, которые в избытке присутствуют на рынке.
 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху

2011-10-26 15:22:32 | VovCHIK
Хороша мысля, надо реализовать, только вот в условиях российской действительности я бы защитился от придурков с электрошокером и не стал бы использовать контактный считыватель, а использовал бы считыватель em-marine и с интерфейсом TM, только вот вопрос совместимости, ведь как я понимаю Touch memory это не только 1wire. Будем пробовать.


2011-10-26 16:39:17 | Andrey_B
VovCHIK, насчет защиты вы совершенно правы, благо сделать ее нетрудно.
По поводу EM-Marine думал, но у нас у всех Dallas'овские ключи уже есть на связке (подъезды, офисы), поэтому не хотелось вешать еще один брелок - проще было запрограммировать в системе уже имеющиеся ключи. Но провести эксперимент в части работы считывателей EM-Marine, эмулирующих DS1990A, с мастером DS9490R и owfs интересно. Пожалуй, как-нибудь попробую.


2012-03-01 17:41:39 | Сергій
Андрей, подскажите, любой ли телефон с IP подойдет для подобных целей? Хотел купить радиотрубку DECT домой, и увидел, что есть телефоны с подключением к телефонной сети и к интернету для IP телефонии. Есть ли в этом смысл? Извините за много букв.


2012-03-01 21:03:15 | Andrey_B
Если "патчить" телефонный аппарат подобно описанному в статье, то, конечно, любой IP-телефон.


2012-03-08 13:08:52 | Stas Therenkov
Это то, что я искал!!! Замечательная статья. Спасибо автору!!!!


2012-03-13 18:59:06 | Алекс
Так и не понял, при нажатии 0 на телефоне, как реагирует вызывная панель на открытие?
И где запускается скрипт?


2012-03-13 19:23:01 | Andrey_B
Алекс, при нажатии "0" на телефоне, сервер, на котором установлена программная АТС Asterisk, отправляет команду исполнительному IP-устройству, которое, переключая реле, подает напряжение на электромеханический замок. Вызывная панель на это никак не реагирует. 0 - это, грубо говоря, внутренний телефонный номер электромеханического замка.
То есть всегда можно открыть замок позвонив откуда-то извне по телефону на Asterisk и донабрать (если такая функция настроена) внутренний номер "0".


2012-03-30 13:37:38 | Алексей
Этот путь не всем по душе.
Есть ведь панели, которые имеют телефонный выход (RJ11) и подключаются к любому SIP шлюзу. Панель /control-dostupa.ru/index.php/skud/page/pbxdp/ стоит 1500 р. SIP шлюз в районе 2000 р (/www.voip-shop.ru/grandstream_ht_286.htm).
И ничего курочить не надо.
Понравилась идея, как из SIP телефона управлять замком.
Кстати, IP домофоны уже дешевееют: /videoglaz.ru/good.php?id=12247


2012-05-05 09:54:05 | Ичи
Сейчас считыватели EM-Marine могут эмулировать формат Dallas (TM), так что подключить его проблем нет. Подъездные ключи лучше не использовать, иначе ещё есть более 50 ключей от вашей калитку у людей, которых Вы не знаете.

Немного не понятно с видекамерой. На неё можно подавать постоянно напряжение, а можно подавать после нажатия на кнопку. У Вас как сделано, Вы это упустили.

Как происходит вывод на экран, то что через ресивер - это понятно. Но ведь при нажатии кнопки происходит вызов на номер 102 (а можно сделать на все номера?), а как запустить скрипт в "умном доме"?


2012-05-05 11:17:54 | Andrey_B
Ичи, каждый ключ Dallas имеет уникальный идентификатор. Авторизация происходит по этому идентификатору. Он заносится в систему либо вручную, либо автоматически, как только скрипт детектировал неизвестный ключ, а уже администратор определяет каким ключам дозволен доступ, а каким нет. У этих 50 людей, о которых вы пишите, совершенно разные идентификаторы. Они не могут открыть своими ключами калитку. В этом и прелесть Dallas iButton, что можно использовать один ключ в разных системах доступа.
Другое дело, что с помощью относительно нехитрых средств можно сделать эмулятор ключа, но для этого нужно знать его адрес, а значит физически получить к нему доступ. Но это тоже самое, что сделать слепок обычного ключа. Поэтому насчет подъездных ключей вы явно погорячились.
Так как камера у меня является частью системы видеонаблюдения, напряжение на нее подается всегда и я в любой момент времени могу посмотреть что происходит рядом с калиткой. Это очень удобно.
Как происходит вывод на экран ресивера очень подробно описано в этой статье и в статье "Вывод на экран ТВ сообщений Умного Дома через OpenBox HD".
Не совсем понятно что значит "на все номера"? Это как? В идеологии любых АТС звонок имеет совершенно определенный адрес. Но я понимаю, откуда идет вопрос. Что, если вы находитесь в другой части дома. Тут есть два решения. Первое - перехват звонка. Это стандартная функция Asterisk. Но для этого вы должны услышать вызов. Если основной телефон звонит тихо, можно сделать вызов через центральную систему оповещения или мультирум (если такая присутствует в доме). Второе - Asterisk может переводить звонок с номера на номер, если в течение какого-то времени трубку не сняли.


2012-06-17 15:39:14 | uni_dx
Спасибо, очень интересно! Но есть один момент, если переделывать панель как вы описали "тонким местом" будет длинна проводов, так как сигнал от микрофона идёт без усиления, или я не прав? у вас какая длинна проводов од SIP-фона до вызывной панели?
и второй вопрос, а как сделать так чтобы уже к существующей схеме вызывная панель - видеодомофон, (уже установлено всё, всё работает и трогать - нельзя) подключить SIP-фон, или же просто "врезаться" в домашнюю АТС Asterisk, доступ к линии домофона есть. Спасибо!


2012-06-20 15:45:54 | Andrey_B
uni_dx, длина проводов порядка 25-30 метров. Слышимость удовлетворительная. Как "врезаться" в существующую схему не знаю.


2012-09-22 07:44:54 | Lirein
Ичи, в есть такая замечательная вещь как группа вызовов (calling group), можно настроить её на одновременный вызов нескольких экстеншенов, звонок на них будет идти до тех пор, пока не возьмут трубку кто-нибудь из вызываемых или не истечёт время вызова.


2012-10-03 23:19:34 | Евгений
Да, идея интересная. Вы не думали о том, что есть возможность открыть замок, используя например бипер?


2012-10-04 16:44:58 | Andrey_B
Евгений, не совсем понял, поясните пожалуйста вашу мысль.


2012-10-04 22:43:05 | Евгений
Например: нажимаю кнопку вызова, пока идет соединение или во время разговора прислоняю к микрофону мобильный телефон, нажимаю 0 и дверь открылась. т.е. есть возможность не санкционированного доступа. Не пробовали так?


2012-10-05 12:58:23 | Andrey_B
Евгений, во-первых, мой высокохудожественный кованый забор легко может перелезть даже ребенок. Его функция совсем в другом, а колючей проволоки у меня нет. Во-вторых, в момент вызова Asterisk никак не воспринимает какие-либо звуки (в том числе DTFM-коды) от вызывающего абонента. Пищать что-либо в микрофон бессмысленно.


2012-10-07 09:33:43 | Акаль
Андрей, скажите, после всех манипуляций с SIP-телефоном он сохраняет свои функции SIP-телефона? или он теперь становится домофоном и с него уже не позвонить?


2012-10-07 10:11:23 | Andrey_B
Акаль, мы же делаем не домофон, а SIP-домофон, поэтому всю SIP-функциональность он конечно же сохраняет. Все, что мы по сути делаем, это меняет встроенный динамик и микрофон спикерфона на вынесенные динамик и микрофон вызывной панели.


2012-10-30 21:41:16 | Dron
/ После отбоя нам не хочется слушать сигнал "занято", поэтому отменяем эту "фичу"
Длительность сигнала занято(секунды): 0
В моем Planet VIP-155PT такой опции нет, после сброса соединения hotline домофон выдает сигнал занято, что посоветуете?


2013-12-15 21:48:35 | илья
А у меня такая трабла:
имеется считыватель em marine cp-z2l по идее (а так и в мануале написано /www.ikey.ru/downloads/13749523141CP-Z-2L.pdf) эмулирует DS1990A

НО! при поднесении карты/ метки - пропадает вся сеть 1-wire… Что скажете по этому поводу?

Подключал DS1990A к сети - видит такие.
Подключал cp-z2l к контроллеру замков - работает.
OWFS - вешается… Полярность верная. Смутило только напряжение м/у GND и DATA - 2.5 - 3 вольта, это же рабочее?


2013-12-15 23:37:42 | Andrey_B
Илья, с подобным считывателем дела не имел. Попробуйте запустить owfs с отладочными ключами (--debug, --error-level=6) и тщательно изучить логи на предмет того, что происходит. В зависимости от результатов этого исследования, возможно, придется написать автору owfs.


2014-08-08 23:00:37 | Стас Черенков
С Вашего вдохновления изваял такой моноблок, с RFID считывтелем https:/www.youtube.com/watch?v=ICxfmc0OdhI


2014-08-14 14:37:43 | Владимир
Подскажите а какое расстояние у вас от телефона до вызывной панели по кабелю


2014-08-26 12:43:24 | Andrey_B
Владимир, думаю, порядка 30 метров. Не меньше.


2014-09-21 22:41:34 | Евгений
Подскажите. Не нашел в статье содержание файла /var/www/mod_door_open.sh. Или он такой же как open-door.php Спасибо


2014-09-21 23:01:53 | Andrey_B
В mod_door_open.sh фактически только вызов mod_door_open.php


2015-05-03 23:22:11 | Александр
Андрей, подскажите, пожалуйста:

1. Как подключена камера вызывной панели к серверу?
Судя по Вашей схеме, в витой паре (между вызывной панелью и телефоном) используется 6 проводов - кнопка, динамик и микрофон. Получается от камеры протянут отдельный провод? Если да - то что за провод использовали? И как камера подключается к серверу?

2. Если замок "открыт" в течение 0.75 секунды, и входящий не успел открыть калитку за эти 0.75 секунды, то собачка замка защелкивается и калитка снова блокируется? Или я чего-то не понимаю..

3. Как у Вас реализовано открытие калитки при движении с участка на улицу? Есть дополнительная кнопка "выход", открывающая замок при нажатии на нее? Или еще один считыватель изнутри установлен?


2015-05-04 10:55:07 | Andrey_B
Александр,
1. Камера вызывной панели подключена к серверу через плату видеозахвата и является в таком случае частью видеонаблюдения. Картинка выведена на домашний сайт. Кроме того, при звонке в калитку делается фотография звонящего, которая сохраняется в архив. Подключена камера коаксиальным проводом, который я когда-то вывел из дома на всякий случай. Вот, пригодился.
2. Этот замок работает по-другому. Когда замок открылся, то чтобы его снова закрыть, нужно сперва открыть дверь, а потом снова ее закрыть. Для этого там предусмотрена верхняя собачка.
3. Разумеется, никаких проблем повесить любое количество дополнительных кнопок в любом удобном месте нет. В моем случае забор не глухой, поэтому с внутренней стороны установлен такой же считыватель, а кнопка есть в доме, в прихожей.


2015-07-03 21:55:07 | Евгений
Небольшое дополнение.
Для того чтобы вызывающий посетитель слышал не звуки телефонного вызова КПВ, а например звук дверного звонка.

Добавляем отдельнный moh. У меня freepbx поэтому добавляю в файл musiconhold_custom.conf

[doorbell]
mode=files
directory=/var/lib/asterisk/moh-doorbell
format=ulaw

в папочку /var/lib/asterisk/moh-doorbell закидываем необходимый звуковой файлик в нужном формате

и немного правим команду вызова в extensions, т.е. строку из статьи

exten => 151,2,Dial(SIP/152,,t)

меняем на:

exten => 151,2,Dial(SIP/152,,tm(doorbell))

всем удачи


2015-09-20 16:37:29 | Роман
Здравствуйте Андрей, подскажите пожалуйста, камера от вызывной панели у Вас работает 24/7 или только в момент когда кто-то приходит(нажимает на кнопку)?


2015-09-21 11:30:56 | Andrey_B
Роман, камера работает всегда, 24/7.


2017-09-03 15:05:15 | Сергей
Добрый день!
Идея сурер!! Делаю такую же и нашёл Ваш сайт. У вопрос - не выполняется вот это
[macro-gate-open]
exten => s,1,System(/var/www/mod_door_open.sh &)

Даже если сделать вот так
exten => 151,1,Set(__DYNAMIC_FEATURES=gateopen)
exten => 151,2,Dial(SIP/152,,t)
exten => 151,3,System(/var/www/mod_door_open.sh &)

работает только если указано так
exten => 151,1,System(/var/www/mod_door_open.sh &)
exten => 151,2,Set(__DYNAMIC_FEATURES=gateopen)
exten => 151,3,Dial(SIP/152,,t)

У меня freepbx на малинке и тему астериска изучаю меньше недели, если вопрос глупый - не кидайте помидорами, мануалы уже тоже изучил, причину понять не могу (((


2017-09-04 18:44:27 | Сергей
С предыдущим разобрался.
Подскажите, не в курсе как можно отключить любые звуки со стороны звонящего? (длинные гудки, оповещение и недоступности и пр)