Zone

The Zone module provides the ability to set certain zones within the 3D space of the Quantum RTLS system, which can conditionally trigger a series of actions from generating a log message, trigger an alarm on the device, or sending a request to a URI.

Get a listing of defined zones

SecurityOAuth2 or ApiKey
Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

get/modules/zones
Request samples
Response samples
application/json
[
  • {
    }
]

Create a new zone

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json

Create a new zone

Name
string

Friendly-name for a specific zone definition. Any JSON string is valid.

GeometryType
string

Specifies the shape of the Zone, which also dictates how the GeometryData is interpreted. 2D shapes extend infinitely to all positive and negative Z-coordinate values.

Enum: "sphere" "circle" "cuboid" "square" "cylinder" "polygon"
GeometryData
Array of integers non-empty

The schema for GeometryData depends on the GeometryType according to the following table:

GeometryType GeometryData
sphere [[center_point],[radius,0,0]]
circle [[center_point],[radius,0,0]]
cuboid [[origin],[length,width,height],[axis_l],[axis_w],[axis_h]]
square [[bottom_left],[length,width,0],[axis_l_x, axis_l_y, 0],[axis_w_x, axis_w_y, 0]]
cylinder [[origin],[axis],[height,radius,0]]
polygon [[vertex 1],[vertex 2],...[vertex N],[height,0,0],[axis]]
MobileOriginSource
string

The MAC address of the device to attach this zone's centre to, allowing the zone to become a moving centroid with latest device position as its centre.

AlertLevel
integer

Indicates the numeric alert level of the zone from the lowest priority (0) to the highest priority (+inf). This value determines what types of actions are taken on triggering, ranging from a site-wide alarm, device-level alarm, or a logged-only alarm.

Active
boolean
Default: true

Indicates whether the Zone is active or inactive. If a Zone is inactive, it will not cause any alarms even if devices enter the zone.

InclusionPolicy
string
Default: "all"

Specifies the default inclusion policy for devices which may trigger this zone. If set to all, any device that is not listed in the DeviceList is able to trigger the zone. If set to none, only devices listed in the DeviceList may trigger the zone.

Enum: "all" "none"
DeviceList
Array of strings

If InclusionPolicy is set to all, any device that is not listed in this list is able to trigger the zone. If InclusionPolicy to none, only devices listed in this list may trigger the zone.

Array of objects (ZoneAction)
IsTimed
boolean
Default: false

Indicates if the zone is a timed zone. If set, the StartTime and StopTime will be used to dictate when the zone is active.

StartTime
string <date-time>

The date and time indicating the start of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

StopTime
string <date-time>

The date and time indicating the end of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

422

Invalid data was sent.

post/modules/zones
Request samples
application/json
{
  • "Name": "Keep-out zone",
  • "GeometryType": "sphere",
  • "GeometryData": [
    ],
  • "MobileOriginSource": "00:11:22:33:44:55",
  • "AlertLevel": 3,
  • "Active": true,
  • "InclusionPolicy": "all",
  • "DeviceList": [
    ],
  • "ZoneActions": [],
  • "IsTimed": false,
  • "StartTime": "2019-08-24T14:15:22Z",
  • "StopTime": "2019-08-24T14:15:22Z"
}
Response samples
application/json
{
  • "SiteID": 501,
  • "ZoneID": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
  • "Name": "Keep-out zone",
  • "GeometryType": "sphere",
  • "GeometryData": [
    ],
  • "MobileOriginSource": "00:11:22:33:44:55",
  • "CollidingDevices": [
    ],
  • "AlertLevel": 3,
  • "Active": true,
  • "InclusionPolicy": "all",
  • "DeviceList": [
    ],
  • "ZoneActions": [],
  • "IsGeometryLocked": false,
  • "IsTimed": false,
  • "StartTime": "2019-08-24T14:15:22Z",
  • "StopTime": "2019-08-24T14:15:22Z"
}

Get detailed information about a zone

SecurityOAuth2 or ApiKey
Request
path Parameters
ZoneID
required
string

ID of the zone

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

404

Resource was not found.

