Honeywell (Ademco) sedang mengembangkan sistem keamanan VISTA yang populer, mulai dari VISTA-10 sederhana hingga VISTA-250 yang kaya. VISTA-128/250 sistem keamanan multifungsi berisi port RS232, yang memungkinkan Anda untuk mengintegrasikannya ke sistem lain.Saya diberi tugas: "Untuk mengintegrasikan sistem keamanan VISTA-10 L ke dalam sistem otomasi rumah Fibaro, dari satu aplikasi seluler Anda perlu mengontrol pencahayaan dan pintu garasi serta mempersenjatai rumah ."Sebuah studi sepintas VISTA-10 L, ternyata tidak ada UART sama sekali. Untungnya, perusahaan www.alarmdecoder.com ditemukan di hamparan Internet Amerika, yang mengembangkan papan mensimulasikan operasi panel kontrol. Papan ada dalam 3 opsi koneksi: USB, RS-232, perisai UART untuk Raspberry Pi. Saya memilih perisai AD2Pi untuk Raspberry Pi.
Papan AD2Pi terhubung ke terminal panel kontrol dan untuk sistem keamanan ditampilkan sebagai kontrol lain dan panel display.
Remote control dan display (panel kontrol)Diagram koneksi sederhana:AD2Pi | Panel kontrol VISTA |
- | 4 - KEYPAD GROUND (-) |
+ | 5 - KEYPAD PWD (+) |
DI | 6 - DATA IN KE KEYPAD |
LAKUKAN | 7 - DATA OUT KEYPAD |

Setelah menghubungkan AD2Pi ke panel kontrol VISTA, kami melanjutkan bekerja dengan perangkat lunak. alarmdecoder memungkinkan Anda untuk sepenuhnya mengontrol dan memantau sistem keamanan.1) Instal perpustakaan python alarmdecoder
alarmdecoder memungkinkan Anda untuk menerima semua pesan sistem dalam bentuk parsing, mengirim kontrol dan perintah konfigurasi.pip install alarmdecoder
atau dari gitgit clone https://github.com/nutechsoftware/alarmdecoder.git
cd alarmdecoder
python setup.py install
2) Memasang ser2sock - Serial to Socket Redirector
ser2sock memungkinkan Anda untuk terhubung ke port serial dari jarak jauh, ini diperlukan untuk mengontrol sistem keamanan tidak hanya dengan Raspberry Pi, tetapi juga dari komputer / perangkat lain secara langsung.git clone https://github.com/nutechsoftware/ser2sock.git
Detail instalasi di sini: https://github.com/nutechsoftware/ser2sock3) pengaturan papan AD2Pi
Pertama-tama, Anda perlu mengonfigurasi papan AD2Pi agar dapat menyampaikan kepada kami semua acara yang menarik. Hubungkan ke port serial AD2Pi via minicom dan masukkan "!" Untuk masuk ke mode konfigurasi. Perhatikan bahwa alamat panel kontrol virtual harus 31, LRR harus Y, dan mask di alamat ffffffff, mis. Terima pesan dari semua orang.sudo minicom -d /dev/ttyAMA0
Pada panel kontrol, Anda perlu mengaktifkan fungsi pengiriman pesan melalui LRR / GSM, maka kita akan tahu pengguna mana yang telah dihapus dan dipersenjatai.
4) Memeriksa kesehatan sistem
Jalankan ser2sock dan dengarkan port 10000:sudo /etc/init.d/ser2sock start
nc localhost 10000
Harus melihat pesan dari sistem:
5) Memproses pesan dari sistem keamanan

