Request for addon for Alarm panel Paradox IP150

Hey MyCool,

The repository currently contains the following:

  • ip150.py: python bindings to the IP150 module, via web interface
  • ip150_mqtt.py: a stand-alone application (and a module) that exposes an MQTT interface for the Paradox
  • all the rest: hassio add-on specific

Hence, you should be able to run “python3 ip150_mqtt.py <config_filename>” on hassbian and have the same results. In fact, the hassio add-on is just a wrapper over the above command (see run.sh).

Hope this helps!

would you know what this error means when triing to run python

from bs4 import BeautifulSoup
ImportError: No module named 'bs4"

do i need to sudo install all modules in requirements.text

pip install beautifulsoup4==4.6.0
pip install certifi==2017.11.5
pip install chardet==3.0.4
pip install decorator==4.1.2
pip install idna==2.6
pip install ipython==6.2.1
pip install ipython-genutils==0.2.0
pip install jedi==0.11.1
pip install paho-mqtt==1.3.1
pip install parso==0.1.1
pip install pexpect==4.3.1
pip install pickleshare==0.7.4
pip install prompt-toolkit==1.0.15
pip install ptyprocess==0.5.2
Pygments==2.2.0
pip install requests==2.18.4
pip install simplegeneric==0.8.1
pip install six==1.11.0
pip install traitlets==4.3.2
pip install urllib3==1.22
pip install wcwidth==0.1.7

Exactly, you need to install the modules from requirements, that is:

pip3 install -r requirements.txt

1 Like

how would I go about changing the port settings from 80 to 10001
sorry for all the noobish questions.

all good Id Just changed my Ip150 back to port 80 now I get bellow error possibly because I use
anonymous login for mqtt no user password required .
No rush on responding Ive got some Garden work to do lol hopefully that goes better for me .

root@raspberrypi:/home/homeassistant/.homeassistant/Paradox_IP150-masterTesting# python3 ip150_mqtt.py
Traceback (most recent call last):
  File "ip150_mqtt.py", line 110, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 98, in loop_forever
    mqc.username_pw_set(self._cfg['MQTT_USERNAME'], self._cfg['MQTT_PASSWORD'])
KeyError: 'MQTT_USERNAME'
root@raspberrypi:/home/homeassistant/.homeassistant/Paradox_IP150-masterTesting#

I started a Fresh and below is my error got me stuck lol.

root@raspberrypi:/home/homeassistant/.homeassistant/Paradox_IP150-master# python3 ip150_mqtt.py
Exception in thread Thread-2:
Traceback (most recent call last):
File “/usr/lib/python3.5/threading.py”, line 914, in _bootstrap_inner
self.run()
File “/usr/lib/python3.5/threading.py”, line 862, in run
self._target(*self._args, **self._kwargs)
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 193, in _get_updates
cur_state = self.get_info()
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 87, in wrapped
return f(self, *args, **kwargs)
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 185, in get_info
res[table] = [(i, self._tables_map[table][‘map’][x]) for i,x in enumerate(tmp, start=1)]
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 185, in
res[table] = [(i, self._tables_map[table][‘map’][x]) for i,x in enumerate(tmp, start=1)]
KeyError: 8
^CTraceback (most recent call last):
File “ip150_mqtt.py”, line 110, in
ip_mqtt.loop_forever()
File “ip150_mqtt.py”, line 103, in loop_forever
mqc.loop_forever()
File “/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py”, line 1481, in loop_forever
rc = self.loop(timeout, max_packets)
File “/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py”, line 988, in loop
socklist = select.select(rlist, wlist, [], timeout)
KeyboardInterrupt

I think I might get this working On Hassio as this Is what It was designed for then I can Play with it On Hassbian Later down the track thanks

Hey MyCool,

