Help build binding for Paradox Alarm Panel with IP150

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.

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.

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.

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.

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

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…

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

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]!

Yep, it was about 30 min ago, so hopefully all good.

Just a thought. It would be nice if there was an MQTT command to disconnect/reconnect this from the IP150. Just in case OpenHAB stops responding for whatever reason and I need to default back to the Paradox App. I like to have fallback options… :wink:

Sounds like a good idea. I also need to work on general failure recovery mechanisms in the app.

Got it running as a daemon on the mac. I’ll put my Plist file on Github for anyone else who might need it.

Implemented the enable/disable of polling and pushed to github [also updated the readme over there]. This is actually quite useful now that I’ve implemented it!

I also introduced a state machine to better handle errors (especially the unknown ones).

I’m still getting error.

Attempting connection to MQTT Broker: 192.168.1.yyy:xxxx
Connected to MQTT Broker
Attempting connection to IP module: 192.168.1.yyy:xx
Connected with result code 0
 No connection to IP Module, are you already logged in? Attempting logout and trying again... (3)
Disconnect OK received from IP Module
No connection to IP Module, are you already logged in? Attempting logout and trying again... (2)
Disconnect OK received from IP Module
No connection to IP Module, are you already logged in? Attempting logout and trying again... (1)
Disconnect OK received from IP Module
No connection to IP Module, are you already logged in? Attempting logout and trying again... (0)
Failure, cannot connect
Last received data: 
HTTP/1.0 200 OK
Server: lwIP/1.4.0 (http://savannah.nongnu.org/projects/lwip)
Content-type: text/html
Cache-control: no-cache

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
	<meta http-equiv='content-type' content='text/html; charset=UTF-8' />
	<link rel='stylesheet' type='text/css' href='webstyles.css' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="xxx";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
******************* Attempting to login again *******************

I have my http port xx redirect to an https port.
So if I connect via browser to the ip address of my IP150 to port xx it redirect to xxx and then I get the login page.
Really strange…

By the way, just downloaded from Github and replaced

Aha - you have https enabled in your IP module. Unfortunately I haven’t given any though for encrypted links yet so for now you need to manually log into the IP module, go to “IP150 Configuration” and click “No” next to the HTTPS port option. Then click save. Noting that whenever you log into the IP module your data will now not be encrypted, if that is a problem to you.

Ok, sorry. I wasn’t aware that with https was not working.
Now I’ve got it work and I can see my Alarm Name, Area Names and Zone Names.

The it says "Going to State_Machine 3, what does it mean?
And then “Connected and polling data every 0.5s”

What I don’t, and I can see in the script, is the state in a clear way, Arm, Disarm, Stay etc.

After this what can be done and how, if already implemented?

In the meantime, I thank you for the work you did. Very nice, even if I’m little bit afraid to leave the web panel without https…

You need to use the MQTT broker to subscribe to the data. On github I’ve documented the expected messages. The script doesn’t output much after being connected as I don’t want log files (screen prints /outputs) to unnecessarily cause writing to the disk; useful on installations running on an sd card.

Right.
Just tried with an MQTT client ant it’s working like a charm.
The siren, as you say in the documentation, gives me a question mark.

Very, very nice. Now i’m just a little bit worried about security.
With no https and MQTT don’t know if it’s secure, since it’s not a weather sensor or a light switch.
Probably you can understand me…
I saw there was another project on Github regarding IP150, but was much more complicated and for me that are just an user (maybe advanced), your project is fantastic.

Thanks
again

Hello folks,
I think that if the script is running on your internal (home) network you can stay quiet with HTTP protocol, but for sure HTTPS is better :slight_smile:
I’ve a IP100 module (there is only HTTP protocol), if you want I can try this solution.
Can I run the daemon on a Linux machine ? Is there a plan to build a OpenHAB binding ?

Thanks
Francesco

Hi Francesco

If you can test with the IP100 I’d appreciate it. I hope that Paradox has implemented the same Web interface, in which case it should work.

Regarding HTTPS, it doesn’t seem very difficult to implement in python, although the end user would need to install openssl as it’s a dependency. Will look into that later.

Hey, this sounds great and probably takes up a lot less resources than what I went through. I’ve been away for a while and not around again until next week, but i’ll for sure jump in and help out on this one.