Texecom makes a nice range of alarm systems called Premier Elite, with products suited for everything from high-end domestic up to large commercial deployments. The range includes two IP-based communicator modules for wired (Com-IP) or wireless (Com-WiFi) operation.
Normally these communicators would be used with Texecom’s own alarm receiving service, or with a paid-for third-party monitoring service using proprietary software. I wanted to have a way to integrate the alarm with my own monitoring infrastructure, and with some other IoT projects I’ve got going on, so I spent some time reverse engineering the protocol.
The result of this is a simple Python-based server available on Github which can receive and interpret polling requests and other messages from the alarm in either ContactID or SIA format. Status updates are then forwarded to interested parties via secure MQTT.
The basic Texecom protocol is unfortunately not very secure at all, having no authentication features beyond the possibility of white-listing a source IP address (which my server supports). A recent firmware update for the Premier Elite panels does add encryption support, however, which is something that I will be taking a look at in due course.