Even though my system has an ip100, I decided to go ahead and install Mosquitto and your addon. Installing Mosquitto is rather confusing and I’m not sure I got it properly installed… please, how can I review the logs of your addon? where do I find them?
If I can make this run with my Evo192 and the IP100 module, you will be my hero @alfredo!!
Many many thanks
Hi All,
Apologies for the delay, I’m working on this in my spare time, which is very very scarce at the moment.
I’ve now released v0.2 of the addon. Please do the following to update:
- stop the currently running addon
- unistall it from hassio
- run “git pull” in the addon directory where you previously git-cloned the addon
- reinstall and re-configure the addon in hassio
I will work on making updates smoother in the future, by setting up an addon repository – just let’s go one step at a time
In v0.2, you get the following new features:
- PIR sensor detection (@MyCool this should address your use case)
- Handling of alarm states “Ready/Not ready/Instant” (@Vans, @MyCool this should fix some crashes you experienced previously)
A few more details: PIR sensors work by publishing the “on” or “off” payload on the following topics paradox/zone/state/<PIR#> so that you can define binary sensors in HA. (The topic is configurable via the ZONE_PUBLISH_TOPIC config variable). Likewise for zones, each zone and sensor are identified by an integer. This should suffice for most use cases.
The support for Ready, Not ready, and Instant alarm states is simply to acknowledge and ignore such states. I still don’t fully understand their purpose, but it seems that regarding HA, they can be ignored. Please let me know if the addon should behave otherwise.
@kitus, I can’t say whether this addon would work with IP100, as I don’t have one at hand. In general, HA can’t talk to IP150 modules directly, but it can talk to MQTT-enabled alarms. This addon works as glue, by exporting the IP150 allarm state to MQTT, so that HA can read and control the alarm. Hence, you’ll need to configure an MQTT Alarm Control Panel in HA (https://home-assistant.io/components/alarm_control_panel.mqtt/) and then configure my addon to send and receive updates on the same topics. As for the MQTT broker, you can pick whatever suits you best. If you use HASSIO, you can use the MQTT addon that comes with it (this is my setup). You can alternatively install mosquitto separately (say, on a different machine), or you could consider using the mqtt broker that comes embedded into HA (https://home-assistant.io/components/mqtt/). Entirely your call.
As always, please let me know your mileage with this rough software, and we can take it from there!
Hi @alfredo,
I’ve removed all the local code and git cloned again your repo. Whatever I do hassio keeps displaying v.0.1 (and with recent updates the look&feel has changed a lot - the shopping bag is now gone). Could you provide guidance here?
thanks
Hi @kitus,
I believe I’ve experienced a similar pattern. Have you tired restarting hassio? There used to be a “rewind arrow” to refresh the repository, but with the new layout I can’t find that anymore.
Yes, prior to posting I did restart hassio but I can’t refresh the local repo (can’t find where I should click).
Hello @alfredo,
once again, many thanks for putting this together. I’ve today spent some time configuring your add-on following my heart and I think I’ve managed to “read” the state of the alarm at some point. For doing so, I’ve installed Google MQTTLens on my computer, connected to my hass.io and suscribed to the topic #. Once I did that, I managed to “see” a “Connected” message on the app (RETAIN flag seems to also be active), which makes me feel very positive this may lead to some positive results. However, regardless of whether I armed or disarmed the system, the MQTT app will always reflect “Connected”. It is worth noting that I used the following credentials to connect to the hass.io mqtt services:
ip address: hass.io LAN ip
username: ANOTHERUSERNAME
password: ANOTHERPASSWORD
Do you happen to have a guidance somewhere on how to configure this? There are some moving parts involved, and I’m not aware of any documentation that you may have published. If it exists, could you kindly point me to it?
This is what I’ve done:
-
Installed the mosquitto add-on on my hass.io and configured it like this
{
“plain”: true,
“ssl”: false,
“anonymous”: true,
“logins”: [
{
“username”: “ONEUSERNAME”,
“password”: “ONEPASSWORD”
}
],
“customize”: {
“active”: false,
“folder”: “mosquitto”
},
“certfile”: “fullchain.pem”,
“keyfile”: “privkey.pem”
} -
I configured the configure.yaml file with this data
mqtt: broker: xxx.cloudmqtt.com port: xxx keepalive: 60 client_id: xxx username: CLOUDMQTTMYUSER password: CLOUDMQTTMYPASS discovery: True alarm_control_panel: - platform: mqtt state_topic: "Paradox/Events" command_topic: "Paradox/C/P1" payload_disarm: "Disarm" payload_arm_home: "Sleep" payload_arm_away: "Stay" code: MYPANELCODE
-
modified the local file options.json like this
core-ssh:~# cat /addons/Paradox_IP150/options.json
{
“IP150_ADDRESS” : “http://LOCALIP_IP100:10000”,
“PANEL_CODE” : "MYPANELCODE,
“PANEL_PASSWORD” : “MYPANELPASSWORD”,
“MQTT_ADDRESS” : “mqtt://core-mosquitto”,
“MQTT_USERNAME” : “ANOTHERUSERNAME”,
“MQTT_PASSWORD” : “ANOTHERPASSWORD”,
“ALARM_PUBLISH_TOPIC” : “paradox/alarm/state”,
“ALARM_SUBSCRIBE_TOPIC” : “paradox/alarm/cmnd”,
“CTRL_PUBLISH_TOPIC” : “paradox/ctrl/state”,
“CTRL_SUBSCRIBE_TOPIC” : “paradox/ctrl/cmnd”
}
-
In the configuration part of your add-on I used this:
{
“IP150_ADDRESS”: “http://LOCALIP_IP100”,
“PANEL_CODE”: “MYPANELCODE”,
“PANEL_PASSWORD”: “MYPANELPASSWORD”,
“MQTT_ADDRESS”: “mqtt://core-mosquitto”,
“MQTT_USERNAME”: “ANOTHERUSERNAME”,
“MQTT_PASSWORD”: “ANOTHERPASSWORD”,
“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”
}
Despite the fact that I think I managed to see some mqtt traffic on my laptop, which was allegedly originated in my alarm, I can’t help it but to have the feeling that one can configure things in two different places, and you never know where it is right, or what the system will pay attention to. This is the case for example for the MQTT add-on (and I know this is a standard add-on but it frames the case very well), because as you can see I’ve configured two different usernames and passwords and it seems it is able to connect (see ONEUSERNAME vs ANOTHERUSERNAME for example).
Same happens with your add-on. It seems to me that one can/?must? configure things in two different places. This is a point of failure as you can end up changing things on one file and not on the other one. Also, on your add-on there is even a third file called config.json, but I’ve left it with the default values.
At this point I have the following open loops:
i. I would like to verify my current setup and see where it not correct
ii. I would like to simulate activity and confirm hass.io has visibility
iii. I would like to be able to read the activity off the network, because I only see messages coming in in the app when I arm or disarm the system, but given that I have PIR sensors all around, I can very easily generate activity.
One other thing, hass.io displays the alarm entity as unknown like it is described in the documentation
If these messages are published with RETAIN flag, the MQTT alarm panel will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state will be unknown.
Is there any chance you could give me a hand with this? Apologies for the length of the post but I wanted to provide as much information as possible.
Many thanks in advance,
Hello @alfredo,
You and @kitus motivated me to set up my connection to my Paradox IP150.
I used Mosquitto in stalled directly as Hassio addon.
Addon config:
{
“IP150_ADDRESS”: “http://192.168.1.26”,
“PANEL_CODE”: “xxxx”,
“PANEL_PASSWORD”: “*****”,
“MQTT_ADDRESS”: “mqtt://core-mosquitto”,
“MQTT_USERNAME”: “myusername”,
“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”
}
configuration.yaml
mqtt:
broker: core-mosquitto
username: myusername
password: mypassword
sensor:
- platform: mqtt
state_topic: ‘paradox/alarm/state/1’
name: Alarm State - platform: mqtt
state_topic: ‘paradox/zone/state/1’
name: Zone 1 - platform: mqtt
state_topic: ‘paradox/zone/state/2’
name: Zone 2
From outside everything looks ok, my Paradox IP150 is busy with the connection I cannot even log in on the web, because it is busy feeding Hassio, but even if I do Cotton Eye Joe dancing front of the PIRs they are always off. As @kitus mentioned I also checked MQTT with Google MQTTLens and I also see the PIRs, but they are off all the time.
I am not an expert in this, I am not sure what is wrong.
My Paradox details:
Panel
Type SP6000
Firmware version 4.94
EDIT: Looks like I was just not patient enough. It is working now.
Hi all, I am trying to install this on Hass.io.
I now managed to get to the point whereby I can see the Paradox IP150 MQTT adapter addon available for installation.
The problem is that when i hit install, the “install” button turns red and then back to the usual blue colour.
And the addon is not installed.
The system log shows this:
8-03-09 15:39:19 INFO (SyncWorker_4) [hassio.docker.addon] Start build local/i386-addon-paradox_ip150_mqtt:0.2
18-03-09 15:39:19 ERROR (SyncWorker_4) [hassio.docker.addon] Can’t build local/i386-addon-paradox_ip150_mqtt:0.2: Please provide a source image with from
prior to commit
Any thing I can do to rectify?
Thanks
Hi @grunwald, would you care to provide guidance if I contact you privately? I’m at a loss and I’m struggling to troubleshoot the problem. I’m stuck
Hi again, I really hope someone would take a look and let me know why the configruation is not working for me.
For a start, I have confirmed that if I start a mosquitto_sub in a putty window, I am able to receive the payload that is manually sent from hassio so that is telling me that mosquitto is setting up properly.
But the IP150 panel is just not sending the information to hassio.
this is what I have configured.
In Configuration.yaml
mqtt:
broker: core-mosquitto
port: 1883
username: mqttbroker
password: j4222949
sensor:
- platform: mqtt
state_topic: "paradox/alarm/state/1"
name: "Alarm State"
- platform: mqtt
state_topic: "paradox/zone/state/1"
name: "Zone 1"
- platform: mqtt
state_topic: "paradox/zone/state/2"
name: "Zone 2"
- platform: mqtt
state_topic: "paradox/zone/state/3"
name: "Zone 3"
- platform: mqtt
state_topic: "paradox/zone/state/4"
name: "Zone 4"
- platform: mqtt
state_topic: "paradox/zone/state/5"
name: "Zone 5"
- platform: mqtt
state_topic: "paradox/zone/state/6"
name: "Zone 6"
- platform: mqtt
state_topic: "paradox/zone/state/7"
name: "Zone 7"
- platform: mqtt
state_topic: "paradox/zone/state/8"
name: "Zone 8"
And in config of Paradox IP150 MQTT Adapter
{
"IP150_ADDRESS": "http://192.168.1.8",
"PANEL_CODE": "4204",
"PANEL_PASSWORD": "j4222949",
"MQTT_ADDRESS": "mqtt://core-mosquitto",
"MQTT_USERNAME": "mqttbroker",
"MQTT_PASSWORD": "j4222949",
"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 /addons folder of hassio, config.json is as follows:
{
"name": "Paradox IP150 MQTT Adapter",
"version": "0.2",
"slug": "paradox_ip150_mqtt",
"description": "Expose an MQTT interface for the Paradox IP150 web interface",
"url": "https://github.com/alfredopironti/Paradox_IP150",
"startup": "services",
"boot": "auto",
"options": {
"IP150_ADDRESS" : "http://192.168.1.8",
"PANEL_CODE" : "4204",
"PANEL_PASSWORD" : "j4222949",
"MQTT_ADDRESS" : "mqtt://core-mosquitto",
"MQTT_USERNAME" : "mqttbroker",
"MQTT_PASSWORD" : "j4222949",
"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"
},
"schema": {
"IP150_ADDRESS" : "url",
"PANEL_CODE" : "str",
"PANEL_PASSWORD" : "str",
"MQTT_ADDRESS" : "url",
"MQTT_USERNAME" : "str",
"MQTT_PASSWORD" : "str",
"ALARM_PUBLISH_TOPIC" : "str",
"ALARM_SUBSCRIBE_TOPIC" : "str",
"ZONE_PUBLISH_TOPIC" : "str",
"CTRL_PUBLISH_TOPIC" : "str",
"CTRL_SUBSCRIBE_TOPIC" : "str"
}
}
And lastly options.json also in /addons folder is:
{
"IP150_ADDRESS" : "http://192.168.1.8",
"PANEL_CODE" : "4204",
"PANEL_PASSWORD" : "j4222949",
"MQTT_ADDRESS" : "mqtt://core-mosquitto",
"MQTT_USERNAME" : "mqttbroker",
"MQTT_PASSWORD" : "j4222949",
"ALARM_PUBLISH_TOPIC" : "paradox/alarm/state",
"ALARM_SUBSCRIBE_TOPIC" : "paradox/alarm/cmnd",
"CTRL_PUBLISH_TOPIC" : "paradox/ctrl/state",
"CTRL_SUBSCRIBE_TOPIC" : "paradox/ctrl/cmnd"
}
I have all the sensor bubbles on Hassio shown (i.e. alarm state, zone1 to zone 8) but none are changing states when the PIR is activated, etc.
What have I done wrong? This is driving me crazy because I think I have done exactly what the addon says.
Thanks a bunch.
Hi @kitus,
To be honest I am not sure what is the magic. I did everything what I describe above, it didn’t worked. But next day when I came back, somehow it started working.
I think it is a good sign if you see, that your MQTT see the zones. I used the Google MQTTLens Chrome addon and the # sign. I was able to see all my 32 zones. Then the other good sign was, that I have seen, that the MQTT communicating with the Paradox alarm system, because I was not able to log in. (It doesn’t let you double log in).
So I was waiting and now it looks like this:
I did the icons by myself in the customize.yaml file. What I see, the system is still a bit buggy. Sometimes it frozen, sometimes working like a charm.
So ones again:
Paradox IP150 MQTT Adapter
Set up mqtt:
configuration.yaml
mqtt:
broker: core-mosquitto
username: mqttusername
password: mqttpassword
sensor:
- platform: mqtt
state_topic: 'paradox/zone/state/1'
name: Living Room PIR`
- platform: mqtt
state_topic: 'paradox/zone/state/2'
name: Living Room Glass
- platform: mqtt
state_topic: 'paradox/zone/state/3'
name: Kitchen Smoke
- platform: mqtt
state_topic: 'paradox/zone/state/4'
name: Kitchen PIR
- platform: mqtt
state_topic: 'paradox/alarm/state/1'
name: Alarm State
customize.yaml
sensor.back_door:
icon: mdi:door
sensor.bathroom:
icon: mdi:walk
sensor.kitchen_smoke:
icon: mdi:fire
sensor.living_room_glass:
icon: mdi:image-broken
sensor.siren_error:
icon: mdi:alert-circle-outline
sensor.upstairs_bath_window:
icon: mdi:window
What I still don’t know yet, how can I arm and disarm the alarm. This part is not working for me and I don’t know, what is wrong:
alarm_control_panel:
- platform: mqtt
state_topic: "Paradox/Events"
command_topic: "Paradox/C/P1"
payload_disarm: "Disarm"
payload_arm_home: "Sleep"
payload_arm_away: "Stay"
code: MYPANELCODE
Hi grunward, good to see your config. I checked that it is almost identical to what I had but mine is not working at all. Incidentally I also have a SP6000 panel.
Could you please tell me what is the firmware version of your SP6000 and IP150? I am wondering if the firmware version contribute to my current difficulties.
Thanks
Sorry grunwald for missing that info in your post.
Could you please give the firmware of your IP150?
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.