Help build binding for Paradox Alarm Panel with IP150

ip150
paradox
alarm
Tags: #<Tag:0x00007fe0635466b8> #<Tag:0x00007fe063546528> #<Tag:0x00007fe063546348>

(trac starr) #21

Ok. I’ve pushed my MQTT stuff up to the master branch. I’ve compiled and tested on linux and windows.

Here’s an example of an alarm item definition:

Contact ParadoxFrontDoor "Front Door [%s]" <frontdoor> (FirstFloor) {mqtt="<[syno:paradox/alarm/zone/1/state:state:MAP(alarm.map)]"}
String ParadoxZoneHouse 	"House Status [%s]"  <alarm> {mqtt="<[syno:paradox/alarm/partition/0/status:state:default]"}

And map file alarm.map

Normal=CLOSED
Open=OPEN

I’m sure there are still things to work out, but wanted to get it to you asap.


(Rtaxerxes) #22

Awesome thanks, will give it a go.

So far I have installed Mono and PhantomJS and downloaded your project. I have updated the App.config but not sure how to get it started.

In other news, apparently there is a firmware version 2.2 for the EVO48. I’m trying to get it but running into typical Paradox issues, being bounced between distributor and manufacturer etc.


(trac starr) #23

Were you able to compile the application? I’ll admit I’ve only compiled from visual studio on my windows box and just copied over to my linux box. If I can find the time I’ll see if I can figure out how to compile under linux. In theory it shouldn’t be difficult.

But, assuming you have it compiled and are running the app you should be able to reach the swaggerUI for testing the RestAPI at yourip:port/swagger-ui/

The first test would be to use swagger to make the call to /paradox/information. If it returns then you know the connection in working. (actually, if you try and browse to your ip150 as normal you’ll notice that you are told you’re already logged in if the services connected correctly).


(Gergely) #24

That is awesome gentlemen, I do appreciate your efforts.

I am pretty new at HA and openhab and looking for opportunities and possibilities to set up a reliable system.
Since my DSC alarm is pretty old (1565) and it seems it isn’t compatible with any network interfaces I plan to get a new, probably a paradox alarm, as this brand seem to provide trustful devices at reliable price.

While I am on a learning curve on many levels I’d like to take part in this project if possible. Not being a programmer but if there’s need contribution in testing here I am.

Please keep inquiring people like I am informed.
Thank you in advance.


(Gergely) #25

Anyone tried CMSI SDK?

http://www.paradox.com/download/securitymatters/SecurityMatters5_np.pdf
Page5


(Rtaxerxes) #26

So I managed to get the pre-compiled version running.

First up, make sure you run it from /usr/share/Paradox (case-sensitive) on linux. I’ll add more instructions soon.


(Asso) #27

Hi,
You mean ‘pre-compiled version’ for Linux? If yes, how can I get such version? My local distributor does not want to give it.


(Rtaxerxes) #28

The “pre-compiled” version is the module that Tracstarr has written that we talking about. There isn’t a Paradox SDK for linux that I have found.


(Tertius Hyman) #29

Hi,

I’ve been able to successfully connect to the IP150 module of my MG5050 Paradox alarm using python and without using any web emulator. In fact the only libraries I’ve used are haslib (for hex-md5), socket for the IP, and time for some delays.

This would mean (correct me if I’m wrong) that most programming languages would be able to connect to the device. Successes so far:

  1. Can login with my user code and ip module password [automatically calculates hashes etc. based on these]
  2. Get a list of names for all the zones
  3. See the state of zones [currently polling every 0.5s]
  4. Arm/disarm/stay/sleep control

There’s a lot more information that you can parse from the pages I’ve been requesting so far… once sorting out the login part its pretty much free rein into the alarm system.

I would really like it if someone with Openhab programming skills can take this and give us a more native solution. I like tinkering with code and would take forever to make a binding… Any takers?

ps. I will share the code sometime soon, just need to clean it up first and see what can be optimized.

cheers,
Tertius


(Rtaxerxes) #30

That is awesome, well done. It might be simplest to just get it talking in MQTT and then use that as the interface to OpenHab before tackling a complete binding.

Would love to give the code a try.


(Tertius Hyman) #31

@mkent, I had the exact same thought with MQTT. Will do an initial go at it and hopefully post some code later today.


(Tertius Hyman) #32

Just an update, I’m trying to solve some issues in keeping the connection stable. I’m mainly containerising some of my code into functions so that I can catch and act on exceptions in a better way. This will take a bit of time but not long.

So far the basic program connects to a MQTT broker and sends updates for any zone changes, reports zone names and assigned partitions, and I can also publish controls back to the alarm (per partition). Unfortunately the IP150 doesn’t seem to have any control over the alarm’s PGM outputs so automating that garage door will have to be done separately for now.


(Mark Clark) #33

The iParadox app exposes the PGMs via the IP150 when used against the EVO-192 Panels. I just tried it, and can hear PGM05 switching on the Panel.

Do you need a packet dump, or are you now using another technique to snarf the messages?

I have a PRT3 attached to mine, so can gen traffic that way also.


(Tertius Hyman) #34

The iParadox app also uses the software port [usually 10000] and therefore has full access to the panel. I’m only using the http port, so essentially what you can see and do with the web interface can be mimic’d here.

I would love to be wrong about this as I really want to control the PGMs.


Integration between openHAB and Paradox Alarm
MQTT inbound item state being updated too often by openHab
(Mark Clark) #35

Fair enough, I didn’t cop that you were using HTTP instead of the binary-form. I’d forgotten the IP150 even had a web interface :wink:

It’ll be good to see it tied into MQTT. I’d imagine the Paradox team could themselves benefit from having the IP150 talk MQTT directly.


(Tertius Hyman) #36

I’ve published my initial code to Github. Further details there.

I guess you can run this as a service although I’ve not done any long-term stability tests. Currently there’s also no code that handles the case where you are logged out of the IP module, although this can be added in fairly easily, soon…

Edit: Forgot to mention that I have a 32 zone setup, although I believe any amount would work.


(Woody4165) #37

Thanks for sharing

I tried to connect but I receive these message

No connection to IP Module, are you already logged in? Attempting logout and trying again... (3)
Disconnect OK received from IP Module

for 3 times and then exit. I’m not logged from other app or website.
What can be wrong?

Thanks


(Tertius Hyman) #38

Weird, if you only get this output then the initial socket connection to the IP Module was successful. This error will then occur if the required login page of the IP module was not recognised (or sent back at all or the connection terminated for some reason).

The fact that you get the “Disconnect OK Received…” message means that you are at least getting some response.

I’d like to see if anyone else has this issue; I did try with another alarm system and it worked fine there. Off to bed now though so will see what tomorrow brings…


(Rtaxerxes) #39

Done a little test, seems to work great on my Mac. Now to tie it into OpenHAB… Thanks so much.


(Tertius Hyman) #40

That’s great news. I hope you downloaded in the last 2 hours cause there was still some old code hanging around that I forgot to remove.

If not just grab the latest IP150-MQTT file [otherwise your alarm will disarm after about 3 hours and disconnect from the IP module - seriously]!