ipodmusicman / paradox-controller

Paradox bridge between Paradox alarm systems and MQTT
20 stars 7 forks source link
alarm arduino esp8266 mqtt paradox

Update

I've decided to use PAI (https://github.com/ParadoxAlarmInterface/pai) instead of this sketch for my Paradox integration with Home Assistant. PAI is super feature rich and a lot more stable. As such, this project is no longer going to be actively maintained.

Paradox Controller

This ESP8266 sketch acts as a bridge between Paradox alarm systems and platforms supporting MQTT. To coin the phase "Making your dumpb alarm system, a smart alarm system". :) This controller works with various Paradox alarm systems that support the serial port control protocol. This was tested on a Paradox SP6000. The MQTT interface is compatbile with MQTT Alarm Panel as defined within Home Assistant. This means that you can configure the MQTT alarm panel within Home Assistant and configure the required MQTT topics in order to arm/disarm your alarm as well as get alarted when the alarm has been triggered. This sketch supports the management of up to two alarm partitions.

The controller supports the following features:

Outstanding:

Getting Started

Prerequisites

You'll need the following:

Installing

Connecting to Paramdox alarm main board

Locate the serial port on the main board. On the SP6000, there is a 4 PIN connector on the top right of the board, but each model of the board can be different. The pinouts are

Connect the corresponding pins to your ESP8266 board. You might find that you'd need to swop the Rx/Tx jumper wires around depending on your set up.

MQTT Topics

The controller sends data on the following topics:

The controller can receive commands on the following topics:

To configure in Home Assistant

Edit your configuration.yaml file and add the following entries. Note that my alarm has two partitions so two alarm panels are added.

alarm_control_panel:
 - platform: mqtt
   name: paradox_alarm_partition_1
   unique_id: paradox_alarm_partition_1
   state_topic: "paradox/alarm_status/1"
   command_topic: "paradox/action/1"
   availability_topic:  "paradox/status"
 - platform: mqtt
   name: paradox_alarm_partition_2
   unique_id: paradox_alarm_partition_2
   state_topic: "paradox/alarm_status/2"
   command_topic: "paradox/action/2"
   availability_topic:  "paradox/status"

In order to add the zones as binary sensors, duplicate each zone into your configuration.yaml as below, but changing the state_topic from zone/1 to zone/2, zone/3 etc for each zone. Give it a good name for each zone and a device class.

eg:

binary_sensor:
  - platform: mqtt
    name: Lounge Window
    state_topic: "paradox/event/zone/1"
    device_class: window
    payload_on: 1
    payload_off: 0

Acknowledgments