Paradox Alarm MQTT Hassio addon

Hi all,

I’ve got an SP6000 and IP150 v4.10.
I’m trying to use the addon. It seems connect to the IP150, but the states don’t change. (Except the paradox/ctrl/state).
I googled a lot about this subject and I find an intresting thing.
My IP150 (firmware 4.10) web interface appearance not the same as in the paradox user guides. I don’t have menus.
Could it be the problem?

Thank you

I am finding the exact same thing with my IP150 too.

My SP6000 firmware is 5.19.
My IP150 firmware is 1.39.02, hardware 020

I am also wondering why the MQTT never work for me.

Hi, anyone has any further development on this one?

Still trying to find out what is the firmware version of IP150 for those of you whose mqtt setup works.

Thanks

Ciao @alfredo

I just discovered your add-on and I’m trying to configure it.

My HW is:

SP6000
Firmware version	5.18

IP module 150
Firmware version	1.39.02

the IP150 port are different than standard, and I use SSL, so even if I go to http://paradoxip:xx it switches to https://paradoxip:yyy

where xx and yyy are different than standard 80 and 443

the addon configuration is

{
  "IP150_ADDRESS": "http://192.168.0.23:xx",
  "PANEL_CODE": "panelcode",
  "PANEL_PASSWORD": "panelpasswd",
  "MQTT_ADDRESS": "mqtt://core-mosquitto",
  "MQTT_USERNAME": "mqtuser",
  "MQTT_PASSWORD": "mqttpasswd",
  "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"
}

I’m using Hass.io latest version with included mqtt broker

I’m getting these errors in log:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/usr/lib/python3.6/site-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/usr/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 814, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:777)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3.6/site-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.0.23', port=421): Max retries exceeded with url: /login_page.html (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "ip150_mqtt.py", line 123, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 105, in loop_forever
    self.ip.login(self._cfg['PANEL_CODE'], self._cfg['PANEL_PASSWORD'])
  File "/ip150.py", line 129, in login
    '{}/login_page.html'.format(self.ip150url), verify=False)
  File "/usr/lib/python3.6/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3.6/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='192.168.0.23', port=421): Max retries exceeded with url: /login_page.html (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),))
probably since this error no sensors are shown.

Any suggestion on what I’m doing wrong?

Thanks

Ur MQTT u ask the driver to check @
“ALARM_SUBSCRIBE_TOPIC” : “paradox/alarm/cmnd”,
You tell HASS to send to :
command_topic: “Paradox/C/P1”

So your commands wont get executed by the driver

Very nice idea.
I am also trying to set it up, w/out much success.

Hi Guys
I seem to have got this working:
Please Like the post if this solves your problems :slight_smile:

Running built in mqtt

configuration.yaml

mqtt:
broker: localhost
port: 1883

configuration.yaml

alarm_control_panel:

  • platform: mqtt
    name: House Paradox
    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”
    #ARM_HOME = ARM_sleep @Line38 ip150.mqtt.py

configuration.yaml

  • platform: mqtt
    state_topic: “paradox/zone/state/2”
    name: “Study”
    qos: 0
    payload_on: “on”
    payload_off: “off”

Repeat for all your Zones/Openings and so forth

Hass.io: add-on details => Paradox IP150MQTT Adapter (web based configuration)

{
“IP150_ADDRESS”: “http://[IP-OF-IP150]”,
“PANEL_CODE”: “[mastercode]”,
“PANEL_PASSWORD”: “[webpassword]”,
“MQTT_ADDRESS”: “mqtt://core-mosquitto”,
“MQTT_USERNAME”: “MQTT_user”,
“MQTT_PASSWORD”: “MQTT_pwd”,
“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”
}

Hass.io: add-on details => Mosquitto broker (web based configuration)

{
“plain”: true,
“ssl”: false,
“anonymous”: true,
“logins”: ,
“customize”: {
“active”: false,
“folder”: “mosquitto”
},
“certfile”: “fullchain.pem”,
“keyfile”: “privkey.pem”
}

