Skip to main content
The Pushbullet integration lets PAI send alarm event notifications to your Android, iOS, and desktop devices. It also listens for incoming Pushbullet messages so you can send control commands back to the panel from any connected device.

Prerequisites

Pushbullet account

Create a free account at pushbullet.com.

API key

Generate an access token from Settings → Account in the Pushbullet web app.

Installation

The Pushbullet integration requires two additional packages: pushbullet.py and ws4py. Install them with the Pushbullet extra:
pip install "paradox-alarm-interface[Pushbullet]"
This installs pushbullet.py>=0.11.0 and ws4py>=0.4.2.

Configuration

Add the following to your pai.conf:
pai.conf
PUSHBULLET_ENABLE = True
PUSHBULLET_KEY = '<your-api-key>'         # Authentication key from Pushbullet settings
PUSHBULLET_DEVICE = 'pai'                 # Device nickname to send notifications from
PUSHBULLET_CONTACTS = ['[email protected]'] # Pushbullet user emails allowed to send commands

PUSHBULLET_MIN_EVENT_LEVEL = 'INFO'       # Minimum event level: DEBUG, INFO, WARN, ERROR, CRITICAL

# Event filtering by tags (default):
PUSHBULLET_EVENT_FILTERS = [
    'live,alarm,-restore',  # Live alarm events, excluding restores
    'trouble,-clock',       # Trouble events, excluding clock trouble
    'live,tamper',          # Live tamper events
]

Configuration reference

Enable or disable the Pushbullet interface. Set to True to activate.Default: False
Your Pushbullet API access token. Generate it from Settings → Account on the Pushbullet website.Default: ''
The nickname of the Pushbullet device that PAI registers and sends notifications from. If a device with this name does not exist, PAI creates one automatically with icon system.Default: 'pai'
A list of Pushbullet user email addresses that are allowed to send commands to the panel and receive notifications. Messages from email addresses not in this list are logged as unknown and ignored.Default: []
The minimum severity level for events to be forwarded. Accepted values: DEBUG, INFO, WARN, ERROR, CRITICAL.Default: 'INFO'
A list of tag expressions that control which events are sent. Each entry is a comma-separated list of tags; a - prefix excludes a tag. An event matches if all tags in any one expression match. This option cannot be combined with PUSHBULLET_ALLOW_EVENTS.Default:
[
    'live,alarm,-restore',
    'trouble,-clock',
    'live,tamper',
]
Alternative to PUSHBULLET_EVENT_FILTERS using regular expressions.
  • PUSHBULLET_ALLOW_EVENTS — list of regex patterns matching type,label,property=value for events to forward.
  • PUSHBULLET_IGNORE_EVENTS — list of regex patterns for events to suppress, applied after ALLOW_EVENTS.
Example:
PUSHBULLET_ALLOW_EVENTS = [r".*"]
PUSHBULLET_IGNORE_EVENTS = [
    r"zone,[\w]+,no_delay=True",
    r"zone,[\w]+,exit_delay=.*",
]
Default: [] for both

Example configuration

PUSHBULLET_ENABLE = True
PUSHBULLET_KEY = 'o.AbCdEfGhIjKlMnOpQrStUvWxYz123456'
PUSHBULLET_DEVICE = 'pai'
PUSHBULLET_CONTACTS = ['[email protected]']
PUSHBULLET_MIN_EVENT_LEVEL = 'INFO'
PUSHBULLET_EVENT_FILTERS = [
    'live,alarm,-restore',
    'trouble,-clock',
    'live,tamper',
]

How event filtering works

PAI applies event filters before sending a notification. You can use one of two mutually exclusive approaches:
Each entry in PUSHBULLET_EVENT_FILTERS is a comma-separated list of tags. A - prefix means the tag must not be present. An event is forwarded if it matches all tags in any one filter entry.
PUSHBULLET_EVENT_FILTERS = [
    'live,alarm,-restore',  # live alarm events that are not restores
    'trouble,-clock',       # trouble events that are not clock-related
    'live,tamper',          # live tamper events
]
Do not set both PUSHBULLET_EVENT_FILTERS and PUSHBULLET_ALLOW_EVENTS at the same time. Use one approach or the other.

Build docs developers (and LLMs) love