Help build binding for Paradox Alarm Panel with IP150

Tags: #<Tag:0x00007fe05dab1860> #<Tag:0x00007fe05dab1608> #<Tag:0x00007fe05dab12e8>

(Tertius Hyman) #102


Both versions of the code has a MQTT topic to disable/enable the polling of
the IP module. You can use this to temporarily check the state and then
disable polling again, which will logoff from the ip module and allow other
applications to use it.

(Woody4165) #103

Thanks Tertius.
I’m really a newbie with MQTT.
I’ve got your py script working (I get all labels from alarm).
Now, if I want to have a script (python or other languages) just get the status of the alarm what should I do?
I understood how to to set the polling on/off and to set the status of the alarm.
But how to get the Alarm status?

Thanks very much

(Tertius Hyman) #104

When you start the script (first time or after enabling it) it should update all the states, including the partition states (armed/disarmed, etc) via the payload in topic Paradox/AS/P1.

I suggest you leave the script running always, but disable it via MQTT (publish this topic: Paradox/C/Polling/Disable). Then when you want to check the state simply enable the code, give it some time to update the parition topics (e.g. Paradox/AS/P1) and then disable polling again.

Alternatively: If you leave the script running always, you can forcefully disconnect it remotely by sending a logout command to your alarm (e.g. which will disconnect the script. The /logout.html is important here… Then use your own app to control the alarm. When you disconnect the script will re-connect (it will try indefinitely).

(Woody4165) #105

Thanks again Tertius.
So I should publish Topic Paradox/AS/P1 with what payload?
The suggestion of Disabling and Enabling the Polling is very useful, leaving the script running in a “idle” state.
And also the the logout trick is nice!!!

I don’t know if it’s important, but I don’t have defined (as default) Paradox/AS/P1 in config.ini, is it correct?

(Tertius Hyman) #106

No dont publish anything to Paradox/AS/P1. This topic is published (sent) from the script. You have to subscribe to it so that changes are received by openhab. When a change is detected you have to look at the payload to determine the new alarm state.

Also, you can leave the .ini file’s defaults, only updating the connection settings, obviously :wink:

(Woody4165) #107

Thanks Tertius.
I’ve just tried, subscribing to Paradox/AS/P1, started again the script, but I don’t get anything from the topic.
I’ve tried to Arm and Disarm the alarm via Paradox/C/P1/Arm and Paradox/C/P1/Disarm, the alarm got the proper status, but nothing in the Paradox/AS/P1 topic.
Any suggestion?

(Psyciknz) #108

Shoudl I be getting which zone has motion?
Event:Zone open;SubEvent:
Event:Zone OK;SubEvent:
Event:Zone OK;SubEvent:
Event:Zone open;SubEvent:
Event:Zone open;SubEvent:
Event:Zone OK;SubEvent:
Event:Zone OK;SubEvent:

I have an Magellen Spectra SP5500

Also not sure if you saw in github that I’ve made some modifications to the script for when being a service, to write to a log file.

(Psyciknz) #109

I’ve also made further changes to allow for zone based notications (for use in openhab switches)
Eg Paradox/Zone/[zone name] pullled from chars 15 - 30 of the event notification.

(Arie Van Wyk) #110

Hi Tertius

I like to get hold of you to understand your code a bit better i might have found a document outlying the EVO communication and would like to add it in.


(Jean Henning) #111

Hi Tertius,

As Arie Van Wyk mentioned, is there any way you can give us a bit more detail on how to help build a map for the EVO192?

On a related note: Have you heard of something called IPDOX SDK? See page 5 of this PDF:

It seems there is an SDK around this protocol. Just not sure how to get my hands on it. I’ve seen a few references to the EVO manual but it does not look like the EVO manual gives anything in terms of the registers. How did you go about building those map and event files in your code?


(trac starr) #112

Last I checked the EVO192 is not supported by the SDK.

(Jean Henning) #113

Where does one get any info on the SDK? I cant seem to find anything on it, let alone EVO192 support.

(Jean Henning) #114

I received the SDK from Paradox. It does include the EVO192. Would that not be a better way of doing the communication versus reverse engineering? It’s only for Windows though.

(trac starr) #115

Well, that’s news to me. Must be newer than the one I have. Yes, that would be ideal, however as you saw it’s only for windows. If you want to PM me I could look into it with the latest SDK.

(Jean Henning) #116

Apologies but I dont know how to do a PM on here :slight_smile: I just see a general reply and no way to directly message you.

(trac starr) #117

Jean, sorry, my mistake. The 192 can be used with the SDK. I don’t know why I keep thinking i have the evo192. I think it’s because I wish I had it. I have the EVO48 which cannot use the SDK. Sorry, won’t be able to help :frowning:

(Arie Van Wyk) #118


Can you possibly share the SDK

(Jean Henning) #119

Sure thing. Here’s the link:\

Please note this from Paradox:

“The Only available SDK we are handing out at the moment is the Paradox API-SDK v.2.11 [you can download it Here ] subject to these Terms and conditions.
The SDK is a Windows DLL. The package contains all documentation, as well as a Demo application – working with Windows OS only.
Please note that we do not offer further support in the SDK implementation.
If Bugs are find and validated – we may correct them, according to availability / priority, resulting in an SDK update, however – no update notifications will be sent to developers.”

The terms and conditions link:

(Arie Van Wyk) #120

After some reverse engineering of my own I manage to get the header for the EVO192, I have manage to locate the location of the zone, partitions and user labels but. To some extend i have manage to find some of the command details, but with this said with my lack of knowledge on python coding I’m having some issues implementing this. :unamused:

The SDK does not help much either since it is .net as mentioned.

(Jean Henning) #121

If the SDK was in pure .NET it would have been a lot easier. The SDK is simply a .NET wrapper around the Delphi DLLs. ParadoxAPI.dll, IPDOX.dll & ParadoxNetwork.dll are all Delphi DLLs. The core of everything sits in those files and without the source they wont be useful unless you’re wanting to write your software in .NET.