Skip to content

maragelis/ParadoxRs232toMqtt

Repository files navigation

Anyone intrested in a esp32 version running micropython check here https://github.com/maragelis/micropython_paradox

ParadoxRs232toMqtt

This project uses a WEMOS ESP8266 to read the events of the serial bus on Paradox alarm systems and send them to an MQTT server

Making a connection

There are 2 ways to connect the devices together:

  • Alarm system serial to WEMOS through RX/TX
  • paradoxTX into GPIO15 (WEMOS D8), paradoxRX to GPIO13 (WEMOS D7), using serial_swap 1

Arduino IDE settings

Edit the PubSubClient.h header file and change MQTT_MAX_PACKET_SIZE to 256

Libraries:

  • Arduino Core 2.4.1
  • WifiManager by tzapu 0.12.0
  • PubSubClient by Nick O`Leary 2.6.0

Set the Hassio flag to 1 for Home assistant, and check out the wiki (Home Assistant in V2)

The 37 byte message is broken down into a json message with "Event Group" and "Sub-group", and one more dummy attribute which is the zone/partition label.

See the wiki for more info on Groups and Sub-groups

After flashing the WEMOS board, connect to it's Wi-Fi (paradoxdCTL), open the 192.168.4.1 IP address in your browser, input your Wi-Fi credentials and MQTT server address. That's all.

MQTT Topics

Topic Notes
paradoxdCTL/out All alarm event messages
paradoxdCTL/status The program messages
paradoxdCTL/in Input topic

HomeAssistant MQTT Topics

Topic Notes
paradoxdCTL/hassio/Arm/zoneX Where x is zone number from 1-32
paradoxdCTL/hassio/Arm/zoneX Gives values ON/OFF
paradoxdCTL/hassio/Arm Gives values: disarmed, armed_home, armed_away, triggered

Sending commands

The command payloads are in JSON. Template:

{
 "password":"1234",
 "Command":"arm",
 "Subcommand":"0"
}

The password is the user's 4 digit password.

A command can be any of the following:

  • arm
  • disarm
  • sleep
  • stay
  • bypass
  • armstate
  • panelstatus
  • setdate
  • PGM_ON
  • PGM_OFF

Subcommands depending on the main command

Main Command Subcommand
arm,sleep,disarm partition
bypass The zone number from 0 to 31
panelstatus panel data
panelstatus panel voltage and battery data

Release Logs

20200126:

  1. Added ArmStatus: pending when exit delay
  2. Added Event 29 (because of change pending status to arm_away after exit delay)

20190212:

  • Added retain message on hassio/Arm topic
  • Added the ability to add credentials to mqtt.
  • Added Homekit topic for Homebridge plugin. (comming soon).

20190130: added PGM support (command "PGM_ON" subcomand "0-31)

20190114: V2 Live (Homeassistant)

20190104: Added wiki Node-red v2 flow

20190103: Added v2 test branch (stable working)

20180804: Wiki added Home Assistant Config (works with node-red)

20180721: Changed to user based password, use the same 4 digit code used on panel for control.

Continue reading the wiki for more information.