{"id":13586152,"url":"https://github.com/ParadoxAlarmInterface/pai","last_synced_at":"2025-04-07T14:33:44.886Z","repository":{"id":38361348,"uuid":"128366853","full_name":"ParadoxAlarmInterface/pai","owner":"ParadoxAlarmInterface","description":"Paradox Magellan, Spectra and EVO, with MQTT, Signal, Pushbullet, Pushover and others","archived":false,"fork":false,"pushed_at":"2025-03-03T11:58:37.000Z","size":1861,"stargazers_count":373,"open_issues_count":70,"forks_count":95,"subscribers_count":42,"default_branch":"dev","last_synced_at":"2025-03-04T07:40:30.758Z","etag":null,"topics":["alarm","evo","home-security","homeassistant","homebridge","homekit","ip150","magellan","mqtt","openhab","paradox","paradox-alarm","pushbullet","pushover","python","security","signal","spectra","surveillance"],"latest_commit_sha":null,"homepage":"https://gitter.im/paradox-alarm-interface","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ParadoxAlarmInterface.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"issuehunt":"ParadoxAlarmInterface","custom":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=LEEAKPRMN3W5E\u0026currency_code=EUR\u0026source=url"]}},"created_at":"2018-04-06T08:02:45.000Z","updated_at":"2025-03-03T11:58:40.000Z","dependencies_parsed_at":"2023-11-07T18:03:36.958Z","dependency_job_id":"d9d63ef4-bcc6-4517-ae12-5ad230e9ff93","html_url":"https://github.com/ParadoxAlarmInterface/pai","commit_stats":{"total_commits":1115,"total_committers":23,"mean_commits":48.47826086956522,"dds":"0.41255605381165916","last_synced_commit":"dedc352b9babcac198821003bcbc6c79a99f57e0"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParadoxAlarmInterface%2Fpai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParadoxAlarmInterface%2Fpai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParadoxAlarmInterface%2Fpai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParadoxAlarmInterface%2Fpai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ParadoxAlarmInterface","download_url":"https://codeload.github.com/ParadoxAlarmInterface/pai/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247550676,"owners_count":20956986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alarm","evo","home-security","homeassistant","homebridge","homekit","ip150","magellan","mqtt","openhab","paradox","paradox-alarm","pushbullet","pushover","python","security","signal","spectra","surveillance"],"created_at":"2024-08-01T15:05:21.465Z","updated_at":"2025-04-07T14:33:44.879Z","avatar_url":"https://github.com/ParadoxAlarmInterface.png","language":"Python","funding_links":["https://issuehunt.io/r/ParadoxAlarmInterface","https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=LEEAKPRMN3W5E\u0026currency_code=EUR\u0026source=url"],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cdiv style=\"display: flex;\"\u003e\n        \u003ca href=\"https://discord.gg/6KaXFtg39r\"\u003e\n            \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/1310653159596888064\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/ParadoxAlarmInterface/pai/actions/workflows/master.yml\"\u003e\n            \u003cimg alt=\"CI/CD master\" src=\"https://github.com/ParadoxAlarmInterface/pai/actions/workflows/master.yml/badge.svg?branch=master\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/ParadoxAlarmInterface/pai/actions/workflows/dev.yml\"\u003e\n            \u003cimg alt=\"CI/CD dev\" src=\"https://github.com/ParadoxAlarmInterface/pai/actions/workflows/dev.yml/badge.svg?branch=dev\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://hub.docker.com/r/paradoxalarminterface/pai\"\u003e\n            \u003cimg alt=\"Docker Arch\" src=\"https://img.shields.io/badge/docker_arch-386%7Camd64%7Carmv6%7Carmv7%7Carm64-green?logo=docker\"\u003e\n            \u003cimg alt=\"Docker Pulls\" src=\"https://img.shields.io/docker/pulls/paradoxalarminterface/pai?logo=docker\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://snyk.io/test/github/ParadoxAlarmInterface/pai?targetFile=requirements.txt\"\u003e\n            \u003cimg src=\"https://snyk.io/test/github/ParadoxAlarmInterface/pai/badge.svg?targetFile=requirements.txt\" alt=\"Known Vulnerabilities\" data-canonical-src=\"https://snyk.io/test/github/ParadoxAlarmInterface/pai?targetFile=requirements.txt\" style=\"max-width:100%;\"\u003e\n        \u003c/a\u003e\n        \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/ParadoxAlarmInterface/pai\"\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/ParadoxAlarmInterface/pai/raw/master/docs/pai_logo.png\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003ePAI - Paradox Alarm Interface\u003c/h1\u003e\n\nMiddleware that aims to connect to a Paradox Alarm panel, exposing the interface for monitoring and control via several technologies.\nWith this interface it is possible to integrate Paradox panels with HomeAssistant, OpenHAB, Homebridge or other domotics system that supports MQTT, as well as several IM methods.\n\nIt supports MG/SP/EVO panels (firmwares below 7.50.000) connected through a serial port, which is present in all panels (TTL 5V), or through a USB 307 module. It also supports connections using the IP150 module, both directly (ip module firmware version \u003c 4.0 or \u003e= 4.40.004), and through the SITE ID (firmware versions \u003e4.0).\n\nSupport for Magellan, Spectra and EVO panels is very stable. If you find a bug, please report it.\n\n\nFor further information and detailed usage refer to the [Wiki](https://github.com/ParadoxAlarmInterface/pai/wiki).\n\nIf you are having issues, or wish to discuss new features, join us at our [Discord community](https://discord.gg/6KaXFtg39r)\n\nOn Android, if you install [MQTT Dash](https://play.google.com/store/apps/details?id=net.routix.mqttdash), and [follow the instructions](https://github.com/ParadoxAlarmInterface/pai/wiki#mqtt-dash) you will automatically get a panel like this:\n![mqtt_dash](https://user-images.githubusercontent.com/497717/52603920-d4984d80-2e60-11e9-9772-578b10576b3c.jpg)\n\n## Things you need to have to be able to connect\nWe support two [connection options](https://github.com/ParadoxAlarmInterface/pai/wiki/Connection-methods): via [Serial](https://github.com/ParadoxAlarmInterface/pai/wiki/Connection-methods#serial-connection) and via [IP150 Module](https://github.com/ParadoxAlarmInterface/pai/wiki/Connection-methods#ip-module-connection-IP100-IP150).\n\n#### For all connection methods\n- **PC Password:** 4 digit `[0-9a-f]` password.\nCan be looked up in Babyware (_Right click on a panel ⇾ Properties ⇾ PC Communication (BabyWare) ⇾ PC Communication (BabyWare) ⇾ PC Password_)\n#### In case of IP150 you need additionally:\n- **IP Module password**: Default is `paradox`\n##### For IP150 firmware \u003e 4.0 if you connect via Paradox Cloud (SWAN)\n- **SITE ID**\n- **Email registered in the site**\n\nWe do not recommend using SWAN because of https://github.com/CriticalSecurity/paradox\n\n## Firmware Upgrade WARNING:\n**Do not upgrade EVO firmware versions to 7.50.000+ if you use Serial connection. Process is irreversible! Paradox introduces serial communication encryption which most probably will break our PAI ability to talk to the panel.**\nNote: Paradox sells unlock code to re-enable the unencrypted serial port.\n\n## How to use\nSee [wiki](https://github.com/ParadoxAlarmInterface/pai/wiki/Installation)\n\n## Tested Environment\n\nTested in the following environment:\n* Python 3.6, 3.7, 3.8, 3.9, 3.10, 3.11\n* Mosquitto MQTT Broker \u003e 1.4.8\n* OrangePi 2G-IOT, NanoPi NEO, and Raspberry Pi 3 through their built in Serial Port (with a level shifter!), or a USB RS232 TTL adapter (CP2102, PL2303, CH340, etc..)\n* Ubuntu Server 16.04.3 LTS\n* Paradox MG5050, SP7000 and EVO panels\n* [Signal Cli](https://github.com/AsamK/signal-cli) through a DBUS interface\n* Pushbullet.py\n* SIM900 module through a serial port\n* Serial over TCP (ESP32 or Arduino connected to the panel's serial port acts as a proxy)\n\n## Authors\n\n* João Paulo Barraca - [@jpbarraca](https://github.com/jpbarraca) - Main code and MG/SP devices\n* Jevgeni Kiski - [@yozik04](https://github.com/yozik04) - Main code and EVO devices\n* Ion Darie - [@iondarie](https://github.com/iondarie) - PAI Logo, Homebridge integration, testing\n\n\n## Acknowledgments\n\nThis work is inspired or uses parts from the following projects:\n\n* Tertiush at https://github.com/Tertiush/ParadoxIP150v2\n* Spinza at https://github.com/spinza/paradox_mqtt\n\n## Thanks\n* Ivan Markov - [@ivmarkov](https://github.com/ivmarkov) - Multi-platform Docker builds\n* Claudiu Bucur - [@clau-bucur](https://github.com/clau-bucur) - For fixing HomeAssistant plugin after Supervisor(2021.02.5) upgrade [#199](https://github.com/ParadoxAlarmInterface/pai/issues/199)\n* David Tekan - [@tekand](https://github.com/tekand) - For supporting different label encodings.\n\n## Disclaimer\n\nParadox, MG5050 and IP150 are registered marks of PARADOX. Other brands are owned by their respective owners.\n\nThe code was developed as a way of integrating personally owned Paradox systems, and it cannot be used for other purposes.\nIt is not affiliated with any company and it doesn't have have commercial intent.\n\nThe code is provided AS IS and the developers will not be held responsible for failures in the alarm systems, or any other malfunction.\n\n## Donations\n\nWe have fully stopped accepting donations due to lack of free time to spend on this project.\n\n[//]: # (## With support from)\n\n[//]: # ()\n[//]: # (\u003ca href=\"https://www.jetbrains.com/?from=PAI-ParadoxAlarmInterface\"\u003e\u003cimg src=\"/docs/jetbrains.svg\" alt=\"JetBrains\"/\u003e\u003c/a\u003e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FParadoxAlarmInterface%2Fpai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FParadoxAlarmInterface%2Fpai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FParadoxAlarmInterface%2Fpai/lists"}