Repository navigation
Text interfaces
These optional interfaces send filtered events and accept commands from configured contacts.
| Interface | Requirements | Enable |
|---|---|---|
| Signal | Separate signal-cli service on the system D-Bus; PyGObject and pydbus | SIGNAL_ENABLE |
| GSM / SMS | Compatible AT-command modem, serial access, SIM/service | GSM_ENABLE |
Install the Python Signal extra plus the OS libraries required by PyGObject. The Python module gi comes from PyGObject; do not install an unrelated package named gi.
PAI 3.8.1 expects signal-cli's org.asamk.Signal system D-Bus interface. Follow the signal-cli instructions for registration and service setup; compatibility depends on that external API.
SIGNAL_ENABLE: true
SIGNAL_CONTACTS:
- '+1234567890'
SIGNAL_MIN_EVENT_LEVEL: INFOOnly listed senders can issue commands; keep the contact list narrow. The stock PAI Docker image lacks the Signal dependencies/system-bus setup; use a manual deployment.
The wiki's legacy signal.service template contains placeholders and version-dependent signal-cli flags. Do not install it unchanged or assume PAI needs to run as root.
GSM_ENABLE: true
GSM_MODEM_PORT: /dev/ttyUSB1
GSM_MODEM_BAUDRATE: 115200
GSM_CONTACTS:
- '+1234567890'
GSM_MIN_EVENT_LEVEL: CRITICALThe modem is separate from the panel connection. Grant the service/container access to both serial devices if needed. Confirm sender numbers match the modem's reported format.
3.8.x fixes outbound SMS, modem command serialization, echo handling, and recovery after disconnects. SMS is not encrypted; do not rely on it as the sole alarm-reporting channel.
Use sanitized element keys (no spaces) or all:
partition Outside arm
partition Outside disarm
zone Front_Door bypass
zone Front_Door clear_bypass
output Gate on
Commands must be supported by the panel/connection. The default arm / disarm aliases operate on all partitions. Do not use a broad alias unintentionally.
For selecting notification events and minimum levels, see Event filtering.