 A Honeywell (Ademco) está desenvolvendo sistemas populares de segurança VISTA, variando de simples VISTA-10s a ricos VISTA-250s. Os sistemas de segurança multifuncional VISTA-128/250 contêm uma porta RS232, que permite integrá-los a qualquer outro sistema.Foi-me dada a tarefa: "Para integrar o sistema de segurança VISTA-10 L ao sistema de automação residencial Fibaro, a partir de um aplicativo móvel, você precisa controlar a iluminação e as portas da garagem e armar a casa ".Um estudo superficial do VISTA-10 L revelou que não existe UART. Felizmente, a empresa www.alarmdecoder.com foi encontrada nas extensões da Internet americana, que está desenvolvendo placas que simulam a operação do painel de controle. A placa existe em 3 opções de conexão: USB, RS-232, blindagem UART para Raspberry Pi. Eu escolhi o escudo AD2Pi para o Raspberry Pi.
A Honeywell (Ademco) está desenvolvendo sistemas populares de segurança VISTA, variando de simples VISTA-10s a ricos VISTA-250s. Os sistemas de segurança multifuncional VISTA-128/250 contêm uma porta RS232, que permite integrá-los a qualquer outro sistema.Foi-me dada a tarefa: "Para integrar o sistema de segurança VISTA-10 L ao sistema de automação residencial Fibaro, a partir de um aplicativo móvel, você precisa controlar a iluminação e as portas da garagem e armar a casa ".Um estudo superficial do VISTA-10 L revelou que não existe UART. Felizmente, a empresa www.alarmdecoder.com foi encontrada nas extensões da Internet americana, que está desenvolvendo placas que simulam a operação do painel de controle. A placa existe em 3 opções de conexão: USB, RS-232, blindagem UART para Raspberry Pi. Eu escolhi o escudo AD2Pi para o Raspberry Pi. A placa AD2Pi é conectada aos terminais do painel de controle e, para o sistema de segurança, é apresentada como outro painel de controle e exibição.
A placa AD2Pi é conectada aos terminais do painel de controle e, para o sistema de segurança, é apresentada como outro painel de controle e exibição. Controle remoto e display (painel de controle)O diagrama de conexão é simples:
Controle remoto e display (painel de controle)O diagrama de conexão é simples:| AD2Pi | Painel de controle VISTA | 
| - | 4 - TERRA DO TECLADO (-) | 
| + | 5 - PWD COM TECLADO (+) | 
| DI | 6 - DADOS NO TECLADO | 
| FAZER | 7 - DADOS PARA O TECLADO | 

 Depois de conectar o AD2Pi ao painel de controle VISTA, continuamos a trabalhar com o software. O alarmdecoder permite controlar e monitorar totalmente o sistema de segurança.
Depois de conectar o AD2Pi ao painel de controle VISTA, continuamos a trabalhar com o software. O alarmdecoder permite controlar e monitorar totalmente o sistema de segurança.1) Instale a biblioteca python alarmdecoder
O alarmdecoder permite que você receba todas as mensagens do sistema em formato analisado, envie comandos de controle e configuração.pip install alarmdecoder
ou do gitgit clone https://github.com/nutechsoftware/alarmdecoder.git
cd alarmdecoder
python setup.py install
2) Instalação do ser2sock - redirecionador serial para soquete
O ser2sock permite conectar-se à porta serial remotamente, isso é necessário para controlar o sistema de segurança não apenas com o Raspberry Pi, mas também diretamente em qualquer outro computador / dispositivo.git clone https://github.com/nutechsoftware/ser2sock.git
Detalhes da instalação aqui: https://github.com/nutechsoftware/ser2sock3) Configuração da placa AD2Pi
Primeiro de tudo, você precisa configurar a placa AD2Pi para que ela nos transmita todos os eventos de interesse. Conecte-se à porta serial AD2Pi via minicom e digite "!" Para entrar no modo de configuração. Observe que o endereço do painel de controle virtual deve ser 31, o LRR deve ser Y e a máscara nos endereços ffffffff, ou seja, Receba mensagens de todos.sudo minicom -d /dev/ttyAMA0
 No painel de controle, você precisa ativar a função de enviar mensagens via LRR / GSM, para saber qual usuário foi removido e armado.
No painel de controle, você precisa ativar a função de enviar mensagens via LRR / GSM, para saber qual usuário foi removido e armado.
4) Verificando a integridade do sistema
Execute ser2sock e ouça a porta 10000:sudo /etc/init.d/ser2sock start
nc localhost 10000
É necessário ver as mensagens do sistema:
5) Processando mensagens do sistema de segurança

Script Python para enviar mensagens do alarmdecoder para o controlador de automação do 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()
 Para processar a mensagem, escrevi um pequeno script python que o colocou no carregamento automático.O script se conecta ao serviço ser2sock, recebe mensagens dele e as envia para o controlador de automação do Home Center 2. No controlador, eu processo as mensagens, as mostro em um dispositivo virtual e envio uma notificação por push sobre o status do sistema de segurança.6) Widget para gerenciar o sistema de alarme do Home Center 2
 No Home Center 2, criei um dispositivo virtual com o qual você pode armar em diferentes modos, desarmar e exibir o status do sistema e informações sobre quem configurou ou desarmou.Para armar ou desarmar, basta enviar uma solicitação TCP com o código armar / desarmar.
No Home Center 2, criei um dispositivo virtual com o qual você pode armar em diferentes modos, desarmar e exibir o status do sistema e informações sobre quem configurou ou desarmou.Para armar ou desarmar, basta enviar uma solicitação TCP com o código armar / desarmar.
Script Lua para processar mensagens do 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
  
 Também foi necessário criar várias variáveis globais no Home Center 2, que armazenam o estado atual do sistema e dos usuários. Todas as informações exibidas no painel de controle: desarmadas / armadas, ativação do sensor, bateria fraca do sensor, mudança para energia de reserva, etc., podem ser processadas e enviadas ao sistema de automação para ações adicionais.Todos os dispositivos do Home Center 2 são transmitidos para homebridge , o que permite armar e remover usando o assistente de voz da Siri.As placas do decodificador de alarme podem ser usadas com qualquer sistema de automação, documentação detalhada e uma API conveniente, permitindo a integração rápida e conveniente do sistema de segurança em qualquer casa inteligente!
Todas as informações exibidas no painel de controle: desarmadas / armadas, ativação do sensor, bateria fraca do sensor, mudança para energia de reserva, etc., podem ser processadas e enviadas ao sistema de automação para ações adicionais.Todos os dispositivos do Home Center 2 são transmitidos para homebridge , o que permite armar e remover usando o assistente de voz da Siri.As placas do decodificador de alarme podem ser usadas com qualquer sistema de automação, documentação detalhada e uma API conveniente, permitindo a integração rápida e conveniente do sistema de segurança em qualquer casa inteligente!