Skrip python untuk mengirim pesan dari alarmdecoder ke pengontrol otomatisasi Home Center 2
import json
import base64
import time
from time import gmtime, strftime
import requests
from requests.auth import HTTPBasicAuth
from alarmdecoder import AlarmDecoder
from alarmdecoder.devices import SocketDevice
HOSTNAME = 'localhost'
PORT = 10000
username = "admin"
password = "admin"
def main():
"""
Example application that prints messages from the panel to the terminal.
"""
try:
device = AlarmDecoder(SocketDevice(interface=(HOSTNAME, PORT)))
device.on_message += handle_message
device.on_lrr_message += handle_lrr_message
with device.open():
while True:
time.sleep(1)
except Exception, ex:
print 'Exception:', ex
def handle_message(sender, message):
"""
Handles message events from the AlarmDecoder.
"""
print message.text
jsonData = {"value":message.text}
requests.put('http://10.0.1.43/api/globalVariables/AlarmStatus', json = jsonData, auth=HTTPBasicAuth(username, password))
def handle_lrr_message(sender, message):
"""
Handles message events from the AlarmDecoder.
"""
lrr_message = message.event_data + " " + message.event_type
print lrr_message
jsonData = {"value":lrr_message}
requests.put('http://10.0.1.43/api/globalVariables/AlarmUsers', json = jsonData, auth=HTTPBasicAuth(username, password))
if __name__ == '__main__':
main()
Untuk memproses pesan, saya menulis skrip python kecil yang meletakkannya di autoload.Script terhubung ke layanan ser2sock, menerima pesan darinya dan mengirimkannya ke pengontrol otomasi Home Center 2. Pada pengontrol, saya memproses pesan, menampilkannya di perangkat virtual dan mengirim pemberitahuan push tentang status sistem keamanan.6) Widget untuk mengelola sistem alarm Home Center 2
Di Home Center 2, saya membuat perangkat virtual yang dengannya Anda dapat mempersenjatai dalam berbagai mode, melucuti, dan yang menampilkan status sistem dan informasi tentang siapa yang mengatur atau melucuti senjata.Untuk mempersenjatai atau melucuti senjata, Anda hanya perlu mengirim permintaan TCP dengan kode lengan / melucuti senjata.
Script Lua untuk memproses pesan dari alarmdecoder
securityStatus = fibaro:getGlobalValue('AlarmStatus')
lastSecurityStatus = fibaro:getGlobalValue('lastSecurityStatus')
if (lastSecurityStatus ~= securityStatus) then
fibaro:call(108, "setProperty", "ui.Label1.value", os.date("%x %X ") .. securityStatus)
fibaro:setGlobal('lastSecurityStatus',securityStatus)
fibaro:debug(fibaro:getValue(108, 'ui.Label1.value'))
end
alarmUsers = fibaro:getGlobalValue('AlarmUsers')
lastAlarmUsers = fibaro:getGlobalValue('lastAlarmUsers')
if (lastAlarmUsers ~= alarmUsers) then
fibaro:setGlobal('lastAlarmUsers',alarmUsers)
userID = string.sub(alarmUsers, 3, 3)
event = string.sub(alarmUsers, 5)
if userID == "4" then
userID = "Raspberry"
elseif userID == "3" then
userID = ""
elseif userID == "2" then
userID = ""
end
if event == "ARM_AWAY" then
event = " "
elseif event == "ARM_STAY" then
event = " "
elseif event == "OPEN" then
event = " "
end
fibaro:call(108, "setProperty", "ui.Label2.value", event .. " " .. userID)
fibaro:debug(fibaro:getValue(108, 'ui.Label2.value'))
fibaro:call(100, "sendPush", fibaro:getValue(108, 'ui.Label2.value'))
fibaro:call(25, "sendPush", fibaro:getValue(108, 'ui.Label2.value'))
end
Itu juga diperlukan untuk membuat beberapa variabel global di Home Center 2, yang menyimpan keadaan sistem dan pengguna saat ini.
Semua informasi yang ditampilkan pada panel kontrol: dilucuti / dipersenjatai, aktivasi sensor, baterai sensor rendah, beralih ke daya cadangan, dll., Dapat diproses dan dikirim ke sistem otomasi untuk tindakan lebih lanjut.Semua perangkat Home Center 2 disiarkan ke perangkat rumah , yang memungkinkan Anda untuk mempersenjatai dan menghapus menggunakan asisten suara Siri.Papan dari alarmdecoder dapat digunakan dengan sistem otomasi apa pun, dokumentasi terperinci , dan API yang nyaman memungkinkan Anda untuk dengan mudah dan cepat mengintegrasikan sistem keamanan ke rumah pintar mana pun!