ParadoxIP150
Python-based IP150 interrogator that publishes data and subscribes to control commands to and from an MQTT broker, without using a headless browser.
Install / Use
/learn @Tertiush/ParadoxIP150README
Paradox IP150-MQTT
Python-based IP150 interrogator that publishes data and subscribes to control commands to and from an MQTT broker, without using a headless browser.
<b>NB: This is still a very early release and has its bugs</b>
<b>Another version of this script (using the software port & also has access to alarm outputs (PGMs)) is available in my ParadoxIP150v2 repository. Tested only with MG5050 V4, for other variants I hope the community will assist with PRs.</b>
Steps to use it:
- Tested with Python 2.7.10
- Download the files in this repository and place it in some directory
- Edit the config.ini file to match your setup
- Run the script: Python IP150-MQTT.py
What to expect:
If successfully connected to your IP150 and MQTT broker, the app will start off by publishing all current zone and partition statuses. The following topics are available (and their names are configurable in the config.ini file):
- Zone Statuses:
- Topic: <b>Paradox/ZS/Z1</b>
- (ZS = Zone Statuses; Z = Zone; followed by the number that has changed)
- Payload (example): <b>S:OPEN,P:1,N:"Front PIR"</b>
- (S = Status: OPEN / CLOSE (configurable in the config.ini file); P = Partition number, followed by the zone name)
- Alarm Statuses:
- Topic: <b>Paradox/AS/P1</b>
- (AS = Alarm Status (Arm, Disarm, etc.); P = Partition, followed by the partition number)
- Payload (example): <b>Disarmed</b>
- (Possible states = Disarm, Arm, Sleep, Stay, Unsure)
- Siren status:
- Topic: <b>Paradox/SS</b>
- (SS = Siren Status)
- Payload: <b>?</b>
- This is still being tested as its a bit problematic with having neighbours. If this message is published there's been some activity with your siren. Deliberately set off the siren to determine what the payload is under different situations.
- Controlling the alarm
- Publish the following topic to control the alarm:
- <b>Paradox/C/P1/Disarm</b>
- (C = Control; P = Partition, followed by number; Then the action = Disarm / Arm / Sleep / Stay)
- The payload is not evaluated
- Publish the following topic to control the alarm:
- Controlling this application
- Publish the following topics to enable/disable polling of the IP module:
- <b>Paradox/C/Polling/Enable</b>
- <b>Paradox/C/Polling/Disable</b>
- The payload is not evaluated.
- Publish the following topics to enable/disable polling of the IP module:
<b>Note: If you modified the subscription topic for controls in the config.ini file ensure it ends with a '/'.</b>
Running as a service / daemon
On Mac
( thanks @Rtaxerxes )
If you want to run this as a daemon on Mac,
- Create a file called local.paradox.plist.
- Copy and paste the below into the file, editing for the location of your files.
- Copy the file to /Library/LaunchDaemons/.
- Run it with: sudo launchctl load /Library/LaunchDaemons/local.paradox.plist
- Stop it with: sudo launchctl unload /Library/LaunchDaemons/local.paradox.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.paradox</string>
<key>WorkingDirectory</key>
<string>/(folder where files are)</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python</string>
<string>/(folder where files are)/IP150-MQTT.py</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
