Paradox Alarm MQTT Hassio addon

Just came across some information that may be useful for people that want to downgrade their firmware!
As always, use at your own risk
https://github.com/Tertiush/ParadoxIP150v2/issues/22#issuecomment-397906467

Hi @UbiMaiden,

Thanks for the hint. From the documentation, it seems it should be possible to trigger output PGM by home assistant, via the web interface; since the documentation doesnā€™t say whether the input PGM status can be inspected from the web interface, itā€™s not sure you could use those as sensors in home assistant. At this stage, I donā€™t plan implementing this feature, since as you say a Sonoff could probably do the same and would be way easier to integrate.

Re: triggering the alarm, an input PGM may work, but I find it a bit convoluted: youā€™d need a remotely controlled relay to alter the PGM status. Iā€™d have preferred a button to click on the web interface, which would have worked much like arming and disarming.

In fact, my alarm can be triggered in two ways: 1) by opening a zone, which triggers the siren after a delay; 2) in ā€œpanicā€ mode via a remote control, where the siren doesnā€™t trigger, and thereā€™s no delay. But unfortunately none of them seems to be available via the web interface.

Cheers,
Alfredo

Hi alfredo

Yes here is the automation I am currently using, having some issues with the new person: feature and playing with armed vs pending states for notifications. I only do this during the day as our phones go into coma mode and are marked away at night.

- alias: Detect if Alarm should be set
  hide_entity: false
  trigger:
    - platform: state
      entity_id: person.jean_pierre, person.anja, device_tracker.getrekt
      to: 'not_home'
  condition:
      - condition: state
        entity_id: sensor.alarm_state
        state: 'disarmed'
      - condition: state
        entity_id: sensor.hassio_connected
        state: 'Connected'   
      - condition: sun
        before: sunset
      - condition: sun
        after: sunrise
  action:
    service: notify.pushbullet
    data: 
     title: Alarm not set 
     message: The alarm is not set and no one is home.
1 Like

Hi all,
Has anyone gotten a recent version of hass.io to recognize this addon? Has anything changed? I followed the instructions below on v.90.2 (supervisor 152) and it refuses to recognize any addons after many refreshesā€¦

cd /addons
git clone https://github.com/alfredopironti/Paradox_IP150.git paradox_ip150_mqtt

It downloaded the folder and the folder called ip150_mqtt is sitting in the addons folder with a bunch of stuff in it, and one time I got a log message in the supervisor logs about it missing some files, but since then Iā€™ve been trying to add and remove it and refresh a bunch of times, but it never shows up in the hass.io addons pageā€¦ Any way I could add it from a repository instead?

So I put it instead into the ā€œlocalā€ folder under ā€œaddonsā€ and hit the refresh button. Then it gives me this error:

19-04-03 21:55:56 WARNING (MainThread) [hassio.addons.data] Can't read /data/addons/local/paradox_ip150_mqtt/config.json: required key not provided @ data['arch']. Got None

So I had to add the arch option to config.json like so and then it showed upā€¦

