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": "9847472103746214"
}
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¶
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 |
The transmitter secret must be 5-30 characters and cannot contain the following chars: “ ‘ & < >.
To generate a random 16-char secret, set SECRET to “r16”. The secret can then be read back and copied into Transmitter details -> PIN in Skyresponse Admin. This is the recommended way to ensure a high level of security.
The following alarm codes are supported:
ALARM_CODE |
Description |
|---|---|
101 |
Panic alarm, mobile |
102 |
Panic alarm, fixed |
121 |
Attention alarm, mobile |
122 |
Attention alarm, fixed |
125 |
Door bell |
163 |
Geofence - Person out-of-bounds (No positioning monitoring) |
301 |
Personal emergency, mobile (Social Care Alarm Mobile) |
302 |
Personal emergency, fixed (Social Care Alarm Fixed) |
When no ALARM_CODE is specified or an unsupported code is used,
301 - Personal emergency, mobile (displayed as Social Care Alarm Mobile) will be used.
JSON example:
{
"secret": "9847472103746214",
"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¶
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 |
mode |
string |
Yes |
null |
Mode. Used for testing purposes. Allowed values: “sandbox”, “simulation”. |
The following alarm codes are supported:
JSON example:
{
"enabled": true
}
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 |
0x9830 - Battery Alarm State¶
Type: dictionary
Name: battery-alarm-state (18)
Battery alarm is triggered when the battery level is low. It works like 0x9812 - Alarm State, but is less urgent.
The following alarm codes are used:
ALARM_CODE |
Description |
|---|---|
956 |
Low battery alarm |
957 |
Battery end of life (Battery Drained) |
See 0x9812 - Alarm State.
0x9831 - Clear Battery Alarm State¶
Name: clear-battery-alarm-state (18)
See 0x9813 - Clear Alarm State.
0x9832 - Ack Battery Alarm State¶
Type: dictionary
Name: ack-battery-alarm-state (18)
0x9833 - Ack Battery Alarm Cleared State¶
Name: ack-battery-alarm-cleared-state (18)
See 0x9816 - Ack Alarm Cleared State.
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.