Paradox IP150 and Home Automation

, posted: 6-Mar-2019 21:57

Below is a bit of a primer for connecting to a Paradox SP6000 via the IP150 module for the purposes of controlling via home automation software.

Hardware:

  • Spectra SP6000, IP150 Module with firmware < v3 - Firmware 1.x Works best due to changes that Paradox have implemented forcing users to their cloud service.
  • PIR sensors in most rooms, reed sensors on external doors.
  • Something to run the service on (raspberry pi works well).

Software:

What you'll need:

  • IP Address of your IP module (or dns name)
  • Password (same password you'd use for connecting to the IP Module web page)
  • PC Password - this is found in babyware (Babyware 2.1 - Communication/Panel ID / Password)
  • MQTT Server Address

Running

I'll assume the docker method for runtime as I moved to this, and can't see me going back.  It just seems to work much better.

For Docker, pull the image:

docker pull psyciknz/paradoxip

Create the config.ini (copy from https://github.com/psyciknz/ParadoxIP150v2/blob/master/config.master.ini) and set the appropriate config values:

[IP150
Pincode: 1234 ;PC Password (from Winload/Babyware)
Password: abcd
IP: 10.0.0.120
IP_Software_Port: 10000
 
[MQTT Broker]
IP: 127.0.0.1
Port: 1883

When that created, run the docker container with

docker run -v /path_to_config/:

/opt/paradox/conf psyciknz/paradoxip

Hopefully you've got the PC Password right, as with that you'll see the logs connect and pull the zone labels.  If that's not right then it will connect, and I believe get live events.  But you wont be able to control.

2019-03-07 07:45:08,983 INFO config.ini file read successfully: 1
2019-03-07 07:45:08,983 INFO State01:Attempting connection to MQTT Broker: localhost:1883
2019-03-07 07:45:08,994 INFO State01:MQTT client subscribed to control messages on topic: Paradox/C/#
2019-03-07 07:45:08,994 INFO Connected to MQTT broker with result code 0
2019-03-07 07:45:08,995 INFO State02:Connecting to IP Module
2019-03-07 07:45:08,996 INFO Connecting to 10.0.0.120
2019-03-07 07:45:09,000 INFO Logging into alarm system...
2019-03-07 07:45:09,252 INFO Login to alarm panel successful
2019-03-07 07:45:10,255 INFO Command 0x5F : Start communication
2019-03-07 07:45:10,508 INFO Command 0x00 : Initialize communication
2019-03-07 07:45:11,260 INFO State02: Logged into IP modeule successfully
2019-03-07 07:45:11,261 INFO State03: Preading labels
2019-03-07 07:45:11,261 INFO State03:Updating all labels from alarm
2019-03-07 07:45:12,514 INFO Labels detected for wirelessKeypadLabel:
'Wireless Keyp 8'}
2019-03-07 07:45:12,514 INFO {1: 'Wireless Keyp 1', 2: 'Wireless Keyp 2', 3: 'Wireless Keyp 3', 4: 'Wireless Keyp 4', 5: 'Wireless Keyp 5', 6: 'Wireless Keyp 6', 7: 'Wireless Keyp 7', 8: 'Wireless Keyp 8'}

And off it goes.

MQTT Events and states

I'll not go into MQTT too much, short to say, its great!!   A short message queue system for taking small bits of data, and whoever wants it can deal with it.  It's biggest plus is that is just sits there taking messages, and, if like me you run two automation systems, both of them can access the messages and operate on them.

The main reason I actually run both Home Assistant and OpenHAB is that the Homekit on Home Assistant is more mature, and supported Alarms.  The OpenHAB homekit addon, at the time I set it up, did not.

So what does this mean.  If you've got the paradox ip service running, it will now be sending a bunch of messages to MQTT on various topics (I'll assume that all the config.master.ini defaults are in place which set the base topics as Paradox.

MQTT sends a message (called the payload) to a topic.  A topic is a structured list of strings where an expected payload will be found.

Paradox/Heartbeat ON
Paradox/Partition/Status DISARMED
Paradox/State State Machine 4, Listening for events...
Paradox/Zone/Main door PIR ON
Paradox/Zone/Main door PIR OFF

So here are 5 messages.  

Paradox/Heartbeat is the Topic, and ON is  the payload.

This topic is an important one, in that it will keep getting ON posted about every minute.  It's primarily used for determining that the connection to the service and alarm is running.  There are keep alive packets sent out from the panel (actually there are 5 with various status'), and so each time message 1 is received, the Heartbeat is populated.  If the service disconnects from the panel, OFF is set to the heartbeat topic.

 

Partition Status

Paradox/Partition/Status is the Topic, and DISARMED is the payload.

This topic shows the main panel state.  This is the topic that I feed to home assistant (and therefore Homekit) so that I can control and receive the status of the panel.

Home Assistant:

To read this in Home Assistant (The MQTT Alarm Panel - https://www.home-assistant.io/components/alarm_control_panel.mqtt/)

<span class="na">alarm_control_panel</span><span class="pi">:</span>

  - platform: mqtt
    name: "Paradox"
    state_topic: "Paradox/Partition/Status"
    command_topic: "Paradox/C/P1"
    payload_arm_home: "sleep"
    payload_disarm: "disarm"
    payload_arm_away: "arm"
    payload_disarmed_state: 'DISARMED'
    payload_home_state: 'SLEEP'
    payload_away_state: 'ARMED'
    payload_pending_state: 'ARMING'
    payload_triggered_state: 'TRIGGERED'

And by using this, you can expose it to homekit from home assistant.

OpenHAB:

String alarm_hb_state "Alarm Homebridge state [%s]" (g_alarm) {mqtt="<[openhab:Paradox/Partition/Status:state:default]"}

 

Zone Status

The zone status triggered on each zone.

Paradox/Zone/Main door PIR ON
Paradox/Zone/Main door PIR OFF

Home Assistant:

sensors:
  - platform: mqtt
    state_topic: "Paradox/Zone/Main door PIR"
    name: 'Main Door PIR'

OpenHAB:

Contact alarm_zone_maindoor "Main Door State [%s]" <motion> (g_alarm,g_motion_detection) {mqtt="<[openhab:Paradox/Zone/Main door PIR:state:MAP(onoff.map)]"}

This is when using a contact item which is read only.  You can use a switch also, and then the MAP(onoff.map) is not needed as the default payload is ON/OFF.

 

That should get you started.  Comment below is there are specific aspects you would like me to cover.

 

Other related posts:
Wemos D1 Mini Door Contact (plus temperature)
RM3's also - but this time with more geek.
Controlling a 12v fan from a raspberry Pi.




comments powered by Disqus

davidcole's profile

davidcole Cole
Lower Hutt
New Zealand


Been thinking it would be nice to have a blog but not sure if I have enough to say.

I'm an I.T worker from Wellington New Zealand.

I like my toys so this will probably have posts about my dealings with those.

My Cellphone is an iPhone 5s

I run a NextPVR based PVR at home to replace my video recorder, DVD player and to host all my music. I'm also really big on Plex, for centralising all my music, videos and I've written a plugin or two for it for accessing live TV and for storing recordings with metadata.





Wemos D1 Mini Door Contact (pl...
(16-Nov-2017 07:58, 12577 views)
TVNZ Ondemand App behind Unblo...
(27-Feb-2013 19:39, 12484 views)
OpenHAB and Bluetooth beacons ...
(19-Dec-2016 21:39, 10435 views)
Controlling a 12v fan from a r...
(17-Jan-2017 07:49, 10176 views)
eReceipts - Why don't we have ...
(12-Jan-2012 10:01, 9841 views)
PDF Forms - why you no boxes?...
(26-Jun-2012 09:04, 8510 views)
Free $80 - come and get ur mon...
(20-Sep-2011 13:11, 8255 views)
RM3's also - but this time wit...
(16-Jul-2017 20:16, 7601 views)
Contactless Payments - part 2...
(21-Sep-2011 15:12, 5830 views)
Paradox IP150 and Home Automat...
(6-Mar-2019 21:57, 5712 views)