@rfranzoi/scrypted-mqtt-securitysystem 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -37
- package/dist/plugin.zip +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,47 +1,107 @@
|
|
|
1
1
|
# Paradox MQTT SecuritySystem (Scrypted)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Expose and control a **Paradox** alarm via **MQTT (PAI/PAI-MQTT style)** as a Scrypted **SecuritySystem**.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
- Bidirectional sync: target & current state
|
|
9
|
+
- Custom MQTT topics (publish/subscribe)
|
|
10
|
+
- Tamper & online status support
|
|
11
|
+
- QoS / Retain options for outgoing messages
|
|
12
|
+
- Fully customizable outgoing payloads
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
- **Scrypted** (server up and running)
|
|
18
|
+
- An MQTT broker (e.g., Mosquitto)
|
|
19
|
+
- A Paradox ↔︎ MQTT bridge (e.g., **PAI**)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm i
|
|
27
|
+
npm run build # → generates dist/plugin.zip
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- In Scrypted: **Manage Plugins → Install from file** and upload `dist/plugin.zip`
|
|
31
|
+
_Or_:
|
|
32
|
+
```bash
|
|
33
|
+
npm run deploy # requires: npx scrypted-cli login (one time)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Configuration (Scrypted → your device → Settings)
|
|
10
39
|
|
|
11
|
-
## Configurazione (Settings)
|
|
12
40
|
### MQTT
|
|
13
|
-
- **Broker URL
|
|
14
|
-
- Username/Password (
|
|
15
|
-
- Client ID
|
|
41
|
+
- **Broker URL**: e.g. `mqtt://0.0.0.0:1883`
|
|
42
|
+
- **Username / Password** (if required)
|
|
43
|
+
- **Client ID**, **TLS**, **Reject Unauthorized**
|
|
16
44
|
|
|
17
45
|
### Topics
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
46
|
+
| Purpose | Direction | Example Topic |
|
|
47
|
+
|----------------------------------|-----------|-----------------------------------------------------------|
|
|
48
|
+
| Set Target State | publish | `SYSTEM/control/partitions/Area_1` |
|
|
49
|
+
| Get Target State | subscribe | `SYSTEM/states/partitions/Area_1/target_state` |
|
|
50
|
+
| Get Current State | subscribe | `SYSTEM/states/partitions/Area_1/current_state` |
|
|
51
|
+
| Get Status Tampered | subscribe | `SYSTEM/states/system/troubles/zone_tamper_trouble` |
|
|
52
|
+
| Get Online | subscribe | `SYSTEM/interface/availability` |
|
|
23
53
|
|
|
24
54
|
### Publish Options
|
|
25
|
-
- QoS /
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
- **QoS** (0/1/2)
|
|
56
|
+
- **Retain** (true/false)
|
|
57
|
+
|
|
58
|
+
### Outgoing Payloads (customizable)
|
|
59
|
+
- **Disarm**: `disarm`
|
|
60
|
+
- **Home**: `arm_home`
|
|
61
|
+
- **Away**: `arm_away`
|
|
62
|
+
- **Night**: `arm_night`
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Payload Notes
|
|
67
|
+
|
|
68
|
+
**Incoming (subscribe):** the plugin also recognizes common synonyms, e.g.
|
|
69
|
+
- `disarmed`, `off`, `idle`, `ready` → **Disarmed**
|
|
70
|
+
- `armed_home`, `home`, `stay` → **Home**
|
|
71
|
+
- `armed_away`, `away`, `arming`, `exit_delay` → **Away**
|
|
72
|
+
- `armed_night`, `night` → **Night**
|
|
73
|
+
- `alarm`, `triggered` → sets `triggered: true`
|
|
74
|
+
- Transitional states (e.g., `entry_delay`, `pending`) are ignored for mode changes.
|
|
75
|
+
|
|
76
|
+
**Outgoing (publish):** change payload strings in Settings to match your PAI mapping.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Recommended PAI Mapping (example)
|
|
81
|
+
|
|
82
|
+
**Publish (Set):**
|
|
83
|
+
```
|
|
84
|
+
SYSTEM/control/partitions/Area_1
|
|
85
|
+
Disarm -> disarm
|
|
86
|
+
Home -> arm_home
|
|
87
|
+
Away -> arm_away
|
|
88
|
+
Night -> arm_night
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Subscribe (Get):**
|
|
92
|
+
```
|
|
93
|
+
Target -> SYSTEM/states/partitions/Area_1/target_state
|
|
94
|
+
Current -> SYSTEM/states/partitions/Area_1/current_state
|
|
95
|
+
Tamper -> SYSTEM/states/system/troubles/zone_tamper_trouble (true/false)
|
|
96
|
+
Online -> SYSTEM/interface/availability (online/offline)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Tips
|
|
102
|
+
|
|
103
|
+
- If you use Scrypted’s **HomeKit** plugin to expose this device:
|
|
104
|
+
- Enable the **Security System** extension/mapping inside the HomeKit plugin.
|
|
105
|
+
- Ensure your Scrypted container runs with **host networking** so mDNS/Bonjour works (for pairing).
|
|
47
106
|
|
|
107
|
+
---
|
package/dist/plugin.zip
CHANGED
|
Binary file
|
package/package.json
CHANGED