Don’t forget to Like the post :wink:

6 Likes

For the life of me I just can’t seem to get this working!
tried so many different ways people have managed to get it to work but still no go

These are the errors I keeps getting

> Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/urllib3/connection.py", line 141, in _new_conn (self.host, self.port), self.timeout, **extra_kw) File "/usr/lib/python3.6/site-packages/urllib3/util/connection.py", line 83, in create_connection raise err File "/usr/lib/python3.6/site-packages/urllib3/util/connection.py", line 73, in create_connection sock.connect(sa) ConnectionRefusedError: [Errno 111] Connection refused During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen chunked=chunked) File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 357, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/lib/python3.6/http/client.py", line 1239, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/lib/python3.6/http/client.py", line 1026, in _send_output self.send(msg) File "/usr/lib/python3.6/http/client.py", line 964, in send self.connect() File "/usr/lib/python3.6/site-packages/urllib3/connection.py", line 166, in connect conn = self._new_conn() File "/usr/lib/python3.6/site-packages/urllib3/connection.py", line 150, in _new_conn self, "Failed to establish a new connection: %s" % e) urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x76134e30>: Failed to establish a new connection: [Errno 111] Connection refused During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 440, in send timeout=timeout File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen _stacktrace=sys.exc_info()[2]) File "/usr/lib/python3.6/site-packages/urllib3/util/retry.py", line 388, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.1.2', port=80): Max retries exceeded with url: /login_page.html (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76134e30>: Failed to establish a new connection: [Errno 111] Connection refused',)) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "ip150_mqtt.py", line 123, in <module> ip_mqtt.loop_forever() File "ip150_mqtt.py", line 105, in loop_forever self.ip.login(self._cfg['PANEL_CODE'], self._cfg['PANEL_PASSWORD']) File "/ip150.py", line 129, in login '{}/login_page.html'.format(self.ip150url), verify=False) File "/usr/lib/python3.6/site-packages/requests/api.py", line 72, in get return request('get', url, params=params, **kwargs) File "/usr/lib/python3.6/site-packages/requests/api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 508, in request resp = self.send(prep, **send_kwargs) File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 618, in send r = adapter.send(request, **kwargs) File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 508, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.1.2', port=80): Max retries exceeded with url: /login_page.html (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x76134e30>: Failed to establish a new connection: [Errno 111] Connection refused',))

Seems like some files just don’t exist on my hassio. for example when I navigate to /usr/lib/python3.6/site-packages/urllib3/ I can’t find connection.py

Your config is lacking for the ip for the IP150 => 192.168.1.2 ?

Max retries exceeded with url: /login_page.html (Caused by NewConnectionError(’<urllib3.connection.HTTPConnection object at 0x76134e30>: Failed to establish a new connection: [Errno 111] Connection refused’,))

1 Like

I fixed it,
turned out that my IP150 was working on port 188. Logged in to web interface and changed it back to port 80
Now everything is working fine!

I’m having too an error

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/usr/lib/python3.6/site-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/usr/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 814, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:777)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3.6/site-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.1.xx', port=xxxx): Max retries exceeded with url: /login_page.html (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "ip150_mqtt.py", line 123, in <module>
    ip_mqtt.loop_forever()
  File "ip150_mqtt.py", line 105, in loop_forever
    self.ip.login(self._cfg['PANEL_CODE'], self._cfg['PANEL_PASSWORD'])
  File "/ip150.py", line 129, in login
    '{}/login_page.html'.format(self.ip150url), verify=False)
  File "/usr/lib/python3.6/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3.6/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='192.168.1.xx', port=xxxx): Max retries exceeded with url: /login_page.html (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),))

my config is:

{
  "IP150_ADDRESS": "https://192.168.1.xx:xxxx",
  "PANEL_CODE": "panel_code",
  "PANEL_PASSWORD": "panel_password",
  "MQTT_ADDRESS": "mqtt://core-mosquitto",
  "MQTT_USERNAME": "mqtt_user",
  "MQTT_PASSWORD": "mqtt_pwd",
  "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"
}