get/modules/zones/{ZoneID}
Request samples
Response samples
application/json
{
  • "SiteID": 501,
  • "ZoneID": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
  • "Name": "Keep-out zone",
  • "GeometryType": "sphere",
  • "GeometryData": [
    ],
  • "MobileOriginSource": "00:11:22:33:44:55",
  • "CollidingDevices": [
    ],
  • "AlertLevel": 3,
  • "Active": true,
  • "InclusionPolicy": "all",
  • "DeviceList": [
    ],
  • "ZoneActions": [],
  • "IsGeometryLocked": false,
  • "IsTimed": false,
  • "StartTime": "2019-08-24T14:15:22Z",
  • "StopTime": "2019-08-24T14:15:22Z"
}

Delete a zone

SecurityOAuth2 or ApiKey
Request
path Parameters
ZoneID
required
string

ID of the zone

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

delete/modules/zones/{ZoneID}
Request samples
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Update zone settings

SecurityOAuth2 or ApiKey
Request
path Parameters
ZoneID
required
string

ID of the zone

Request Body schema: application/json

Update a zone's settings

Name
string

Friendly-name for a specific zone definition. Any JSON string is valid.

GeometryType
string

Specifies the shape of the Zone, which also dictates how the GeometryData is interpreted. 2D shapes extend infinitely to all positive and negative Z-coordinate values.

Enum: "sphere" "circle" "cuboid" "square" "cylinder" "polygon"
GeometryData
Array of integers non-empty

The schema for GeometryData depends on the GeometryType according to the following table:

GeometryType GeometryData
sphere [[center_point],[radius,0,0]]
circle [[center_point],[radius,0,0]]
cuboid [[origin],[length,width,height],[axis_l],[axis_w],[axis_h]]
square [[bottom_left],[length,width,0],[axis_l_x, axis_l_y, 0],[axis_w_x, axis_w_y, 0]]
cylinder [[origin],[axis],[height,radius,0]]
polygon [[vertex 1],[vertex 2],...[vertex N],[height,0,0],[axis]]
MobileOriginSource
string

The MAC address of the device to attach this zone's centre to, allowing the zone to become a moving centroid with latest device position as its centre.

AlertLevel
integer

Indicates the numeric alert level of the zone from the lowest priority (0) to the highest priority (+inf). This value determines what types of actions are taken on triggering, ranging from a site-wide alarm, device-level alarm, or a logged-only alarm.

Active
boolean
Default: true

Indicates whether the Zone is active or inactive. If a Zone is inactive, it will not cause any alarms even if devices enter the zone.

InclusionPolicy
string
Default: "all"

Specifies the default inclusion policy for devices which may trigger this zone. If set to all, any device that is not listed in the DeviceList is able to trigger the zone. If set to none, only devices listed in the DeviceList may trigger the zone.

Enum: "all" "none"
DeviceList
Array of strings

If InclusionPolicy is set to all, any device that is not listed in this list is able to trigger the zone. If InclusionPolicy to none, only devices listed in this list may trigger the zone.

Array of objects (ZoneAction)
IsTimed
boolean
Default: false

Indicates if the zone is a timed zone. If set, the StartTime and StopTime will be used to dictate when the zone is active.

StartTime
string <date-time>

The date and time indicating the start of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

StopTime
string <date-time>

The date and time indicating the end of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

422

Invalid data was sent.

put/modules/zones/{ZoneID}
Request samples
application/json
{
  • "Name": "Keep-out zone",
  • "GeometryType": "sphere",
  • "GeometryData": [
    ],
  • "MobileOriginSource": "00:11:22:33:44:55",
  • "AlertLevel": 3,
  • "Active": true,
  • "InclusionPolicy": "all",
  • "DeviceList": [
    ],
  • "ZoneActions": [],
  • "IsTimed": false,
  • "StartTime": "2019-08-24T14:15:22Z",
  • "StopTime": "2019-08-24T14:15:22Z"
}
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Bulk create a bundle of zones

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json

Create all listed zones

Array
Name
string

Friendly-name for a specific zone definition. Any JSON string is valid.

GeometryType
string

Specifies the shape of the Zone, which also dictates how the GeometryData is interpreted. 2D shapes extend infinitely to all positive and negative Z-coordinate values.

