Giter Site home page Giter Site logo

maisken / paradox_ip150 Goto Github PK

View Code? Open in Web Editor NEW
39.0 13.0 10.0 68 KB

Hassio add-on, Python and MQTT bindings for controlling a Paradox alarm via the IP150 web interface

License: GNU General Public License v3.0

Python 97.20% Shell 1.06% Dockerfile 1.75%

paradox_ip150's Introduction

Paradox_IP150

Hassio add-on, Python and MQTT bindings for controlling a Paradox alarm via the IP150 web interface V3.

Dependencies

For best results, requires a Paradox IP150S with a firmware below 4.x. 1.x seems to work the best. It is worth considering to have your IP150S use the DNS from your router and then block access to 54.165.77.37 and upgrade.insightgoldatpmh.com as IP150's have been known to upgrade their firmware automatically.

Paradox_IP150 Docker add-on for HASS.IO

Support for this Plugin can be found at:

https://community.home-assistant.io/t/paradox-alarm-mqtt-hassio-addon/38569

Installation

From the Home Assistant home page, click on the Hass.io menu item, then go the Add-on Store tab.

Add a repository with the following URL:

https://github.com/maisken/hassio-addons

Once you have enabled the repository, the Paradox IP150 MQTT Adapter add-on should become available for installation.

After installing the add-on, make sure to configure it. As a minimum, configure the IP address of your MQTT broker and ip150 module, set panel code and password, and you should be good to go.

There is currently no logging displayed from the hass.io add-on when the add-on is working correctly. Errors for the hass.io add-on are only displayed when the add-on is configured incorrectly.

Basic configuration should allow you to get going:

Make sure you have an MQTT broker running, for instance by using Hass.io integrations. Also, the IP150 module only works with a self-signed certificate, which offers little protection over plaintext. Hence, the recommended setup is to:

  • Disable remote access to the IP150 module on your router
  • Configure the IP150 module to work via HTTP (port 80)
  • You can still arm, disarm and see if the alarm triggered via the Home Assistant interface, which can be securely accessed remotely

Then:

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

{
"IP150_ADDRESS": "http://[IP-OF-IP150]",
"PANEL_CODE": "[mastercode]",
"PANEL_PASSWORD": "[webpassword]",
"REFRESH_RATE": 0.5,
"MQTT_ADDRESS": "mqtt://[IP-OF-MQTT-BROKER]",
"MQTT_USERNAME": "MQTT_user",
"MQTT_PASSWORD": "MQTT_pwd",
"LOG_LEVEL": "WARNING",
"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 - Configuring the alarm control panel

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"

Lovelace card for the alarm control panel

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

configuration.yaml - Configuring PIR sensors (optional)

binary_sensor:
  - platform: mqtt
    state_topic: "paradox/zone/state/2"
    name: "Study"
    qos: 1
    payload_on: "on"
    payload_off: "off"
    availability_topic: "paradox/ctrl/state"
    payload_available: "Connected"
    payload_not_available: "Disconnected"
#Repeat for other Zones/Openings in your setup

paradox_ip150's People

Contributors

alfredopironti avatar ap-ioa avatar cybertza avatar dependabot[bot] avatar scstraus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paradox_ip150's Issues

Shows connected when it's not anymore

I'm using this add-on to connect to a remote alarm system (cottage with a sometimes flaky connection).

Most of the time it works well, but when the connection is lost, it is not always automatically restored. The add-on is still running and still thinks it's connected (as confirmed in MQTT, Control state is Connected) but the statuses are not updated. I have to manually restart the add-on to restore connection.

Would it be possible to add more logic to ensure the connection is alive, and if not, restore it?

Thank you!

Problem with connection IP150

Good morning.
I would like to use the add-on to connect to my Paradox control panel. I have an IP150 module version 4.00.04 hardware 020. the component I was able to install it seems to also connect to the IP150 module, because if I try to access via the WEB interface it tells me that only one connection is allowed at a time, but I can't see no information about the control panel

Best regards, Matteo.
Configurazione
File
Registro
Stato

Issue when start Paradox IP150 MQTT Adapter

Hi All,

I have problem when I try to start the Paradox IP150 MQTT Adapter. In the LOG I received this error. Could you have some people to help me.

Thanks

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 153, in login 'Could not login, wrong credentials provided.') ip150.Paradox_IP150_Error: Could not login, wrong credentials provided.

