This program implements an interface for negotiation with PIMA Hunter Pro alarms.
It was built based on PIMA™'s General Specification for Home Automation &
Building Management protocol Ver. 1.15.
PIMA™ is a trademark of PIMA Electronic Systems Ltd, http://www.pima-alarms.com.
This program was built with no affiliation of PIMA Electronic Systems Ltd.
- PIMA Hunter Pro alarm™, with 32, 96 or 144 zones.
- PIMA Home Automation kit™ (
SA-232,LCL-11Aand Serial-to-USB cable), ornet4proethernet connection. Diagram by PIMA™ ©:
- According to various users, the alarm can be alternatively connected using a
PL2303TAUSB-to-TTL cable, like this one. - Yet another option is to connect directly to Raspberry pi, as specified here:

- According to various users, the alarm can be alternatively connected using a
- Raspberry Pi or similar, connected to the alarm through the Home Automation kit.
- Tested on Raspbian. Other operating systems may use different path structure for the serial ports.
- Alarm technician login code. Unfortunately, it is not possible to connect to the alarm using a user login code.
- Enable extended menus:
- Primary login code
NEXT- Technician login code
5(General parameters)ENTRNEXTtill you get to the rightP(extended menus)- Toggle by
# ENTRENDto exit
- Enable the serial port:
- Primary login code
NEXT- Technician login code
3(Communication)ENTR- 8 x
NEXT(Serial port) ENTR- Toggle the first
L(for serial connection) or firstN(for net4pro) by# ENTRENDto exit
{
"partitions": {
"1": "home1"
},
"open zones": [],
"alarmed zone": [],
"bypassed zones": [],
"failed zones": [],
"failures": []
}- online
- offline
Each of the following commands can receive which partitions to execute the command,
By default partitions: [ "1" ]
Arm
{
"mode": "full_arm"
}Arm Home1
{
"mode": "home1"
}Arm Home2
{
"mode": "home2"
}Disarm
{
"mode": "disarm"
}Each request to the server must include in the URL (query string) the api_key, e.g. /pima/status?api_key=test
Returns status
| Code | Reason | Description |
|---|---|---|
| 200 | OK | Set arm state changed successfully |
| 401 | Unauthorized request | api_key doesn't match to the defined key |
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| mode | str | True | None | Which command to run, supported options - arm, disarm, home1, home2 |
| partitions | array of int | False | [ "1" ] |
Which partition to use, accept array of int |
Returns status
| Code | Reason | Description |
|---|---|---|
| 200 | OK | Set arm state changed successfully |
| 400 | Invalid request data | Empty payload sent within the request |
| 401 | Unauthorized request | api_key doesn't match to the defined key |
| 403 | More details below | The request contained valid data and was understood by the server, but the server is refusing action, more details available in the error message and logs |
| 501 | Invalid arm mode, must be one of full_arm, home1, home2, disarm |
received mode is not supported |
| Message | Description |
|---|---|
| No Server | Server is unreachable, check if serial port / IP:Port are correct |
| Invalid arm mode [mode] | provided mode is not supported |
- Groovy Device Type Handlers for SmartThings integration.
- Support further functionality, e.g. change user codes.