Enum: "sphere" "circle" "cuboid" "square" "cylinder" "polygon"
GeometryData
Array of integers non-empty

The schema for GeometryData depends on the GeometryType according to the following table:

GeometryType GeometryData
sphere [[center_point],[radius,0,0]]
circle [[center_point],[radius,0,0]]
cuboid [[origin],[length,width,height],[axis_l],[axis_w],[axis_h]]
square [[bottom_left],[length,width,0],[axis_l_x, axis_l_y, 0],[axis_w_x, axis_w_y, 0]]
cylinder [[origin],[axis],[height,radius,0]]
polygon [[vertex 1],[vertex 2],...[vertex N],[height,0,0],[axis]]
MobileOriginSource
string

The MAC address of the device to attach this zone's centre to, allowing the zone to become a moving centroid with latest device position as its centre.

AlertLevel
integer

Indicates the numeric alert level of the zone from the lowest priority (0) to the highest priority (+inf). This value determines what types of actions are taken on triggering, ranging from a site-wide alarm, device-level alarm, or a logged-only alarm.

Active
boolean
Default: true

Indicates whether the Zone is active or inactive. If a Zone is inactive, it will not cause any alarms even if devices enter the zone.

InclusionPolicy
string
Default: "all"

Specifies the default inclusion policy for devices which may trigger this zone. If set to all, any device that is not listed in the DeviceList is able to trigger the zone. If set to none, only devices listed in the DeviceList may trigger the zone.

Enum: "all" "none"
DeviceList
Array of strings

If InclusionPolicy is set to all, any device that is not listed in this list is able to trigger the zone. If InclusionPolicy to none, only devices listed in this list may trigger the zone.

Array of objects (ZoneAction)
IsTimed
boolean
Default: false

Indicates if the zone is a timed zone. If set, the StartTime and StopTime will be used to dictate when the zone is active.

StartTime
string <date-time>

The date and time indicating the start of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

StopTime
string <date-time>

The date and time indicating the end of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

422

Invalid data was sent.

post/modules/zones/bulkCreate
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
[
  • {
    }
]

Bulk update a bundle of zones

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json

List of updated zone's settings

Array
Name
string

Friendly-name for a specific zone definition. Any JSON string is valid.

GeometryType
string

Specifies the shape of the Zone, which also dictates how the GeometryData is interpreted. 2D shapes extend infinitely to all positive and negative Z-coordinate values.

Enum: "sphere" "circle" "cuboid" "square" "cylinder" "polygon"
GeometryData
Array of integers non-empty

The schema for GeometryData depends on the GeometryType according to the following table:

GeometryType GeometryData
sphere [[center_point],[radius,0,0]]
circle [[center_point],[radius,0,0]]
cuboid [[origin],[length,width,height],[axis_l],[axis_w],[axis_h]]
square [[bottom_left],[length,width,0],[axis_l_x, axis_l_y, 0],[axis_w_x, axis_w_y, 0]]
cylinder [[origin],[axis],[height,radius,0]]
polygon [[vertex 1],[vertex 2],...[vertex N],[height,0,0],[axis]]
MobileOriginSource
string

The MAC address of the device to attach this zone's centre to, allowing the zone to become a moving centroid with latest device position as its centre.

AlertLevel
integer

Indicates the numeric alert level of the zone from the lowest priority (0) to the highest priority (+inf). This value determines what types of actions are taken on triggering, ranging from a site-wide alarm, device-level alarm, or a logged-only alarm.

Active
boolean
Default: true

Indicates whether the Zone is active or inactive. If a Zone is inactive, it will not cause any alarms even if devices enter the zone.

InclusionPolicy
string
Default: "all"

Specifies the default inclusion policy for devices which may trigger this zone. If set to all, any device that is not listed in the DeviceList is able to trigger the zone. If set to none, only devices listed in the DeviceList may trigger the zone.

Enum: "all" "none"
DeviceList
Array of strings

If InclusionPolicy is set to all, any device that is not listed in this list is able to trigger the zone. If InclusionPolicy to none, only devices listed in this list may trigger the zone.

