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.

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?

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. smith-alarm.dyndns.org:8080/logout.html) 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).

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?

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

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?

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?

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

“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.”

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.

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.