pyad2usb Package

ad2usb Module

Provides the full AD2USB class and factory.

class pyad2usb.ad2usb.Overseer(attached_event=None, detached_event=None)[source]

Bases: object

Factory for creation of AD2USB devices as well as provide4s attach/detach events.”

on_attached

Called when an AD2USB device has been detected.

on_detached

Called when an AD2USB device has been removed.

classmethod find_all()[source]

Returns all AD2USB devices located on the system.

Returns:list of devices found
Raises :util.CommError
classmethod devices()[source]

Returns a cached list of AD2USB devices located on the system.

Returns:cached list of devices found.
classmethod create(device=None)[source]

Factory method that returns the requested AD2USB device, or the first device.

Parameters:device (tuple) – Tuple describing the USB device to open, as returned by find_all().
Returns:AD2USB object utilizing the specified device.
Raises :util.NoDeviceError
close()[source]

Clean up and shut down.

start()[source]

Starts the detection thread, if not already running.

stop()[source]

Stops the detection thread.

get_device(device=None)[source]

Factory method that returns the requested AD2USB device, or the first device.

Parameters:device (tuple) – Tuple describing the USB device to open, as returned by find_all().
class DetectThread(overseer)[source]

Bases: threading.Thread

Thread that handles detection of added/removed devices.

stop()[source]

Stops the thread.

run()[source]

The actual detection process.

class pyad2usb.ad2usb.AD2USB(device)[source]

Bases: object

High-level wrapper around AD2USB/AD2SERIAL devices.

on_arm

Called when the panel is armed.

on_disarm

Called when the panel is disarmed.

on_power_changed

Called when panel power switches between AC and DC.

on_alarm

Called when the alarm is triggered.

on_fire

Called when a fire is detected.

on_bypass

Called when a zone is bypassed.

on_boot

Called when the device finishes bootings.

on_config_received

Called when the device receives its configuration.

on_zone_fault

Called when the device detects a zone fault.

on_zone_restore

Called when the device detects that a fault is restored.

on_low_battery

Called when the device detects a low battery.

on_panic

Called when the device detects a panic.

on_message

Called when a message has been received from the device.

on_lrr_message

Called when an LRR message is received.

on_open

Called when the device has been opened.

on_close

Called when the device has been closed.

on_read

Called when a line has been read from the device.

on_write

Called when data has been written to the device.

F1 = u'\x01\x01\x01'

Represents panel function key #1

F2 = u'\x02\x02\x02'

Represents panel function key #2

F3 = u'\x03\x03\x03'

Represents panel function key #3

F4 = u'\x04\x04\x04'

Represents panel function key #4

BATTERY_TIMEOUT = 30

Timeout before the battery status reverts.

FIRE_TIMEOUT = 30

Timeout before the fire status reverts.

id[source]

The ID of the AD2USB device.

Returns:The identification string for the device.
open(baudrate=None, interface=None, index=None, no_reader_thread=False)[source]

Opens the device.

Parameters:
  • baudrate (int) – The baudrate used for the device.
  • interface (varies depends on device type.. FIXME) – The interface used for the device.
  • index (int) – Interface index.. can probably remove. FIXME
  • no_reader_thread (bool) – Specifies whether or not the automatic reader thread should be started or not
close()[source]

Closes the device.

get_config()[source]

Retrieves the configuration from the device.

save_config()

Sets configuration entries on the device.

reboot()[source]

Reboots the device.

fault_zone(zone, simulate_wire_problem=False)

Faults a zone if we are emulating a zone expander.

Parameters:
  • zone (int) – The zone to fault.
  • simulate_wire_problem (bool) – Whether or not to simulate a wire fault.
clear_zone(zone)

Clears a zone if we are emulating a zone expander.

Parameters:zone (int) – The zone to clear.

devices Module

Contains different types of devices belonging to the AD2USB family.

class pyad2usb.devices.Device[source]

Bases: object

Generic parent device to all AD2USB products.

on_open

Called when the device has been opened

on_close

Called when the device has been closed

on_read

Called when a line has been read from the device

on_write

Called when data has been written to the device

id[source]

Retrieve the device ID.

Returns:The identification string for the device.
is_reader_alive()[source]

Indicates whether or not the reader thread is alive.

Returns:Whether or not the reader thread is alive.
stop_reader()[source]

Stops the reader thread.

class ReadThread(device)[source]

Bases: threading.Thread

Reader thread which processes messages from the device.

READ_TIMEOUT = 10

Timeout for the reader thread.

stop()[source]

Stops the running thread.

run()[source]

The actual read process.

class pyad2usb.devices.USBDevice(vid=1027, pid=24577, serial=None, description=None, interface=0)[source]

Bases: pyad2usb.devices.Device

AD2USB device exposed with PyFTDI’s interface.

FTDI_VENDOR_ID = 1027

Vendor ID used to recognize AD2USB devices.

FTDI_PRODUCT_ID = 24577

Product ID used to recognize AD2USB devices.

BAUDRATE = 115200

Default baudrate for AD2USB devices.

static find_all()[source]

Returns all FTDI devices matching our vendor and product IDs.

Returns:list of devices
Raises :util.CommError
open(baudrate=115200, interface=None, index=0, no_reader_thread=False)[source]

Opens the device.

Parameters:
  • baudrate (int) – The baudrate to use.
  • interface (int) – The interface to use.
  • no_reader_thread (bool) – Whether or not to automatically start the reader thread.
Raises :

util.NoDeviceError

close()[source]

Closes the device.

write(data)[source]

Writes data to the device.

Parameters:data (str) – Data to write
Raises :util.CommError
read()[source]