Second Panel

Hello, can i add a second panel (second ip150 module) ?

PAI.paradox.hardware.panel Unable to parse RAM Status Block (0)

Hi,

Getting a strange error here. Here are my logs:

2022-04-24 14:29:30,129 - INFO - PAI - Starting Paradox Alarm Interface 3.0.1 2022-04-24 14:29:30,130 - INFO - PAI - Config loaded from /data/options.json 2022-04-24 14:29:30,131 - INFO - PAI - Console Log level set to 20 2022-04-24 14:29:30,168 - INFO - PAI.paradox.interfaces - Starting BasicMQTTInterface Interface 2022-04-24 14:29:30,170 - INFO - PAI.paradox.interfaces.mqtt.core - MQTT loop started 2022-04-24 14:29:30,174 - INFO - PAI.paradox.interfaces - Starting HomeAssistantMQTTInterface Interface 2022-04-24 14:29:30,175 - INFO - PAI - Starting... 2022-04-24 14:29:30,176 - INFO - PAI.paradox.paradox - Connecting to interface 2022-04-24 14:29:30,176 - INFO - PAI.paradox.paradox - Using IP Connection 2022-04-24 14:29:30,266 - INFO - PAI.paradox.connections.ip.connection - Connecting. Try 1/3 2022-04-24 14:29:30,269 - INFO - PAI.paradox.connections.connection - Connection established 2022-04-24 14:29:30,270 - INFO - PAI.paradox.connections.ip.commands - Authenticating with IP Module 2022-04-24 14:29:30,274 - INFO - PAI.paradox.connections.ip.commands - Authentication Success. IP(IP150) Module version 20, firmware: 5.2, serial: 71035098 2022-04-24 14:29:30,285 - INFO - PAI.paradox.connections.ip.commands - Session successfully established with IP Module 2022-04-24 14:29:30,286 - INFO - PAI.paradox.paradox - Connecting to Panel 2022-04-24 14:29:30,379 - INFO - PAI.paradox.paradox - Panel Identified MG5050 version 7.21 build 0 2022-04-24 14:29:30,380 - INFO - PAI.paradox.paradox - Initiating panel connection 2022-04-24 14:29:30,478 - INFO - PAI.paradox.hardware.spectra_magellan.panel - Installer login 2022-04-24 14:29:30,593 - INFO - PAI.paradox.hardware.spectra_magellan.panel - Authentication Success 2022-04-24 14:29:30,594 - INFO - PAI.paradox.paradox - Connection OK 2022-04-24 14:29:30,595 - INFO - PAI.paradox.paradox - Loading data from panel memory 2022-04-24 14:29:30,595 - INFO - PAI.paradox.hardware.panel - Loading definitions 2022-04-24 14:29:30,595 - INFO - PAI.paradox.hardware.panel - Updating Definitions from Panel 2022-04-24 14:29:30,972 - INFO - PAI.paradox.hardware.panel - Zone definitions loaded (0.38s) 2022-04-24 14:29:31,176 - INFO - PAI.paradox.interfaces.mqtt.core - MQTT Broker Connected 2022-04-24 14:29:31,335 - INFO - PAI.paradox.hardware.panel - Pgm definitions loaded (0.36s) 2022-04-24 14:29:31,338 - INFO - PAI.paradox.hardware.panel - Loading labels 2022-04-24 14:29:31,338 - INFO - PAI.paradox.hardware.panel - Updating Labels from Panel 2022-04-24 14:29:31,700 - INFO - PAI.paradox.hardware.panel - Zone labels loaded (0.36s): Entrance Door, Mainbed Pir, Passage Pir, Lounge Pir, Playrooom Pir, Study Pir and Dr, Lounge Door, Kitchen Door 2022-04-24 14:29:31,884 - INFO - PAI.paradox.hardware.panel - Pgm labels loaded (0.18s): Panic Radio, Burglary Radio, Status LED, Open/Close Radio 2022-04-24 14:29:31,976 - INFO - PAI.paradox.hardware.panel - Partition labels loaded (0.09s): Area 1, Area 2 2022-04-24 14:29:32,431 - INFO - PAI.paradox.hardware.panel - User labels loaded (0.45s): System Master (B, Farhana, Home Assistant, User 04, User 05, User 06, User 07, User 08, User 09, User 10 2022-04-24 14:29:32,432 - INFO - PAI.paradox.hardware.panel - Module labels loaded (0.0s): 2022-04-24 14:29:32,432 - INFO - PAI.paradox.hardware.panel - Repeater labels loaded (0.0s): 2022-04-24 14:29:32,433 - INFO - PAI.paradox.hardware.panel - Keypad labels loaded (0.0s): 2022-04-24 14:29:32,529 - INFO - PAI.paradox.hardware.panel - Site labels loaded (0.1s): Your Alarm Site 2022-04-24 14:29:32,741 - INFO - PAI.paradox.hardware.panel - Siren labels loaded (0.21s): Wireless Siren 1, Wireless Siren 2, Wireless Siren 3 2022-04-24 14:29:32,742 - INFO - PAI.paradox.paradox - Running 2022-04-24 14:29:32,831 - ERROR - PAI.paradox.hardware.panel - Unable to parse RAM Status Block (0) Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/paradox/hardware/panel.py", line 338, in handle_status res = parser.parse(mvars.data) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 308, in parse return self.parse_stream(io.BytesIO(data), **contextkw) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 320, in parse_stream return self._parsereport(stream, context, "(parsing)") File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse subobj = sc._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse return self.subcon._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse subobj = sc._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse return self.subcon._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse subobj = sc._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse return self.subcon._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 719, in _parse return self._decode(obj, context, path) File "/usr/local/lib/python3.9/site-packages/paradox/hardware/spectra_magellan/adapters.py", line 10, in _decode return datetime.datetime(obj[0] * 100 + obj[1], obj[2], obj[3], obj[4], obj[5]) ValueError: month must be in 1..12 2022-04-24 14:29:33,379 - ERROR - PAI.paradox.paradox - Loop Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/paradox/paradox.py", line 278, in loop merged = deep_merge(*result, extend_lists=True, initializer={}) File "/usr/local/lib/python3.9/site-packages/paradox/lib/utils.py", line 80, in deep_merge return functools.reduce(merge_into, dicts, initializer) File "/usr/local/lib/python3.9/site-packages/paradox/lib/utils.py", line 69, in merge_into for key in d2: TypeError: 'NoneType' object is not iterable 2022-04-24 14:29:33,471 - ERROR - PAI.paradox.hardware.panel - Unable to parse RAM Status Block (0) Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/paradox/hardware/panel.py", line 338, in handle_status res = parser.parse(mvars.data) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 308, in parse return self.parse_stream(io.BytesIO(data), **contextkw) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 320, in parse_stream return self._parsereport(stream, context, "(parsing)") File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse subobj = sc._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse return self.subcon._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse subobj = sc._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse return self.subcon._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse subobj = sc._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse return self.subcon._parsereport(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport obj = self._parse(stream, context, path) File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 719, in _parse return self._decode(obj, context, path) File "/usr/local/lib/python3.9/site-packages/paradox/hardware/spectra_magellan/adapters.py", line 10, in _decode return datetime.datetime(obj[0] * 100 + obj[1], obj[2], obj[3], obj[4], obj[5]) ValueError: month must be in 1..12 2022-04-24 14:29:34,017 - ERROR - PAI.paradox.paradox - Loop Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/paradox/paradox.py", line 278, in loop merged = deep_merge(*result, extend_lists=True, initializer={}) File "/usr/local/lib/python3.9/site-packages/paradox/lib/utils.py", line 80, in deep_merge return functools.reduce(merge_into, dicts, initializer) File "/usr/local/lib/python3.9/site-packages/paradox/lib/utils.py", line 69, in merge_into for key in d2: TypeError: 'NoneType' object is not iterable

Here is my config:

`LOGGING_LEVEL_CONSOLE: 20
LOGGING_LEVEL_FILE: 40
CONNECTION_TYPE: IP
SERIAL_PORT: /dev/ttyUSB0
SERIAL_BAUD: 9600
IP_CONNECTION_HOST: 192.168.******
IP_CONNECTION_PORT: 10000
IP_CONNECTION_PASSWORD: ******
KEEP_ALIVE_INTERVAL: 10
LIMITS:
zone: auto
user: 1-10
door: ''
pgm: 1-5
partition: auto
module: ''
repeater: ''
keypad: ''
key-switch: ''
SYNC_TIME: true
SYNC_TIME_MIN_DRIFT: 120
PASSWORD: ''
MQTT_ENABLE: true
MQTT_HOST: 192.168.

MQTT_PORT: 1883
MQTT_KEEPALIVE: 60
MQTT_USERNAME: ********
MQTT_PASSWORD: *********
MQTT_HOMEASSISTANT_AUTODISCOVERY_ENABLE: true
COMMAND_ALIAS:
arm: partition all arm
disarm: partition all disarm
MQTT_COMMAND_ALIAS:
armed_home: arm_stay
armed_night: arm_sleep
armed_away: arm
disarmed: disarm
HOMEASSISTANT_NOTIFICATIONS_EVENT_FILTERS:

  • live,alarm,-restore
  • live,trouble,-clock
  • live,tamper
    HOMEASSISTANT_PUBLISH_PARTITION_PROPERTIES:
  • target_state
  • current_state
    HOMEASSISTANT_PUBLISH_ZONE_PROPERTIES:
  • open
  • tamper
    PUSHBULLET_CONTACTS: []
    PUSHBULLET_EVENT_FILTERS:
  • live,alarm,-restore
  • live,trouble,-clock
  • live,tamper
    PUSHOVER_EVENT_FILTERS:
  • live,alarm,-restore
  • live,trouble,-clock
  • live,tamper
    PUSHOVER_BROADCAST_KEYS: []
    SIGNAL_CONTACTS: []
    SIGNAL_EVENT_FILTERS:
  • live,alarm,-restore
  • live,trouble,-clock
  • live,tamper
    GSM_CONTACTS: []
    GSM_EVENT_FILTERS:
  • live,alarm,-restore
  • live,trouble,-clock
  • live,tamper
    IP_INTERFACE_ENABLE: false
    IP_INTERFACE_PASSWORD: *******
    DUMMY_EVENT_FILTERS: []
    `

Any assistance would be appreciated.

Add Backup Battery MQTT sensor

Hi!
Would it be possible to integrate the "battery backup" voltage sensor in the next updates?
Mqtt topic should be this:
paradox/states/system/power/battery

Thanks

Latest IP150+ has no web UI

I recently bought the latest paradox 150+ running v5.x firmware and I discovered it no longer exposes port 80 and has no web ui(only can connect via the insight gold app). This meant't i could not connect via Home assistant as the addon tries to connect via port 80. Any updates coming soon to fix this?

MQTT refused - MQTT installed manually.

starting version 3.2.4
Traceback (most recent call last):
File "ip150_mqtt.py", line 110, in
ip_mqtt.loop_forever()
File "ip150_mqtt.py", line 101, in loop_forever
mqc.connect(mqtt_hostname, mqtt_port)
File "/usr/lib/python3.6/site-packages/paho/mqtt/client.py", line 768, in connect
return self.reconnect()
File "/usr/lib/python3.6/site-packages/paho/mqtt/client.py", line 895, in reconnect
sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
File "/usr/lib/python3.6/socket.py", line 724, in create_connection
raise err
File "/usr/lib/python3.6/socket.py", line 713, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

malfunction after massive re-config

Hello,

I was really happy with the add-on for now 2 years. I have a lot of automation based on movment detection.
Unfortunately I had to change my Internet router / docker / IP ranges.
I re-used my HA backup, reinstalled it and changed the IPs
Surprizely my mqtt user disappered. I recreated him with the same name/psw. At the end, it doens't work
please find bellow the logs

When I try to connect on my IP150, he says that someone is already conected. So it seems to work. But the data aren't available in HA.

Thanks a lot for your help
Ludovic

I'm working with
HA core 2022.2.3 (latest)
Paradox IP50 MQTT adapter 1.1
Mosquitto broquer 6.0.1

Mosquitto broker
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] mosquitto.sh: executing...
[09:52:46] INFO: Setting up user mqtt
[09:52:47] INFO: Certificates found: SSL is available
[cont-init.d] mosquitto.sh: exited 0.
[cont-init.d] nginx.sh: executing...
[cont-init.d] nginx.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[09:52:48] INFO: Starting NGINX for authentication handling...
[09:52:49] INFO: Starting mosquitto MQTT broker...
1644310369: mosquitto version 1.6.12 starting
1644310369: |-- *** auth-plug: startup
[09:52:52] INFO: Successfully send discovery information to Home Assistant.
[09:52:52] INFO: Successfully send service information to the Supervisor.
1644310369: Config loaded from /etc/mosquitto/mosquitto.conf.
1644310369: Loading plugin: /usr/share/mosquitto/auth-plug.so
1644310369: ├── Username/password checking enabled.
1644310369: ├── TLS-PSK checking enabled.
1644310369: └── Extended authentication not enabled.
1644310369: Opening ipv4 listen socket on port 1883.
1644310369: Opening ipv6 listen socket on port 1883.
1644310369: Opening websockets listen socket on port 1884.
1644310369: Opening ipv4 listen socket on port 8883.
1644310369: Opening ipv6 listen socket on port 8883.
1644310369: Opening websockets listen socket on port 8884.
1644310370: Warning: Mosquitto should not be run as root/administrator.
1644310370: mosquitto version 1.6.12 running
1644310370: New connection from 127.0.0.1 on port 1883.
1644310370: Socket error on client , disconnecting.
1644310377: New connection from 172.30.32.1 on port 1883.