{
  "name": "Paradox IP150 MQTT Adapter",
  "version": "0.5",
  "slug": "paradox_ip150_mqtt",
  "description": "Expose an MQTT interface for the Paradox IP150 web interface",
  "arch": ["amd64"],
  "url": "https://github.com/alfredopironti/Paradox_IP150",
  "startup": "services",
  "boot": "auto",

Will open a case and pull request about it.

EDIT: Sorry, I hadnā€™t read the post above mineā€¦ it seems like someone had already figured it out. Thanks scstraus :slight_smile:

Hi guys!

Thanks for keeping this module alive! It serves me well for my IP150! :slight_smile:

Just to keep everyone in the loop, Iā€™ve reinstalled my Home Assistant installation from scratch and while trying to do the installation of this addon, I couldnā€™t get it working. The addon would never get recognized by Home Assistant (0.91.4). I would get this error in the logs while trying to refresh the addons:
WARNING (MainThread) [hassio.addons.data] Can't read /data/addons/local/paradox_ip150_mqtt/config.json: required key not provided @ data['arch']. Got None

I fixed it by editing my config.json and inserting a new arch mandatory tag :
"arch": ["amd64"],

I was able to see the addon after this modification. Perhaps someone with a bit of time could update the config file on github? :slight_smile:

Thanks and have a great day!

I already made a pull request, but it hasnā€™t been accepted yetā€¦ I also wouldnā€™t mind to make a little howto for the github page, but first we need @alfredo to come back and pay us a visit so he can update the github repositoryā€¦

Thanks for doign the pull request scstraus. :+1: As for the howto, I am sure it will benefit others since this addon requires a bit of tech knowledge to get it working.

Hi all,

Sorry for the delayed reply, as I found some spare time to look into this. Iā€™ve now released v0.6 of the add-on, with the arch issue fixed. I take it was a (not-so-well documented?) breaking change in hassio at some point, that made that configuration parameter mandatory.

Thanks @scstraus for proactively proposing a pull request. Much appreciated!

I totally welcome a decent readme for the github repository, itā€™s very much needed. If anyone has time and willingness to help, please go ahead and Iā€™ll try to review in a decently short lapse of time! Thanks all for the support!

Cool, Iā€™ve only just gotten the addon working myself as I tried to order the IP150S 1.40 from Megateh as recommended here but they sent me the IP150 with 4.40 firmware instead (despite my having specifically ordered the other one) . They donā€™t have any 1.40 IP150Sā€™s left. So donā€™t order from themā€¦

I sent it back and got a real IP150S with 1.40 from eBayā€¦ @digieurope still has his, and these guys claim to still have 5 left (I emailed them to confirm), if anyone else is looking for one.

So, I just got the addon finally working a couple days agoā€¦ So far Iā€™ve only played with the sensors (which are working perfectly). I havenā€™t played with arming it or getting the alarm panel working in lovelace yetā€¦ Once I get it all going, I will try to put together a comprehensive readme for the github repo and open a pull request against it.

Can somebody suggest a way to troubleshoot this addon?
Iā€™m trying to follow other peopleā€™s posts as closely as possible, but I see no messages in any log - Paradox add-on, Mosquitto, home-assistant.log - no error nowhere - yet all defined entities are in unknown state.
I tried setting SSL on and off on the IP150s, at one point I got a flood of warnings that the certificated canā€™t be verified but then this also stopped.
The only way to tell that the addon is connected to the IP150s module is when I get the ā€˜userX already logged inā€™ message.
For completeness:
IP150s fw 1.40.00
Hardware 020
Panel SP65
FW 5.18
Hassio 0.91.4/RPi3B

In my experience, if thereā€™s no log than the addon is working correctly. A couple things to try:

  1. Can you correctly see all your zones and alarm state when you log directly into your IP150S?

  2. Using this addon, use the webUI to subscribe to the topics you have defined and see if thereā€™s any activity. If there is, then you defined your sensors wrongā€¦ If thereā€™s not then you have a problem with the addon.

Thanks for the suggestions.
Connecting to the web interface of IP150s (provided that I stop the add-on) works correctly.
Iā€™m using the Chrome extension MQTTLens to connect to Mosquitto and Iā€™ve subscribed to all defined topics:
ā€œ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ā€
however I can only see one message in total for them - ā€œConnectedā€ on paradox/ctrl/state.

Did you put a # after the topics to ensure it grabs the subtopics?

1 Like

Hi @scstraus,

Thanks for your involvement. It indeed seems time is coming for this add-on to finally get a README. I recently received a contribution on github for a base README, which is now live. Please feel free to propose further edits as you experiment with setting up the add-on.

right. that was it. so this add-on is successfully pushing messages to the broker. Iā€™ll try to redefine the sensors.

Hello, I am not running Hassio but I am using Docker for Windows with containers for home-assistant, portainer, mosquitto mqtt. If anyone is using this setup, I managed to get this addon working by using the following Dockerfile:

FROM python:alpine3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD python3 ip150_mqtt.py options.json

configuration.yaml looks like this:

alarm_control_panel:
  - platform: mqtt
    state_topic: 'paradox/alarm/state/1'
    command_topic: 'paradox/alarm/cmnd/1'
    name: alarm_house
    payload_disarm: 'DISARM'
    payload_arm_home: 'ARM_HOME'
    payload_arm_away: 'ARM_AWAY'
    qos: 1

    

binary_sensor:

  - platform: mqtt
    state_topic: "paradox/zone/state/1"
    name: "x1"
    payload_on: "on"
    payload_off: "off"
    device_class: motion

  - platform: mqtt
    state_topic: "paradox/zone/state/3"
    name: "x2"
    payload_on: "on"
    payload_off: "off"
    device_class: motion

  - platform: mqtt
    state_topic: "paradox/zone/state/4"
    name: "x3"
    payload_on: "on"
    payload_off: "off"
    device_class: motion

  - platform: mqtt
    state_topic: "paradox/zone/state/5"
    name: "x5"
    payload_on: "on"
    payload_off: "off"
    device_class: motion

Lovelace card:

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

All itā€™s working as expected, stay arming, full arming and disarming, also the binary sensors seem ok. I will play more when I will have time, because it needs automations, when the alarm is triggered, notifications, etc.

!Important IP150 INFO
I had v4.4 on my IP150 with Insite Gold and managed to downgrade to 1.39. Here is the link with information about downgrading. I will gladly help you if you encounter issues.

1 Like

Hi @renzorlive,

Thanks for sharing this! Iā€™ve added your lovelace config snippet to the main project README, as documentation is building up.

Iā€™d also like to add information about running this as an isolated Docker addon. However, have you considered taking inspiration from the current Dockerfile? Specifically, you could try with the following Dockerfile:

FROM python:alpine3.7

# Copy data for add-on
COPY run.sh ip150.py ip150_mqtt.py requirements.txt options.json /

RUN apk add --no-cache python3 &&\
python3 -m ensurepip &&\
pip3 install -r requirements.txt

RUN chmod a+x /run.sh

CMD [ "/run.sh" ]

Then, have run.sh be something like

while true
do
python3 ip150_mqtt.py options.json
# 20 seconds should be enough to ensure the session expired on the server
sleep 20
done

The above should do a couple of things:

  • Only copy the necessary files in the Docker image
  • use a small wrapper around the app that automatically restarts it if it crashes. Hopefully this will never be needed :wink: but there used to be times when this addon was quite less stable than today!

If you could let me know your mileage, Iā€™d be happy to add instructions (or somewhat add this alternative Dockerfile to the source, for quickest reuse).

Thanks!

This is working on my setup with the following changes:
Dockerfile:

FROM python:alpine3.7

# Copy data for add-on
COPY run.sh ip150.py ip150_mqtt.py requirements.txt options.json /

RUN apk add --no-cache python3 &&\
python3 -m ensurepip &&\
pip3 install -r requirements.txt

#RUN chmod a+x /run.sh**This line is not needed for windows hosts because all files are copied with x permission** 

CMD [ "/run.sh" ]

run.sh

#!/bin/sh
# Shebang needs to be here, else it returns: standard_init_linux.go:207: exec user process caused "exec format error"

while true

do

python3 ip150_mqtt.py options.json

# 20 seconds should be enough to ensure the session expired on the server

sleep 20

done 

Thank you for your work!

Finally I got my sp5500 working. Anyway to setup a panic button?