.. _AlarmDecoder: http://www.alarmdecoder.com .. _ser2sock: http://github.com/nutechsoftware/ser2sock .. _pyftdi: https://github.com/eblot/pyftdi .. _pyusb: http://sourceforge.net/apps/trac/pyusb .. _pyserial: http://pyserial.sourceforge.net .. _pyopenssl: https://launchpad.net/pyopenssl .. _readthedocs: http://alarmdecoder.readthedocs.org .. _examples: http://github.com/nutechsoftware/alarmdecoder/tree/master/examples ============ AlarmDecoder ============ ------- Summary ------- This Python library aims to provide a consistent interface for the `AlarmDecoder`_ product line. (AD2USB, AD2SERIAL and AD2PI) This also includes devices that have been exposed via `ser2sock`_, which supports encryption via SSL/TLS. ------------ Installation ------------ AlarmDecoder can be installed through pip: pip install alarmdecoder or from source: python setup.py install * Note: python-setuptools is required for installation. ------------ Requirements ------------ * An `AlarmDecoder`_ device * Python 2.7 * `pyftdi`_ >= 0.9.0 * `pyusb`_ >= 1.0.0b1 * `pyserial`_ >= 2.7 * `pyopenssl`_ ------------- Documentation ------------- API documentation can be found at `readthedocs`_. -------- Examples -------- A basic example is included below. Please see the `examples`_ directory for more.:: import time from alarmdecoder import AlarmDecoder from alarmdecoder.devices import USBDevice def main(): """ Example application that prints messages from the panel to the terminal. """ try: # Retrieve the first USB device device = AlarmDecoder(USBDevice.find()) # Set up an event handler and open the device device.on_message += handle_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 sender, message.raw if __name__ == '__main__': main()