Интегрирация охранной системы Honeywell (Ademco) VISTA 10 с домашней автоматизацией FIBARO

15 февраля 2017

Интегрирация охранной системы Honeywell (Ademco) VISTA 10 с домашней автоматизацией FIBARO.


Компания Honeywell (Ademco) разрабатывает популярные охранные системы VISTA, начиная от простых VISTA-10 до богатых функционалом VISTA-250. Многофункциональные охранные системы VISTA-128/250 содержат порт RS232, что позволяет интегрировать их в любую другую систему.

Мне была поставлена задача: "Интегрировать охранную систему VISTA-10 L в систему домашней автоматизации Fibaro, из одного мобильного приложения нужно управлять и освещением и гаражными воротами и ставить дом на охрану".

При беглом изучении VISTA-10 L, выяснилось, что никакого UART там нет и в помине. К счастью на просторах американского интернета была найдена компания www.alarmdecoder.com, которая занимается разработкой плат имитирующих работу пульта управления. Плата существует в 3-х вариантах подключения: USB, RS-232, UART шилд для Raspberry Pi. Я выбрал шилд AD2Pi для Raspberry Pi.



Плата AD2Pi подключается к клеммам пульта управления и для охранной системы представляется, как еще один пульт управления и индикации.


Пульт управления и индикации (control panel)

Схема подключения проста:

AD2Pi VISTA контрольная панель
- 4 — KEYPAD GROUND (-)
+ 5 — KEYPAD PWD (+)
DI 6 — DATA IN TO KEYPAD
DO 7 — DATA OUT TO KEYPAD






После подключения AD2Pi к контрольной панели VISTA, переходим к работе с софтом. alarmdecoder позволяет полностью управлять и мониторить охранную систему.



1) Установка python библиотеки alarmdecoder


alarmdecoder позволяет принимать все системные сообщения в распарсенном виде, отправлять команды управления и настройки.



<code>pip install alarmdecoder</code>


или из git



<code>git <span class="hljs-built_in">clone</span> <a href="https://github.com/nutechsoftware/alarmdecoder.git">https://github.com/nutechsoftware/alarmdecoder.git</a>
<span class="hljs-built_in">cd</span> alarmdecoder
python setup.py install</code>
2) Установка ser2sock — Serial to Socket Redirector


ser2sock позволяет подключиться к serial порту удаленно, это нужно чтобы управлять охранной системой не только с Raspberry Pi, но и с любого другого компьютера/устройства напрямую.



<code>git <span class="hljs-built_in">clone</span> <a href="https://github.com/nutechsoftware/ser2sock.git">https://github.com/nutechsoftware/ser2sock.git</a></code>


Подробности установки тут: https://github.com/nutechsoftware/ser2sock



3) Настройка платы AD2Pi


Первым делом нужно настроить плату AD2Pi, чтобы оно передавала нам все интересующие события. Подключитесь к serial порту AD2Pi через minicom и для входа в режим настройки введите "!". Обратите внимание, что адрес виртуальной панели управления должен быть 31, LRR должен быть Y, и маска по адресам ffffffff, т.е. получать сообщения от всех.



<code>sudo minicom <span class="hljs-_">-d</span> /dev/ttyAMA0</code>




На пульте управления нужно активировать функцию отправки сообщений через LRR/GSM, тогда мы будем знать какой пользователь снял и поставил на охрану.





4) Проверка работоспособности системы


Запускаем ser2sock и слушаем порт 10000:



<code>sudo /etc/init.d/ser2sock start
nc localhost 10000</code>


Должны увидеть сообщения от системы:





5) Обработка сообщений от охранной системы




Python cкрипт отправки сообщений от alarmdecoder на контроллер автоматизации Home Center 2
Для обработки сообщения я написал небольшой python скрипт, который поставил в автозагрузку.
Скрипт подключается к сервису ser2sock, получает от него сообщения и отправляет их на контроллер автоматизации Home Center 2. На контроллере я обрабатываю сообщения, отображаю их в виртуальном устройстве и отправляю push notification о статусе охранной системы.



6) Виджет для управления охранной системой Home Center 2




На Home Center 2 я создал виртуальное устройство, с помощью которого можно ставить на охрану в разных режимах, снимать с охраны и на который выводится статус системы и информация о том кто поставил или снял с охраны.



Чтобы поставить или снять с охраны, нужно всего лишь отправить TCP запрос с кодом постановки/снятия.



Lua скрипт для обработки сообщений от alarmdecoder

Также потребовалось завести несколько глобальный переменных на Home Center 2, которые хранят текущее состояние системы и пользователей.


Всю информация, которая выводится на панель управления: снято/поставлено на охрану, сработка датчика, низкий заряд батареи датчика, переход на резервное питание и др, можно обрабатывать и отправлять в систему автоматизации для дальнейших действий.


Все устройства Home Center 2 транслируются в homebridge, что позволяет ставить на охрану и снимать с помощью голосового ассистента Siri.


Платы от alarmdecoder можно использовать с любой системой автоматизации, подробная документацияи удобный API позволяют удобно и быстро интегрировать охранную систему в любой умный дом!