Paradox Alarm MQTT Hassio addon

without, IP150 module you cannot get MQTT working and thus integrated into HA. This modle gives your alarm IP capabilities which you need…

Yes, I understand. But even if add it I am almost certain that it is not going to work.
There are many parameters that have to go right which are out of my control.
the right firmware, the right installer, the right configuration. I would be responsible for the right configuration part (and I am sure with the help on here I could do it), but since the installer don’t knows much, the paradox representative here is not 100% sure for the firmware, it is almost certain that we can not integrate it to HA

i think you wil be surprised… without that you are just getting a dumb alarm, you might as well get something alot cheaper than paradox… even without HA intergation, you can still hot a web pages etc to control and do other integration outside HA, so I would strongly advise that you bite the bullet and order the IP module…

The alarm will have a GPRs functionality. We will add a universal GSM module with its own application where I can handle all the functions of the paradox. (no need for paradox cloud).

I really would like to add the IP150 but there are so many things I don’t know also eg you said in previous post “then once you can hit it from you local lan, do the MQTT part”

It is not clear to me what that means and what I have to do…
I don’t know anything about MQTT etc so I really will not know how to debug it when the first trouble appear.

in every case I will discuss it with the installer and if he thinks that he can install it I will add it.

I would go with the ip unit over the GPRS unit… with GPRS you will be paying for every communicitation with the alarm as this will require a sim card… with the IP unit, you don’t have to pay for comms as this is all over ethernet… you then simply need to configure your router accordingly to open the varouls ports and port forwarding…

Also, gsm adds (in my opinion) complexity (even around static IP address etc) I should know, I have been workig for a mobile telco for the last 20 yers doing exactly this…

Both units (afaik) simply add communication ability.

Once the unit is connected, you simply need to find the IP address on your local lan and the configured port. you will then simply need to go to xxx.xxx.xxx.x(ip address):PORT eg 192.168.1.23:8080 and then login…

If you are not comfortable with this basic level of networking then you should steer clear from doing any home IT/ running any webservers in your home/playing around with your router and get a professional in to do it…

For paradox integration there is 2 options.

  1. EVO panel with PRT3 module which is designed for HA integrations via serial or usb port. There is mqtt plugin on the forum which works very well.
  2. For any other panel you can use this plugin but you need IP150s module the s part is important because this module is obsolete and is sold only as service module. The current IP150 which is firmware above 4.xx is for cloud connection only and you don’t have access to the zones and partition via web gui and this plugin depends on that.

Best regards

Agree with that. I just want to test it.

Hello,

I am trying to set the Paradox Alarm in hassio but I don’t have success :frowning: Could anyone please help me a bit on this?

This is the error I get:

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>Alarm</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('Sami');</script></body></html>

Also this is my config:

IP150_ADDRESS: "http://192.168.200.3"
PANEL_CODE: "xxxx"
PANEL_PASSWORD: "xxxx"
MQTT_ADDRESS: "mqtt://192.168.200.9"
MQTT_USERNAME: "xxxx"
MQTT_PASSWORD: "xxxx"
ALARM_PUBLISH_TOPIC: "paradox/alarm/state"
ALARM_SUBSCRIBE_TOPIC: "paradox/alarm/cmnd"
ZONE_PUBLISH_TOPIC: "paradox/zone/state"
CTRL_PUBLISH_TOPIC: "paradox/ctrl/state"
CTRL_SUBSCRIBE_TOPIC: "paradox/ctrl/cmnd"

And this is my alarm gui:

What I noticed it’s that the addon is connected to the alarm cause I can’t login anymore while the addon is connected to the alarm. I am getting this when the addon is connected:

" Only one connection at a time
Sami is presently using this web server"

Thank you a lot in advance for all the help. It will be much appreciated

I wonder if anyone can assist. I had a perfectly working integraton, then I inadvertantly upgraded the IP150 through the iParadox app. I have managed to downgrade to version 4.40.04 with swan disabled.

It now display correctly in HA exactly every 20 seconds for a split second then is unavailable for the next 20 seconds, when it will flash up the correct info again.

It was working perfectly before the upgrade. Any ideas?

Doesnt work with 4.20 version though

Try searching the thread for “downgrade”. Apparently it’s possible but difficults.

Anyone able to help me but MQTT is registering a connection with the alarm but i am getting this error

IP150_ADDRESS: 'http://**.**.**.**:80'
PANEL_CODE: '*****'
PANEL_PASSWORD: *****
MQTT_ADDRESS: 'mqtt://core-mosquitt'
MQTT_USERNAME: *****
MQTT_PASSWORD: *****
ALARM_PUBLISH_TOPIC: paradox/alarm/state
ALARM_SUBSCRIBE_TOPIC: paradox/alarm/cmnd
ZONE_PUBLISH_TOPIC: paradox/zone/state
CTRL_PUBLISH_TOPIC: paradox/ctrl/state
CTRL_SUBSCRIBE_TOPIC: paradox/ctrl/cmnd
Traceback (most recent call last):
  File "ip150_mqtt.py", line 140, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 131, in loop_forever
    mqc.connect(mqtt_hostname, mqtt_port)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 937, in connect
    return self.reconnect()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1071, in reconnect
    sock = self._create_socket_connection()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "/usr/lib/python3.7/socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name does not resolve
Traceback (most recent call last):
  File "ip150_mqtt.py", line 140, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 131, in loop_forever
    mqc.connect(mqtt_hostname, mqtt_port)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 937, in connect
    return self.reconnect()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1071, in reconnect
    sock = self._create_socket_connection()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "/usr/lib/python3.7/socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name does not resolve