Paradox IP150 MQTT Adapter
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Traceback (most recent call last):
File "ip150_mqtt.py", line 140, in
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 142, in login
raise Paradox_IP150_Error(
ip150.Paradox_IP150_Error: Wrong page fetcehd. Did you connect to the right server and port? Server returned:

<script type='text/javascript' src='langue.js'></script><script type='text/javascript' src='commun.js'></script>
<title>Your Paradox System</title><script type='text/javascript'>;var sre = "
" + top.ln_cant[1] + "
";document.getElementById('ERROR').innerHTML = sre; document.getElementById('MESSAGE').innerHTML = top.cant('LUDO');</script> ![2022-02-08 09_55_35-Window](https://user-images.githubusercontent.com/77239440/152952645-51b3fe15-ef82-4ec4-9842-5ebefbddee74.png) ![2022-02-08 09_56_47-Window](https://user-images.githubusercontent.com/77239440/152952649-c367258a-95d7-487e-b5f7-30d66ba1f25a.png) ![2022-02-08 09_57_26-Window](https://user-images.githubusercontent.com/77239440/152952653-d1cd87ad-e232-4e4c-bb1b-59a7cf1b510f.png)

Latest version of hass.io requires arch: option and install in addons/local directory

Hi, I tried to install under hass.io supervisor 152, hass 90.2 and was not successful according to instructions provided:

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

It simply didn't acknowledge the addon being there.

I had to change to

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

Then I got the following message in the supervisor log

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 as an addon after another refresh..

{
  "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",

Would be good to update the instructions and config.json. I guess I will open a pull request against config.json.

MQTT is getting unresponsive when Alarm is triggered

Hi,

I love this project but there is a major issue with it. When there is triggered Alarm state, there is no information about it via MQTT. paradox/alarm/state reports about 'pending' but never 'triggered'.
My system is Spectra 65 (SP65)

The major issue is when the system is released from the Alarm state, the MQTT stop working for 24 hours. I notice that when I clear all MEMOs from the keyboard of the panel the MQTT start working again. I think there is an inconsistency with the communication after Alarm state.

Please advise how I can fix that.

Add the option to inlcude CA certs file when connecting to MQTT Broker

While trying to make the addon communicate with the MQTT broker via SSL I found out that I actually need to provide the full chain of CA certs to the python mqtt client.
Maybe this is a specific case for the Letsencrypt certs that I'm using, not sure how to verify that.
Anyway, this can be done by:

  • mapping /ssl in config.json
  • adding the option+schema for the file name (config.json and options.json)
  • adding a call to tls_set(cacerts) right before the call to connect in ip150_mqtt.py

I can open a PR and share my changes if that would be OK.

IP150+ support

Hi all,

im going to purchase a paradox alarm system, and I was wondering if this package has been tested with the IP150+ model?

thanks
Bruno

Installation Instruction Issues

Awesome work @maisken!
I noticed two minor issue with the instructions:

  1. configuration.yaml - Configuring PIR sensors (optional): "binary-sensor:" should be "binary_sensor:"
  2. If you copy and paste the .yaml file settings, the quotation symbols cause me a lot of issues. When I replaced them with " from my PC keyboard, everything worked fine.

Hopefully this with save other a bit of time troubleshooting :)

More events

Hi,

I am a security installer technician, and I feel this integration give only a small part of the total information that can given the alarm panel, there are important events that it is not received right now as tampers, low battery and another faults. Also arm by partitions and not only whole system.. Also add users, now I can't use only one user code from HA.

Would be possible?

Thanks for your work! It is very nice to use my alarm on my home assistant! I created an auto arm/disarm system based on geopositioning that it is only a dream with comercial products on the market.

Error running on Synology DSM6

Hi I trying to run this on a synology NAS. I was on python 2.7 now updated to python 3.5.1 (located in /volume1/@appstore/py3k) and reinstalled the missing modules for successful import. My mitt broker is validated by other devices. Thanks for any pointers.

$ python ip150_mqtt.py /volume1/docker/homebridge/Paradox_IP150-master/options.json

Exception in thread Thread-2:
Traceback (most recent call last):
File "/volume1/@appstore/py3k/usr/local/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/volume1/@appstore/py3k/usr/local/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/volume1/docker/homebridge/Paradox_IP150-master/ip150.py", line 193, in _get_updates
cur_state = self.get_info()
File "/volume1/docker/homebridge/Paradox_IP150-master/ip150.py", line 87, in wrapped
return f(self, *args, **kwargs)
File "/volume1/docker/homebridge/Paradox_IP150-master/ip150.py", line 185, in get_info
res[table] = [(i, self._tables_map[table]['map'][x]) for i,x in enumerate(tmp, start=1)]
File "/volume1/docker/homebridge/Paradox_IP150-master/ip150.py", line 185, in
res[table] = [(i, self._tables_map[table]['map'][x]) for i,x in enumerate(tmp, start=1)]
KeyError: 8

^C <= MY CONTROL BREAKPOINT
Traceback (most recent call last):
File "ip150_mqtt.py", line 110, in
ip_mqtt.loop_forever()
File "ip150_mqtt.py", line 103, in loop_forever
mqc.loop_forever()
File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/paho/mqtt/client.py", line 1481, in loop_forever
rc = self.loop(timeout, max_packets)
File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/paho/mqtt/client.py", line 988, in loop
socklist = select.select(rlist, wlist, [], timeout)
KeyboardInterrupt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.