Let’s got with order.

  • You can define a custom port by specifying it in the URL parameter. For instance, set IP150_ADDRESS to http://192.168.1.3:10001 to connect to the desired port, using HTTP.

  • KeyError for MQTT_USERNAME: you must have a typo in your config file. Please make sure you have an entry for MQTT_USERNAME. If you don’t use MQTT authentication, just put in dummy values for username and password. I can tweak the code to make MQTT username and password optional, but it should already work if you put dummy values and they get ignored.

  • KeyError 8 error: It seems you’re using Paradox features I’m not using, and hence I didn’t write support for them :wink: In particular, your alarm is reporting that it is in a “Ready” state. I haven’t seen anything like that on my alarm (it only says things like armed, disarmed, in alarm, entry/exit delay). Can you explain me what the Ready, Not Ready and Instant states are for? And how should they be represented (or mapped to) in HA? Once I have this info I can probably add support, if you have enough patience to test it for me.

Thanks m8 I’ll have a play later tonight after work.
In regards to the ready not ready thing ,
My alarm is a EVO 48 very similar to the 192 or the mg5050 In fact I have all of those models panels in abox lol there are some small changes in regards to the IP150 http port comms but seems roughly the same . The ready not ready status on my current setup EVO48 using v1 of Tertiush code
used to come through as Unsure (9) and Unsure (8) which happens when any zone / PIR is open and not ready for arming basically zone open zone closed.
What I’ll do once I get it to run I’ll run my MQTT spy and past the out put or make my own adjustments.
HASS + V1 Tertiush Code below

Ive gone back through I have to edit the options.json if I make changes to the config.json it doesn’t even connect

MQTT SPY
`paradox/ctrl/state Connected`

**I get no changes or MQTT updates/messages when arming disarming and walking in-front of zones **
what Panel/Alarm is this add-on written for support thanks

root@raspberrypi:/home/homeassistant/.homeassistant/Paradox_IP150-master# python3 ip150_mqtt.py
Exception in thread Thread-2:
Traceback (most recent call last):
File “/usr/lib/python3.5/threading.py”, line 914, in _bootstrap_inner
self.run()
File “/usr/lib/python3.5/threading.py”, line 862, in run
self._target(*self._args, **self._kwargs)
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 193, in _get_updates
cur_state = self.get_info()
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 87, in wrapped
return f(self, *args, **kwargs)
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 185, in get_info
res[table] = [(i, self._tables_map[table][‘map’][x]) for i,x in enumerate(tmp, start=1)]
File “/home/homeassistant/.homeassistant/Paradox_IP150-master/ip150.py”, line 185, in
res[table] = [(i, self._tables_map[table][‘map’][x]) for i,x in enumerate(tmp, start=1)]
KeyError: 8

options.json = Below

{
	"IP150_ADDRESS" : "http://10.0.0.120:80",
	"PANEL_CODE" : "1980",
	"PANEL_PASSWORD" : "Password",

	"MQTT_ADDRESS" : "mqtt://127.0.0.1",
	"MQTT_USERNAME" : "pi",
	"MQTT_PASSWORD" : "Password",

	"ALARM_PUBLISH_TOPIC"   : "paradox/alarm/state",
	"ALARM_SUBSCRIBE_TOPIC" : "paradox/alarm/cmnd",
	"CTRL_PUBLISH_TOPIC"    : "paradox/ctrl/state",
	"CTRL_SUBSCRIBE_TOPIC"  : "paradox/ctrl/cmnd"
}

Hey MyCool,

Apologies for the delay, I didn’t get notified of your additional messages.

It is normal you don’t see any updates when a zone gets opened or closed with my addon, as I currently don’t track those events. It would be possible to add support (there are comments in the source code on how to do that), but I have currently no plans, as zones are ignored by the HA alarm component. It seems you added each zone as a separate sensor, though?

I’m still not entirely clear on the Ready/Not Ready states. Such states refer to Areas. On my alarm, an area can either be in a state from 1 to 7, but I can’t bring them in states 8 or 9. For example, if an Area is “Disarmed” (state number 1), it stays so even if a PIR opens.

The shortcut here is that I simply ignore states 8 and 9 but I’d first like to make sure I understand their functioning, if that makes sense?