Reads a single character from the device.

Returns:The character read from the device.
Raises :util.CommError
read_line(timeout=0.0, purge_buffer=False)[source]

Reads a line from the device.

Parameters:
  • timeout (float) – Read timeout
  • purge_buffer (bool) – Indicates whether to purge the buffer prior to reading.
Returns:

The line that was read.

Raises :

util.CommError, util.TimeoutError

class pyad2usb.devices.SerialDevice(interface=None)[source]

Bases: pyad2usb.devices.Device

AD2USB or AD2SERIAL device exposed with the pyserial interface.

BAUDRATE = 19200

Default baudrate for Serial devices.

static find_all(pattern=None)[source]

Returns all serial ports present.

Parameters:pattern (str) – Pattern to search for when retrieving serial ports.
Returns:list of devices
Raises :util.CommError
open(baudrate=19200, interface=None, index=None, no_reader_thread=False)[source]

Opens the device.

Parameters:
  • baudrate (int) – The baudrate to use with the device.
  • interface (str) – The device to open.
  • index (int) – Unused.
  • no_reader_thread (bool) – Whether or not to automatically start the reader thread.
Raises :

util.NoDeviceError

close()[source]

Closes the device.

write(data)[source]

Writes data to the device.

Parameters:data (str) – The data to write.
Raises :util.CommError
read()[source]

Reads a single character from the device.

Returns:The character read from the device.
Raises :util.CommError
read_line(timeout=0.0, purge_buffer=False)[source]

Reads a line from the device.

Parameters:
  • timeout (float) – The read timeout.
  • purge_buffer (bool) – Indicates whether to purge the buffer prior to reading.
Returns:

The line read.

Raises :

util.CommError, util.TimeoutError

class pyad2usb.devices.SocketDevice(interface=('localhost', 10000))[source]

Bases: pyad2usb.devices.Device

Device that supports communication with an AD2USB that is exposed via ser2sock or another Serial to IP interface.

open(baudrate=None, interface=None, index=0, no_reader_thread=False)[source]

Opens the device.

Parameters:
  • baudrate (int) – The baudrate to use
  • interface (tuple) – The hostname and port to connect to.
  • index (int) – Unused
  • no_reader_thread (bool) – Whether or not to automatically open the reader thread.
Raises :

util.NoDeviceError

close()[source]

Closes the device.

write(data)[source]

Writes data to the device.

Parameters:data (str) – The data to write.
Returns:The number of bytes sent.
Raises :util.CommError
read()[source]

Reads a single character from the device.

Returns:The character read from the device.
Raises :util.CommError
read_line(timeout=0.0, purge_buffer=False)[source]

Reads a line from the device.

Parameters:
  • timeout (float) – The read timeout.
  • purge_buffer (bool) – Indicates whether to purge the buffer prior to reading.
Returns:

The line read from the device.

Raises :

util.CommError, util.TimeoutError

util Module

Provides utility classes for the AD2USB devices.

exception pyad2usb.util.NoDeviceError[source]

Bases: exceptions.Exception

No devices found.

exception pyad2usb.util.CommError[source]

Bases: exceptions.Exception

There was an error communicating with the device.

exception pyad2usb.util.TimeoutError[source]

Bases: exceptions.Exception

There was a timeout while trying to communicate with the device.

exception pyad2usb.util.InvalidMessageError[source]

Bases: exceptions.Exception

The format of the panel message was invalid.

class pyad2usb.util.Firmware[source]

Bases: object

Represents firmware for the AD2USB/AD2SERIAL devices.

STAGE_START = 0
STAGE_WAITING = 1
STAGE_BOOT = 2
STAGE_LOAD = 3
STAGE_UPLOADING = 4
STAGE_DONE = 5
static upload(dev, filename, progress_callback=None)[source]

Uploads firmware to an AD2USB/AD2SERIAL device.

Parameters:
  • filename (str) – The firmware filename
  • progress_callback (function) – Callback function used to report progress.
Raises :

util.NoDeviceError, util.TimeoutError

zonetracking Module

Provides zone tracking functionality for the AD2USB device family.

class pyad2usb.zonetracking.Zone(zone=0, name='', status=0)[source]

Bases: object

Representation of a panel zone.

CLEAR = 0

Status indicating that the zone is cleared.

FAULT = 1

Status indicating that the zone is faulted.

CHECK = 2

Status indicating that there is a wiring issue with the zone.

STATUS = {0: 'CLEAR', 1: 'FAULT', 2: 'CHECK'}
class pyad2usb.zonetracking.Zonetracker[source]

Bases: object

Handles tracking of zone and their statuses.

on_fault

Called when the device detects a zone fault.

on_restore

Called when the device detects that a fault is restored.

EXPIRE = 30

Zone expiration timeout.

update(message)[source]

Update zone statuses based on the current message.

Parameters:message (Message or ExpanderMessage) – Message to use to update the zone tracking.

panels Module

Representations of Panels and their templates.

messages Module

Message representations received from the panel through the AD2USB.

class pyad2usb.messages.Message(data=None)[source]

Bases: object

Represents a message from the alarm panel.

class pyad2usb.messages.ExpanderMessage(data=None)[source]

Bases: object

Represents a message from a zone or relay expansion module.

ZONE = 0
RELAY = 1
class pyad2usb.messages.RFMessage(data=None)[source]

Bases: object

Represents a message from an RF receiver.

class pyad2usb.messages.LRRMessage(data=None)[source]

Bases: object

Represent a message from a Long Range Radio.

Table Of Contents

Previous topic

Welcome to pyad2usb’s documentation!

Next topic

event Package

This Page