Paradox Alarm MQTT Hassio addon

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.

It’s telling you that the addon is not successfully connecting to the IP150S. Shut down the addon and then try to connect to

http://192.168.1.17

with your web browser which is on same network segment as your hass server and try using the same username and login. If it works, then you need to make sure to close any browser session that’s connected to the IP150S web page, because it only allows one connection at a time, and restart the addon and see what you get.

Hi.
I tried to do as you said me, in web browser by calling the address http://192.168.1.17 (IP150 address) it connects correctly.

In original IP150 web page, in IP150 Configuration, I have:

IP: 192.168.1.17
Software Port: 10000
HTTP Port: 80
HTTPS: NO
HTTPS Port: 443

iParadox App for iOS work perfectly (i use DynDNS no-ip.com for that, set in my router)

But from HomeAssistant add-on it doesn’t work.

When I restart Paradox IP150 MQTT Adapter add-on, in Home Assistant notifications appear this message:
Login attempt or request with invalid authentication from 172.30.xx.x

When I delete that error message, this appears in the 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' />
	<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>CASA</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>

Login attempt or request with invalid authentication from 172.30.xx.x

this message in home assistant notifications occurs every 5 minutes

That looks like your MQTT user/pass credentials aren’t correct in your Paradox addon. Can you double check them?
Also, not sure if this would matter, but maybe change the host from mqtt://homeassistant to mqtt://core-mosquitto if you’re using the Mosquitto addon within HA

Hi!
Now it works perfectly, it was an error in the mqtt password (but mqtt address was correct).

This is my configuration.yaml:

alarm_control_panel:
  - platform: mqtt
    state_topic: "paradox/alarm/state/1"
    command_topic: "paradox/alarm/cmnd/1"
    payload_disarm: "DISARM"
    payload_arm_home: "ARM_HOME"
    payload_arm_away: "ARM_AWAY"
    qos: 1
    name: "Control State Home"

This is my alarm_control_panel.yaml:

  - platform: mqtt
    state_topic: 'paradox/alarm/state/1'
    command_topic: 'paradox/alarm/cmnd/1'
    name: CASA
    payload_disarm: "DISARM"
    payload_arm: "ARM"
    payload_arm_home: "ARM_HOME"
    payload_arm_away: "ARM_AWAY"
    qos: 1
    code: *mycode*

The “alarm_control_panel:” part in configuration.yaml is necessary?
Or I can delete it and put

alarm_control_panel:! includes includes / alarm_control_panel.yaml

?

Great news!
I actually think your alarm_control_panel.yaml file code has more wrong to it than the one in your configuration.yaml. Why don’t you remove alarm_control_panel.yaml and change the name in your configuration.yaml to CASA? Then I think you’ll achieve what you want, without an extra file :slight_smile:

If I delete alarm_control_panel.yaml, and copy/paste this code in configuration.yaml , on lovelace card I see the keyboard for alarm panel code.

  - platform: mqtt
    state_topic: 'paradox/alarm/state/1'
    command_topic: 'paradox/alarm/cmnd/1'
    name: CASA
    payload_disarm: "DISARM"
    payload_arm: "ARM"
    payload_arm_home: "ARM_HOME"
    payload_arm_away: "ARM_AWAY"
    qos: 1
    code: xxxx

I preferred as it was previously, without code for ARM/DISARM alarm system.

I have seen that some users in configuration.yaml only have

alarm_control_panel:! includes includes / alarm_control_panel.yaml

you don’t need the code: xxxx line in your configuration. Remove that and you should be fine.

Ok, now I deleted alarm_control_panel.yaml file, and in configuration.yaml I have like this:

alarm_control_panel:
  - platform: mqtt
    state_topic: "paradox/alarm/state/1"
    command_topic: "paradox/alarm/cmnd/1"
    payload_disarm: "DISARM"
    payload_arm_home: "ARM_HOME"
    payload_arm_away: "ARM_AWAY"
    qos: 1
    name: "Control State Home"

It work PERFECTLY! Thanks @xessiv .

Now…next step…

How can I view my alarm sensors? I have a lot of door and pir sensor , can I view their states?