0x98xx
0x9800 - Alarm
Type: bool
Name: alarm (1)
| Value | Description |
|---|---|
| 0 | Alarm State OFF |
| 1 | Alarm State ON |
0x9801 - Priority
Type: bool
Name: priority (1)
| Value | Description |
|---|---|
| 0 | Not prioritized |
| 1 | Prioritized |
0x9802 - TX Power
Type: s8
Name: tx-power (1)
| Chip | Accepted values |
|---|---|
| nRF51 | -30, -20, -16, -12, -8, -4, 0, and 4 dBm |
| nRF52832 | -40, -20, -16, -12, -8, -4, 0, and 4 dBm |
| nRF52840 | -40, -20, -16, -12, -8, -4, 0, +2, +3, +4, +5, +6, +7 and +8 dBm |
0x9803 - Long Button Press Timeout
Type: u16
Name: long-button-press-timeout (1)
Long button press timeout is in millisecond and must be in multiple of 100ms. Range is 100ms to 8000ms.
Note
Setting value lower than 300ms can make it hard to perform short button press.
0x9804 - Status and Tracking Interval in Normal Mode
Name: normal-mode-advertisement-interval (1)
| Offset | Type | Description |
|---|---|---|
| 0:1 | u16 | Advertisement interval is in millisecond. Range is 20ms to 10240ms. |
| 2 | u8 | Denominator. Valid range: 1-255. |
Denominator defines how often status and tracking propagate through network extender. For example, if denominator is 2, every second advertisement comes through. If denominator is 5, every 5th advertisement comes through.
{
"interval": [number],
"denominator": [number]
}
0x9805 - Status and Tracking Interval in SOS/Alarm Mode
Name: alarm-mode-advertisement-interval (1)
See 0x9804.
0x9806 - Status and Tracking Interval in Priority Mode
Name: priority-mode-advertisement-interval (1)
See 0x9804.
0x9807 - Status and Tracking Interval in Sleep Mode
Name: sleep-mode-advertisement-interval (1)
See 0x9804.
0x9808 - Inactive to Sleep Delay
Type: u16
Name: inactive-to-sleep-delay (1)
Delay in seconds from device becomes inactive in Normal mode until it enters Sleep mode.
Default Value for all devices is 60 seconds.
0x9809 - Alarm 2
Type: bool
Name: alarm-2 (3)
| Value | Description |
|---|---|
| 0 | Alarm State OFF |
| 1 | Alarm State ON |
0x9810 - Whitelist Key
Name: whitelist-key (1)
| Offset | Type | Description |
|---|---|---|
| 0:1 | u16 | Installation ID |
| 2:5 | u32 | Group Membership Bit-mask |
{
"site": [number],
"groups": [hex-string(8)]
}
0x9811 - Tamper Alarm
Type: bool
Name: tamper-alarm (11)
| Value | Description |
|---|---|
| 0 | Tamper alarm not active (Pin pressed) |
| 1 | Tamper alarm active (Pin not pressed) |
0x9812 - Alarm State
Type: dictionary
Name: alarm-state (16)
| Key | Name | Type | JSON Property | JSON Type | Description |
|---|---|---|---|---|---|
| 0 | TIMESTAMP | u48 | timestamp | number | Unix time when alarm was triggered. This serves as a unique ID for the alarm event. Unit: ms. |
| 1 | ALARM_ID | bytearray | alarmId | hex-string | Alarm ID. This is present when alarm has been reported and ACKed. For Skyresponse, this will be globalAlarmId. |
| 2 | CLEARED_BY | mac-address | clearedBy | hex-string | MAC address of device that cleared the alarm. Set to 0 if clearer is unknown. |
| 3 | ALARM_CODE | u32 | alarmCode | number | Skyresponse Alarm Code (from skyresponse-alarm-config). Included if ALARM_CODE is present in skyresponse-alarm-config. |
| 4 | SECRET | UTF-8 | secret | string | Skyresponse Secret (from skyresponse-alarm-config). Included if skyresponse-alarm-config is set. |
When there is no active alarm (NO_ALARM state), alarm state will have no TIMESTAMP.
| Alarm state | Keys | Optional Keys | Description |
|---|---|---|---|
| NO_ALARM | - | SECRET | No alarm. Value contains no TIMESTAMP. |
| ALARM | TIMESTAMP | ALARM_CODE, SECRET | Alarm has been triggered. |
| ALARM_ACKED | TIMESTAMP, ALARM_ID | ALARM_CODE, SECRET | Alarm has been ACKed. |
| ALARM_CLEARED | TIMESTAMP, ALARM_ID, CLEARED_BY | ALARM_CODE, SECRET | Alarm has been cleared (after being ACKed) |
| ALARM_CLEARED | TIMESTAMP, CLEARED_BY | ALARM_CODE, SECRET | Alarm has been cleared (before being ACKed) |
The typical alarm state flow is like this:
NO_ALARM → ALARM → ALARM_ACKED → ALARM_CLEARED → NO_ALARM/ALARM
Alternatively, alarm can be cleared before it is ACKed (in this case, no ALARM_ID will be present):
NO_ALARM → ALARM → ALARM_CLEARED → NO_ALARM/ALARM
A new alarm can be triggered in ALARM_CLEARED state, before the clearing has been ACKed. This will have a new unique TIMESTAMP.
JSON example:
{
"timestamp": 1779782560876,
"alarmId": "0323770E77B0A80E20260526080235",
"clearedBy": "CA6B8F76D440",
"alarmCode": 121,
"secret": "77791"
}
0x9813 - Clear Alarm State
Name: clear-alarm-state (16)
| Offset | Name | Type | Description |
|---|---|---|---|
| 0:5 | TIMESTAMP | u48 | Unix time when alarm was triggered. This serves as a unique ID for the alarm event. Unit: ms. |
| 6 | FLAGS | u8 | Flags |
| FLAGS bit | NAME | Description |
|---|---|---|
| 7:1 | - | Reserved, set to 0 |
| 0 | SET_CLEARED_BY | Set CLEARED_BY to connected device MAC address. If not set, CLEARED_BY is set to 0 (unknown clearer). |
Clear alarm. This will transition alarm state from ALARM/ALARM_ACKED to ALARM_CLEARED. Two state transitions are possible:
- ALARM → ALARM_CLEARED
- ALARM_ACKED → ALARM_CLEARED
TIMESTAMP must match the current alarm.
After a successful clear, alarm-state reports with CLEARED_BY.
| ERROR_CODE | Description |
|---|---|
| Not Applicable (38) | Alarm is not in ALARM or ALARM_ACKED state. |
| Alarm Timestamp mismatch (19) | Timestamp does not match |
JSON example:
{
"timestamp": 1779782560876,
"setClearedBy": false
}
0x9814 - Skyresponse Alarm Config (BETA)
Type: dictionary
Name: skyresponse-alarm-config (16)
Skyresponse alarm configuration in device.
| Key | Name | Type | Optional | Description |
|---|---|---|---|---|
| 0 | SECRET | UTF-8 | No | Transmitter Secret. The secret is called “PIN” in the GUI and “access code” in the Alarm application. |
| 1 | ALARM_CODE | u32 | Yes | Alarm Code |
JSON example:
{
"secret": "98474",
"alarmCode": 301
}
0x9815 - Ack Alarm State
Type: dictionary
Name: ack-alarm-state (16)
| Key | Name | Type | Description |
|---|---|---|---|
| 0 | TIMESTAMP | u48 | Unix time when alarm was triggered. Unit: ms. |
| 1 | ALARM_ID | bytearray | Alarm ID. |
Ack ALARM state. This will transition state from ALARM to ALARM_ACKED. TIMESTAMP must match current alarm-state TIMESTAMP.
| ERROR_CODE | Description |
|---|---|
| Not Applicable (38) | Alarm is not in ALARM state |
| Alarm Timestamp mismatch (19) | In ALARM state, but timestamp does not match |
JSON example:
{
"timestamp": 1779782560876,
"alarmId": "0323770E77B0A80E20260526080235"
}
0x9816 - Ack Alarm Cleared State
Name: ack-alarm-cleared-state (16)
| Offset | Name | Type | Description |
|---|---|---|---|
| 0:5 | TIMESTAMP | u48 | Unix time when alarm was triggered. This serves as a unique ID for the alarm event. Unit: ms. |
Ack ALARM_CLEARED state. TIMESTAMP must match current alarm-state TIMESTAMP. This will switch alarm-state to NO_ALARM.
| ERROR_CODE | Description |
|---|---|
| Not Applicable (38) | Alarm is not in ALARM_CLEARED state |
| Alarm Timestamp mismatch (19) | Timestamp does not match |
JSON example:
{
"timestamp": 1779782560876
}
0x9817 - Skyresponse Config (BETA)
Type: json-object
Name: skyresponse-config (16)
Skyresponse configuration. When Skyresponse is not to be used, set to NULL or keep enabled false.
| JSON Property | Type | Optional | Default Value | Description |
|---|---|---|---|---|
| enabled | boolean | No | - | Enable/disable |
| defaultAlarmCode | number | Yes | null | Default Alarm Code. This is used when alarm code is not configured in device. |
| mode | string | Yes | null | Mode. Used for testing purposes. Allowed values: "sandbox", "simulation". |
When defaultAlarmCode is not specified (null), 101 (Panic alarm, mobile) is used.
JSON example:
{
"enabled": true,
"defaultAlarmCode": 123
}
0x9820 - Text Message
Name: text-message (1)
When this property is written, the text message is added to the message queue.
User will be notified about the new message and value of 0x9821 will be set to 1.
Note
0-bytes in ascii text data are not allowed.
| Offset | Type | Description |
|---|---|---|
| 0:n | u8 | ASCII text message |
0x9821 - Unread Text Message
Type: bool
Name: unread-message (1)
| Value | Description |
|---|---|
| 0 | No unread message |
| 1 | Unread message |
0x9860 - Button Panel State
Type: u8
Name: button-panel-state (1)
Current Button Panel State.
Write to reset button panel state.
0x9861 - Button Panel State Request
Type: u8
Name: button-panel-state-request (1)
New button panel state requested by device.
Write this property to confirm requested state.