On IP150 I have only HTTPS, if I try HTTP port it switches automatically to HTTPS

Any suggestion?
Thanks

Hi Cybertza, this is what I have:

In configuration.yaml

alarm_control_panel:
   - platform: mqtt
     state_topic: "paradox/alarm/state/1"
     command_topic: "paradox/alarm/cmnd/1"
     name: "Paradox"
     payload_disarm: "DISARM"
     payload_arm_home: "ARM_HOME"
     payload_arm_away: "ARM_AWAY"
     code: "1234"

sensor:
  - platform: mqtt
    state_topic: "paradox/ctrl/state"
    name: "Connection Status"

  - platform: mqtt
    state_topic: "paradox/zone/state/1"
    name: "Zone 1"
    qos: 0
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "paradox/zone/state/2"
    name: "Zone 2"
    qos: 0
    payload_on: "on"
    payload_off: "off"

and in my Paradox IP150 MQTT Adapter

{
  "IP150_ADDRESS": "http://192.168.1.8",
  "PANEL_CODE": "1234",
  "PANEL_PASSWORD": "PanelPassword",
  "MQTT_ADDRESS": "mqtt://core-mosquitto",
  "MQTT_USERNAME": "mqttbroker",
  "MQTT_PASSWORD": "4567",
  "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 in my mosquitto broker

{
  "plain": true,
  "ssl": false,
  "anonymous": true,
  "logins": [
    {
      "username": "mqttbroker",
      "password": "4567"
    }
  ],
  "customize": {
    "active": false,
    "folder": "mosquitto"
  },
  "certfile": "fullchain.pem",
  "keyfile": "privkey.pem"
}

I still could not get this to work. What am I doing wrong?

Thanks!

Ok. After restarting the rpi twice in a row and restarting hassio multiple times, and I still don’t know what actually happen, but hassio is now seeing the zone status of the various alarm zones.

Previously all I see is “off” but now some of the PIR zone is indicated to be “ON” but the weird thing is that it remains on all the time. For instance, it says my garage PIR is ON when there is no one there.

Reed switches status however seems to work okay.

Any ideas?

Hi guys. I am having issue with stability of the current configuration.
Everything is working fine except when the security system is under alarm. It get stuck and even restarting the paradox module it is not connected to the hassio. I have to wait at least two days to get everything up and running.
I think on the event of Alarm the ip150 sent a lot of messages to the mqtt broker and it is blocked for at least 48 hours. Of course it is only my suggestion because i can not find anything related on the network.

My question is there someone with the same problem when the system is under alarm?
Is there a status for Under Alarm?

Thanks for your help!

Everything seems to be working but I just can’t control the alarm, no arm or disarm
I’ve put in my code in config.json, options.json and in configuration.yaml

I have an SP5500, could it be that it’s going to the wrong MQTT command topic?
My “Alarm State” bubble is showing status without problems but the “House Paradox” bubble is always showing “unknown”
Can someone please help?

Hi,
Also same issue on my side.
Connection status is “connected”. But all bubbles showing “unknown”.
I have also SP5500 and IP150 v4x.
This evening i"ll postmy config, maybe someone can help :slight_smile:

As far as i know the ip150 mudule is working only if the firmware version is 1.39 or 1.40 so i think ver. 4 wouldn’t work.
I had the same issue with ver. 4 and i had to investigate the problem for a month when i found somewhere that paradox lock some features on the IP module from firmware ver. 3 and above.
Your only way is to find IP150 with firmware 1.39 (downgrades are not possible)

Hi Peter, thanks for answar.
I control it allready with babyware and insight app (it’s working good). It would be greate to integrate in Hassio like i have other stuf (jalousie, garage, doors), i only missing alarm inside.

But what does it mean (Connected), is this connection to ip150 module?

Could you please give a link to where who says firmware 1.39 or 1.4?
I have 1.34 on mine and I can see everything but just can’t seem to control the unit