Array of objects (ZoneAction)
IsTimed
boolean
Default: false

Indicates if the zone is a timed zone. If set, the StartTime and StopTime will be used to dictate when the zone is active.

StartTime
string <date-time>

The date and time indicating the start of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

StopTime
string <date-time>

The date and time indicating the end of the timed zone active timeframe. Only used when the IsTimed boolean is set to true.

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

422

Invalid data was sent.

put/modules/zones/bulkUpdate
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Bulk delete a bundle of zones

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json

Remove all zones that have the same zone IDs contained in the list

Array
string

Zone ID

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

422

Invalid data was sent.

put/modules/zones/bulkDelete
Request samples
application/json
[
  • "0bf650c2-3b03-447b-8b1a-4eacb09b04cb",
  • "2bcaef97-f6c7-4017-ba3b-a6b677d4b806"
]
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Activate zones

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json

Activate zones in the request body

Array
string

Zone ID

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

post/modules/zones/activate
Request samples
application/json
[
  • "0bf650c2-3b03-447b-8b1a-4eacb09b04cb",
  • "2bcaef97-f6c7-4017-ba3b-a6b677d4b806"
]
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Deactivate zones

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json

Deactivate zones in the request body

Array
string

Zone ID

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

post/modules/zones/deactivate
Request samples
application/json
[
  • "0bf650c2-3b03-447b-8b1a-4eacb09b04cb",
  • "2bcaef97-f6c7-4017-ba3b-a6b677d4b806"
]
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Add devices to a zone's device list

SecurityOAuth2 or ApiKey
Request
path Parameters
ZoneID
required
string

ID of the zone

Request Body schema: application/json

Add devices to a zone's device list

Array
string

Device ID (usually the device's MAC)

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

422

Invalid data was sent.

post/modules/zones/{ZoneID}/addDevices
Request samples
application/json
[
  • "00:11:22:33:44:55",
  • "66:77:88:99:00:AA"
]
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Remove devices from a zone's device list

SecurityOAuth2 or ApiKey
Request
path Parameters
ZoneID
required
string

ID of the zone

Request Body schema: application/json

Remove devices from a zone's device list

Array
string

Device ID (usually the device's MAC)

Responses
200

Response success

400

Malformed request.

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

422

Invalid data was sent.

post/modules/zones/{ZoneID}/removeDevices
Request samples
application/json
[
  • "00:11:22:33:44:55",
  • "66:77:88:99:00:AA"
]
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Get a listing of all available zone settings

SecurityOAuth2 or ApiKey
Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

get/modules/zones/settings
Request samples
Response samples
application/json
[
  • {
    }
]

Updates an existing global setting

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json
SettingName
string

Name of the setting

SettingValue
string

The currently set value for the setting in string format

Description
string

Name of the setting

DisplayName
string

Human readable setting name meant for display

IsActive
boolean

Indicates whether this setting is enabled or disabled

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

put/modules/zones/settings
Request samples
application/json
{
  • "SettingName": "SafetyBuffer",
  • "SettingValue": "0.15",
  • "Description": "Enabling this will create a buffer zone to alert an employee to an at risk zone entry",
  • "DisplayName": "Global Safety Buffer",
  • "IsActive": true
}
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Updates an existing device specific safety buffer setting

SecurityOAuth2 or ApiKey
Request
Request Body schema: application/json
property name*
additional property
number

The key value pair where the key is the device ID, and the value is the safety buffer radius in meters

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

put/modules/zones/settings/deviceSafetyBuffer
Request samples
application/json
{
  • "00:AA:BB:CC:DD:EE": 0.1
}
Response samples
application/json
{
  • "status": 200,
  • "success": true
}

Delete a device safety buffer setting

SecurityOAuth2 or ApiKey
Request
path Parameters
address
required
string

Address of the device (usually it's MAC address)

Responses
200

Response success

401

Unauthorized access, invalid credentials were used.

403

Access forbidden. Current token does not have the necessary authority for the operation.

404

Resource was not found.

delete/modules/zones/settings/deviceSafetyBuffer/{address}
Request samples
Response samples
application/json
{
  • "status": 200,
  • "success": true
}