Traceback (most recent call last):
  File "ip150_mqtt.py", line 140, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 131, in loop_forever
    mqc.connect(mqtt_hostname, mqtt_port)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 937, in connect
    return self.reconnect()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1071, in reconnect
    sock = self._create_socket_connection()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "/usr/lib/python3.7/socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name does not resolve
Traceback (most recent call last):
  File "ip150_mqtt.py", line 140, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 131, in loop_forever
    mqc.connect(mqtt_hostname, mqtt_port)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 937, in connect
    return self.reconnect()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1071, in reconnect
    sock = self._create_socket_connection()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "/usr/lib/python3.7/socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name does not resolve

Thanks for the future help

1 Like

Two things:

  • First line, remove :80 - this is the default port for HTTP
  • Fourth line, mosquitto has an O at the end of it :slight_smile:
    You should be good to go after that, or at least encounter another error :smiley:
    Also, I’m not sure if the PANEL_PASSWORD entry has to be enclosed in ’ ’ but see how you go without it for now

You can’t be logged into the Alarm Web GUI and have the Addon running as well. The Web GUI only supports one active connection at a time. Log out of the web session and try to run your addon again.

2 Likes

Thanks for the help!!
I made the changes you suggested and it fixed the error but am now 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 133, in loop_forever
    mqc.loop_forever()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1782, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1177, in loop
    rc = self.loop_read(max_packets)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 1568, in loop_read
    rc = self._packet_read()
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 2271, in _packet_read
    byte = self._sock_recv(1)
  File "/usr/lib/python3.7/site-packages/paho/mqtt/client.py", line 660, in _sock_recv
    return self._sock.recv(bufsize)
AttributeError: 'NoneType' object has no attribute 'recv'

Would this have to do with the number of connections because when looking at the Web GUI for the alarm it says only one connection at a time which means it is getting a connection and may not have to do with the number of connections to the alarm or would the Insite Gold app have something to do with connections because i have 4 people with the app that is connected to the alarm. I can connect to Web GUI of the alarm when home assistant is not connected to it. Thanks for the future help

1 Like

Hi @xessiv @alfredo
I have HomeAssistant (last version), RPi B3+ and Paradox Magellan MG5050 4.76 with IP150 1.39.
I use Mosquitto MQTT Broker (it work correctly)
I’m not very expert, but I’am very desperate.
I have tried with your reviews, but it doesn’t work. Please can you help me?

This is my Mosquitto Broker config:

logins:
  - username: mqtt
    password: xxxxxxxxxxx
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

Thank you, I am hopeful

What’s your issue? Have you tried installing the component? Do you get messages in the log?

Hi! @scstraus
I had tried to copy / paste a configuration, but it wasn’t working and I deleted it.
I’m not very expert, could you tell me how to make a simple panel with arm / disarm only?
Then later if it works I will add the sensors.
For the moment I just want to be able to arm and disarm the alarm, and see the status.
Thanks

In component I set this:

IP150_ADDRESS: 'http://192.168.1.17'
PANEL_CODE: 'xxxx'
PANEL_PASSWORD: 'xxxx'
MQTT_ADDRESS: 'mqtt://homeassistant'
MQTT_USERNAME: my user
MQTT_PASSWORD: my pass
ALARM_PUBLISH_TOPIC: paradox/alarm/state
ALARM_SUBSCRIBE_TOPIC: paradox/alarm/cmnd
ZONE_PUBLISH_TOPIC: paradox/zone/state
CTRL_PUBLISH_TOPIC: paradox/ctrl/state
CTRL_SUBSCRIBE_TOPIC: paradox/ctrl/cmnd

What do you get in the log for the addon?

Hi @scstraus , I configured exactly like this:

In Add-on Paradox IP150 MQTT Adapter i have this:

IP150_ADDRESS: 'http://192.168.1.17'
PANEL_CODE: 'xxxx'
PANEL_PASSWORD: 'xxxx'
MQTT_ADDRESS: 'mqtt://homeassistant'
MQTT_USERNAME: xxx
MQTT_PASSWORD: xxx
ALARM_PUBLISH_TOPIC: paradox/alarm/state
ALARM_SUBSCRIBE_TOPIC: paradox/alarm/cmnd
ZONE_PUBLISH_TOPIC: paradox/zone/state
CTRL_PUBLISH_TOPIC: paradox/ctrl/state
CTRL_SUBSCRIBE_TOPIC: paradox/ctrl/cmnd

In configuration.yaml I have this:

alarm_control_panel:
  - platform: mqtt
    name: "House Paradox"
    state_topic: “paradox/alarm/state/1”
    command_topic: “paradox/alarm/cmnd/1”
    qos: 1
    availability_topic: "paradox/ctrl/state"
    payload_available: "Connected"
    payload_not_available: "Disconnected"

In Lovelace Card I have this:

type: alarm-panel
states:
  - arm_home
  - arm_away
  - arm_night
entity: alarm_control_panel.house_paradox
name: Alarm

This Add-on LOG:

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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>
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' />
	<title></title>
<script type='text/javascript'>function redirect(){var port="443";window.location = "https://" + window.location.hostname + ":" + port + window.location.pathname + window.location.search;} redirect();</script></head><body></body></html>

In Lovelace Card I see only DISARM button, and a red shield with say UNAVAIABLE.

Thanks.