No worries on delay good things take time,
I’m not sure if I understood you correctly but this add on ignores zone open and close for example PIR’s 1-8 / zones 1-8 do not show up in your add-on so is it just for arming and disarming the alarm this one.
I use my pirs to trigger automations in HASS as a kinda room presence detection on top of just alarm system so I require that and it would be a useful addition to your add on if possible . As for the area ready or not ready I don’t think it’s a big deal to ingnore that state as this could be achieved by a autiomtion in HASS using condition or conditions .
any how definitely a requirement for me to know when for example my lounge room Pir is activated even when alarm is in the disarmed mode. I do things like if motion detected in last 10mins in lounge room PIR and time 1755-1800 turn tv on and put the News . I’ll have more of a play when I get some more time thanks

Hey guys :slight_smile: I just bought my Paradox IP150 and found that it is v4.1
Does it mean that it could not be connected with the addon for Paradox?
The reason i am asking is because when i connect the IP150 to my Paradox SP65 it can not pull the data from the security panel. Also, the Babyware could not connect via IP150
I’ve contact Paradox supplier and they told me that the new firmware from 4 and above cannot communicate with other systems than GOLD/SWAN connections…
Do i need to downgrade to a lower firmware? If yes, then HOW :slight_smile:
Please help me to get my Spectra connected to Hassio

There definitely is!!! please please, go ahead with your project and enable IP100 support. We would all be very thankful @alfredo :frowning:

Hi all,

@MyCool I’ve now added PIR support in V0.2 of the addon. Please let me know how it works for you!

@Peter_Iliev I can’t tell about exact version support. My panel firmware is at 4.x, while the IP module firmware is at 1.x. As I don’t have other versions around, additional support for incompatible firmwares seems unfotunately unrealistic. In fact if you’re in contact with Paradox support, you may well be better off asking for direct MQTT support. It would make my addon completely useless, but I’d agree it would be the ideal solution :slight_smile:

Hello everyone,

I posted this message yesterday Paradox Alarm MQTT Hassio addon

I just thought that maybe someone monitoring this thread could advise on it.

Many thanks in advance

@alfredo Hi, I installed your module for Paradox IP150 but it seems to be installed but when you start it noel log gives me this error:

Wrong page fetcehd. Did you connect to the right server and port? Server returned:

Tony Vag;var sre = "
" + top.ln_cant[1] + "
";document.getElementById('ERROR').innerHTML = sre; document.getElementById('MESSAGE').innerHTML = top.cant('Toni');

Sembra collegarsi alla centrale ma non capisco cosa sia l’errore.
Mi sai aiutare?
It seems to connect to the central but I don’t understand what is necessary.
Can you help me?

Hello, I was hoping someone could help me.

I have configured however I am getting this error:

Traceback (most recent call last):
  File "ip150_mqtt.py", line 140, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 122, in loop_forever
    self.ip.login(self._cfg['PANEL_CODE'], self._cfg['PANEL_PASSWORD'])
  File "/ip150.py", line 143, in login
    'Wrong page fetcehd. Did you connect to the right server and port? Server returned: {}'.format(lpage.text))
ip150.Paradox_IP150_Error: Wrong page fetcehd. Did you connect to the right server and port? Server returned: <!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' />
	<script type='text/javascript' src='langue.js'></script><script type='text/javascript' src='commun.js'></script></head><body><div id = 'ERROR' style='margin-top:60px;'></div><title>REDACTED</title><script type='text/javascript'>;var sre = "<table><tr><td align='middle'><div class='box' style='width:460px;margin:80px;'><div class='box-title strips'>" + top.ln_cant[1] + "</div><div class='box-content'><div class='msg' id='MESSAGE'></div></div></div></td></tr></table>";document.getElementById('ERROR').innerHTML = sre; document.getElementById('MESSAGE').innerHTML = top.cant('System Master');</script></body></html>

May thanks for any help

Well its obviuos that whatever was written back in the days dont work anymore with new & updated version of UI of IP150. I think the owner of that addon has abandoned any support so you have to correct the error yourself in a separate branch

Lol, better late than never I suppose… This is working fine. … Forgot what the issue was…

Which version did you get? From which repo? I still get exception along those lines : 2020-03-26 23:44:37,319 ERROR State02:Error attempting connection to IP module (3): string index out of range