Paradox Alarm integration with PAI

Here is my comprehensive guide on how to use PAI with openHAB.

Introduction

I had used other connectors for my Paradox system to connect it to openHAB, but at last I sticked to PAI, because this is the only solution which can control and read all (or at least all) properties in the Paradox Alarm System.

I use PaperUI to config my things so I can’t provide Things configuration to the MQTT things used in this tutorial. However if some of you runs the same thing with things files, DM me so that I can add these to the guide as well.

Installation

Follow the steps in the README, and look at the Wiki page, there is other important info there as well.
Basically after install (I recommend using Docker) you just need to fill in the config file.
It should be straightforward. You need to enable MQTT (and you need an MQTT broker as well if you don’t have one yet) and choose a method on how to connect to your Paradox Panel.
One thing to add: enable MQTT_HOMEBRIDGE_ENABLE so that we will have a /current topic. This is required to work on openHAB.

Configuration

Create a new MQTT Thing from the Inbox. We will add all the channels to this Thing.

Sensors

To add the capability to read the state of your zones, add a new channel to your Thing. Configure each sensors like this:
  • Select Contact Sensor type from the dropdown menu
  • MQTT state topic should be something like: paradox/states/zones/zone_name/open. Where zone_name is the name of your zone.
  • Set the On/Open Value to True and the Off/Closed value to False.

To get if the current zone is triggered by the alarm, you need to setup a new channel with the following properties:

  • Create a new channel and select Switch type
  • MQTT state topic should be something like: paradox/states/zones/zone_name/alarm. Where zone_name is the name of your zone.
  • Set the On/Open Value to True and the Off/Closed value to False.
    You can use these channels in rules, where these Switches will be only triggered if the alarm is detected movement when the system is armed.

You can also get if one of the zones is bypassed or not. You can also change this setting from openHAB!
This is not required but if you want to add this capability, do the following:

  • Create a new channel and select Switch type
  • MQTT state topic should be something like: paradox/states/zones/zone_name/bypassed. Where zone_name is the name of your zone.
  • MQTT command topic should be something like: paradox/control/zones/zone_name. Where zone_name is the name of your zone.
  • Incoming value transformation: You need to add a MAP file to work. Name it bypass.map and add this to the Incoming value transformation: MAP:bypass.map.
    The bypass.map file should contain this:
True=bypass
False=clear_bypass
bypass=ON
clear_bypass=OFF
  • Set the On/Open Value to bypass and the Off/Closed value to clear_bypass.

Arm state control

To get the current state of Arm and also be able to set the current state do the following (I'm only using in my setup the ARM and STAY function of my Alarm System so I don't have SLEEP mode installed. However you can do it easily by copying this methods):
  • Create a new channel and select String type.
  • MQTT state topic should be something like: paradox/states/partitions/partition_name/current. Where partition_name is the name of your partition.
  • MQTT command topic should be something like: paradox/control/partitions/partition_name. Where partition_name is the name of your partition.
  • Incoming value transformation: You need another MAP file to get this working. Add something like alarmstate.map, so the incoming value transformation should be: MAP:alarmstate.map
    The alarmstate.map contains:
arm=AWAY_ARM
stay_arm=STAY_ARM
disarm=DISARM
AWAY_ARM=AWAY_ARM
STAY_ARM=STAY_ARM
DISARMED=DISARM
  • Set allowed states to: AWAY_ARM, STAY_ARM, DISARM, DISARMED. Also set here the sleep mode if you want to use it.

This is mostly the basics which you’ll need. You can have a look at the Wiki or README, you can get other statistics from the Alarm Panel like DC voltage, Battery voltage, Trouble codes, etc…

2 Likes