MPACT
JSON Schema for Receiver
Operations
MN-003388-01EN
JSON Schema for Receiver Operations
Copyright
© 2020 ZIH Corp. and/or its affiliates. All rights reserved. ZEBRA and the stylized Zebra head are trademarks of ZIH
Corp., registered in many jurisdictions worldwide. All other trademarks are the property of their respective owners.
COPYRIGHTS & TRADEMARKS: For complete copyright and trademark information, go to www.zebra.com/copyright.
WARRANTY: For complete warranty information, go to www.zebra.com/warranty.
END USER LICENSE AGREEMENT: For complete EULA information, go to www.zebra.com/eula.
Terms of Use
Proprietary Statement
This manual contains proprietary information of Zebra Technologies Corporation and its subsidiaries (“Zebra
Technologies”). It is intended solely for the information and use of parties operating and maintaining the equipment
described herein. Such proprietary information may not be used, reproduced, or disclosed to any other parties for any other
purpose without the express, written permission of Zebra Technologies.
Product Improvements
Continuous improvement of products is a policy of Zebra Technologies. All specifications and designs are subject to
change without notice.
Liability Disclaimer
Zebra Technologies takes steps to ensure that its published Engineering specifications and manuals are correct; however,
errors do occur. Zebra Technologies reserves the right to correct any such errors and disclaims liability resulting therefrom.
Limitation of Liability
In no event shall Zebra Technologies or anyone else involved in the creation, production, or delivery of the accompanying
product (including hardware and software) be liable for any damages whatsoever (including, without limitation,
consequential damages including loss of business profits, business interruption, or loss of business information) arising out
of the use of, the results of use of, or inability to use such product, even if Zebra Technologies has been advised of the
possibility of such damages. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential
damages, so the above limitation or exclusion may not apply to you.
2
JSON Schema for Receiver Operations
Table of Contents
Copyright - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2
Terms of Use - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2
Proprietary Statement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2
Product Improvements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2
Liability Disclaimer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2
Limitation of Liability - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2
Table of Contents - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3
Introduction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4
Receiver Initialization - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4
JSON Schema For Receiver Bootstrap Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4
Sample Receiver Bootstrap configuration JSON - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -6
JSON Schema For Receiver Filter Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -7
Sample Receiver Filter Configuration JSON Without SuperBeacon Filters - - - - - - - - - - - - - - -16
Sample Receiver Filter Configuration JSON With SuperBeacon Filters - - - - - - - - - - - - - - - - - -17
Sample Receiver Filter Configuration JSON With Receiver Broadcast - - - - - - - - - - - - - - - - - -18
Sample Receiver Filter Configuration With Reboot And WifiNetwork Settings - - - - - - - - - - - - -20
Sample Receiver Filter Configuration With Aggregation Data Settings - - - - - - - - - - - - - - - - - -21
JSON Schema For Beacon Data Events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -23
Sample Beacon Data Events JSON For GE Mobile Receiver (GE-MB6000) - - - - - - - - - - - - - -25
Sample Beacon Data Events JSON For GE Fixed Receiver (GE-MB5000) - - - - - - - - - - - - - - -26
Sample Beacon Data Events JSON For MPACT Fixed Receiver (MPACT-MB5000) - - - - - - - -27
Sample Beacon Data Events JSON For Virtual Mobile Receiver (vMR Android) - - - - - - - - - - -28
Sample Beacon Data Events JSON For Virtual Mobile Receiver (vMR IOS) - - - - - - - - - - - - - -29
Sample Beacon Data Events JSON For MPACT Receiver With SuperBeacon Data - - - - - - - -30
Sample Beacon Data Events JSON For MPACT Receiver With
SuperBeacon Data And Delay Time - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -32
Sample Beacon Data Events JSON For VMR Android With SuperBeacon Data - - - - - - - - - - -33
Sample Beacon Data Events JSON For VMR iOS With SuperBeacon Data - - - - - - - - - - - - - -35
JSON Schema For Health Events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -36
Fixed Receiver Sample Health Heartbeat JSON - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -38
Mobile Receiver Sample Health Heartbeat JSON - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -38
Mobile Receiver Sample Health Heartbeat JSON With Version - - - - - - - - - - - - - - - - - - - - - - -38
Mobile Receiver Sample Health Heartbeat JSON With WIFI Details - - - - - - - - - - - - - - - - - - - -39
Mobile Receiver Sample Health Heartbeat JSON With Battery Details - - - - - - - - - - - - - - - - - -39
VMR Android Heartbeat JSON - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -40
VMR IOS Heartbeat JSON - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -40
JSON Schema For Time Request Response For Servers - - - - - - - - - - - - - - - - - - - - - - - - - - -40
Sample Response For Time Request - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -41
3
JSON Schema for Receiver Operations
Introduction
This guide describes the structure and data exchange format used by receivers for bootstrapping itself and sending and
receiving data to a server or gateway.
Receiver Initialization
The receiver, upon boot up, checks its internal flash to see if it has been initialized. If the initialization has been done before
then it uses that configuration for its operations. If the receiver has not been configured before then it does the following:
The receiver acts like a Wi-Fi client. It would try to join a Wi-Fi network with the following details:
• SSID: mpact_init
• Security Type: wpa2
• Security Key: mpact123.
Once the receiver has joined the Wi-Fi network successfully, it tries to connect to a webserver running at a specific IP
address and port.
• HTTP Server IP Address: 192.168.1.100
• HTTP Server Port: 8005.
The receiver performs an HTTP GET operation for bootstrap configuration file called
the bootstrap configuration are in the following sections.
badge_config.json. The details of
JSON Schema For Receiver Bootstrap Configuration
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A representation of Receiver Bootstrap Configuration.",
"type": "object",
"title": "Bootstrap configuration schema used by receivers.",
"properties": {
"wifiProfiles": {
"type": "array",
"required": ["ssid", "securityKey", "securityType", "enable"],
"optional": ["wpaEnterpriseUser", "wpaEnterprisePassword", "eapType",
"wpaEnterpriseOuterIdentity"],
"minItems": 1,
"maxItems": 4,
"items": {
"ssid": {
"type": "string",
"description": "SSID for receiver to connect to. ",
"minimum": 4,
"maximum": 32
},
"securityKey": {
"type": "string",
"description": "SSID password. ",
"minimum": 2,
"maximum": 63
},
"securityType": {
"type": "string",
4
},
"_useNetPing": {
},
"gatewayConfigs": {
"enable"],
JSON Schema for Receiver Operations
"description": "Security Type.",
"minItems": 1,
"maxItems": 1,
"enum": [
"wpatkip_psk",
"wpa_tkip", "wpatkip",
"wpaaes_psk",
"wpaaes", "wpa",
"wpamixed_psk", "wpa2tkip_psk",
"wpa2_tkip", "wpa2tkip",
"wpawaes_psk",
"wpa2aes", "wpa2",
"wpa2mixed_psk", "wpatkip_ent",
"wpaaes_ent", "wpamixed_ent",
"wpa2tkip_ent",
"wpa2aes_ent", "wpa2mixed_ent",
"open",
"wep",
"wpa2_fbt"
]
},
"wpaEnterpriseUser": {
"type": "string",
"description": "WPA Enterprise user name ",
"minimum": 4,
"maximum": 32
},
"wpaEnterprisePassword": {
"type": "string",
"description": "WPA Enterprise password ",
"minimum": 1,
"maximum": 32
},
"eapType": {
"type": "string",
"description": "EAP Type.",
"minItems": 1,
"maxItems": 1,
"enum": [
"peap"
]
},
"enable": {
"type": "boolean",
"description": "Enable/Disable the WIFI profile "
},
"wpaEnterpriseOuterIdentity": {
"type": "string",
"description": "Outer Identity password ",
"minimum": 0,
"maximum": 32
}
}
"type": "integer",
"description": "0 – default, 1 – Enables Ping check of Gateway"
"type": "array",
"required": ["user", "password", "receiverConfigURL", "configPullFrequencyInMins",
"minItems": 1,
"maxItems": 4,
"items": {
"user": {
5
JSON Schema for Receiver Operations
"type": "string",
"description": "User name to access receiver configuration.",
"minimum": 1,
"maximum": 32
},
"password": {
"type": "string",
"description": "Password to access receiver configuration. ",
"minimum": 1,
"maximum": 32
},
"receiverConfigURL": {
"type": "string",
"description": "URL to pull receiver configuration. ",
"minimum": 2,
"maximum": 256
},
"configPullFrequencyInMins": {
"type": "integer",
"description": "Frequency in minutes to pull receiver configuration ",
"minimum": 1
},
"enable": {
"type": "boolean",
"description": "Enable/Disable the WIFI profile "
}
}
}
},
"optional": ["_useNetPing"],
"required": ["wifiProfiles", "gatewayConfigs"]
}
Sample Receiver Bootstrap configuration JSON
{
"wifiProfiles": [{
"ssid": "Test5AP7532",
"securityKey": "5>\/NK5MogOc6lrt}m3\\:dN\/rbR:zzpyIGy5niZqVh\"A~W5.h<},2b2?T'?w'Xf2",
"securityType": "wPA2",
"wpaEnterpriseUser": "",
"wpaEnterprisePassword": "",
"eapType": "",
"enable": true
}, {
"ssid": "Cisco_WPA2_FT_PSK_AES_63",
"securityKey": "Abc123456789012345678901234567890123456789012345678901234567890",
"securityType": "wpa2_fbt",
"wpaEnterpriseUser": "",
"wpaEnterprisePassword": "",
"wpaEnterpriseOuterIdentity": "",
"eapType": "",
"enable": false
},
{
"ssid": "Cisco_WPA2_PSK_AES_63",
"securityKey": "Abc123456789012345678901234567890123456789012345678901234567890",
"securityType": "wpa2",
"wpaEnterpriseUser": "",
"wpaEnterprisePassword": "",
"wpaEnterpriseOuterIdentity": "",
"eapType": "",
"enable": false
},
6
JSON Schema for Receiver Operations
{
"ssid": "Cisco_WPA2_ENT_NORMAL",
"securityKey": "Unused",
"securityType": "wpa2",
"wpaEnterpriseUser": "exact32",
"wpaEnterprisePassword": "Aa123456789012345678901234567890",
"wpaEnterpriseOuterIdentity": "abcdefg",
"eapType": "peap",
"enable": false
},
{
"ssid": "Cisco_WPA2_ENT_FT",
"securityKey": "mpact123",
"securityType": "wpa2_fbt",
"wpaEnterpriseUser": "exact32",
"wpaEnterprisePassword": "Aa123456789012345678901234567890",
"wpaEnterpriseOuterIdentity": "abcdefg",
"eapType": "peap",
"enable": false
}
],
"gatewayConfigs": [{
"user": "user",
"password": "scarlet",
"receiverConfigURL":
"http://10.76.3.129:9200/scarlet/gateway/config/v1/receiver?org=SC_ZEBRA&facility=SC_ZEBRA_SAN_JOS
E",
"configPullFrequencyInMins": 15,
"enable": false
}, {
"user": "superuser",
"password": "mpact123",
"receiverConfigURL": "http://10.21.201.23:8005/stats/ReceiverConfig.json",
"configPullFrequencyInMins": 15,
"enable": true
}]
}
JSON Schema For Receiver Filter Configuration
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A representation of Receiver Filter Configuration.",
"type": "object",
"title": "Beacon filter configuration used by receivers. ",
"details": "Beacon filter configuration used by receivers. Attributes added for proximity
solutions",
"schemaVersion": "2.0.2",
"properties": {
"scanIntervalInMilliseconds": {
"type": "integer",
"description": "How often the receiver should scan for BLE beacons",
"minimum": 100,
"maximum": 1000
},
"wifiTransmissionInterval": {
"type": "integer",
"description": "How often the receiver should send scanned beacons to server. This is
time in milliseconds and is a multiple of scanIntervalInMilliseconds. For e.g. if scan interval is
200 and wifi transmission interval is 5 then wifi posts are done at every 200* 5 = 1000ms",
"minimum": 1,
"maximum": 20
},
7
"heartbeatIntervalInSeconds": {
"type": "integer",
"description": "How often the receiver should send heartbeat data to server.",
"minimum": 10,
"maximum": 3600
},
"bootTimeWaitInSeconds": {
"type": "integer",
"description": "How much time in seconds should receiver wait during boot process.",
"minimum": 0,
"maximum": 120
},
"timePullIntervalInMinutes": {
"type": "integer",
"description": "How often the receiver should pull time data from server and set its
local time.",
"minimum": 5,
"maximum": 600
},
"timeCompensationEnable": {
"type": "integer",
"description": "Enable or disable time compensation by the receiver. 0 means disable; 1
means enable.",
"minimum": 0,
"maximum": 1
},
JSON Schema for Receiver Operations
"timeCompensationRate": {
"type": "float",
"description": "Defines the convergence rate in the time compensation value calculation.
The time compensation value is calculated every time after the time pull from gateway. The time
compensation value is used to offset the time drift from MCU. Equation: new compensation value =
old value * (1.0-timeCompensationRate) + latest calculation * timeCompensationRate. If
timeCompensationRate is set to 0.0, the new value is always the same value from history, i.e. the
latest calculation does not have any effect. If set to 1.0, the new value is always based on the
latest calculation, i.e. the historical value does not consider in the new value calculation. The
default value for timeCompensationRate is 0.5. If more aggressive result is needed, set it to
higher than 0.5. Otherwise, set it to lower than 0.5. ",
"minimum": 0.0,
"maximum": 1.0
},
"discardDataAfterTransmissionFailures": {
"type": "integer",
"description": "Discard beacon data after this number of consecutive data post failures",
"minimum": -1,
"maximum": 4096
},
"version": {
"type": "string",
"description": "Version of Configuration",
"minimum": 1,
"maximum": 32
},
"sendBatteryDetails": {
"type": "boolean",
"description": "Enable or disable battery details (for units with battery) to be sent to
server as part of heartbeat event. Default is false."
},
"beaconWhiteList": {
"type": "array",
"required": ["uuid", "type"],
"minItems": 1,
"maxItems": 16,
"items": {
"uuid": {
8
JSON Schema for Receiver Operations
"type": "string",
"description": "UUID of beacon. Case insensitive. Requires hyphen as separator.",
"minimum": 36,
"maximum": 36
},
"type": {
"type": "array",
"description": "Beacon type.",
"minItems": 1,
"maxItems": 1,
"enum": [
"mpact",
"ibeacon"
]
}
}
},
"wifiNetwork": {
"type": "object",
"properties": {
"sendWifiDetails": {
"type": "boolean",
"description": "Enable or disable WIFI details to be sent to server as part of
heartbeat event. Default is false."
},
"wifiNetworkCheckFreqMins": {
"type": "integer",
"description": "WIFI Network check frequency in minutes. Default is 1 minute.",
"minimum": 1,
"maximum": 10
}
},
"optional": ["sendWifiDetails", "wifiNetworkCheckFreqMins"]
},
"reboot": {
"type": "object",
"properties": {
"consecutiveReinitWifiFailures": {
"type": "integer",
"description": "Number of consecutive failures to re-initialize WIFI before unit
reboot",
"minimum": 2,
"maximum": 500
},
"consecutiveHeartBeatFailures": {
"type": "integer",
"description": "Number of consecutive heartbeat post failures ",
"minimum": 3,
"maximum": 1000
}
},
"optional": ["consecutiveReinitWifiFailures", "consecutiveHeartBeatFailures"]
},
"serviceUrls": {
"type": "object",
"properties": {
"timeService": {
"type": "string",
"description": "URL of the service that receiver uses to request time",
"minimum": 8,
"maximum": 256
},
"eventService": {
"type": "string",
"description": "URL of the service to post events.",
"minimum": 8,
9
JSON Schema for Receiver Operations
"maximum": 256
},
"healthService": {
"type": "string",
"description": "URL of the service to post health data.",
"minimum": 8,
"maximum": 256
},
"firmwareService": {
"type": "string",
"description": "URL of the service to pull firmware.",
"minimum": 8,
"maximum": 256
},
"configService": {
"type": "string",
"description": "URL of the configuration service to pull receiver filter
configuration.",
"minimum": 8,
"maximum": 256
}
},
"required": ["timeService", "eventService", "healthService"],
"optional": ["configService", "firmwareService"]
},
"serviceUrlsHostName": {
"type": "object",
"properties": {
"timeService": {
"type": "string",
"description": "URL of the service that receiver uses to request time. URL can have
hostname.",
"minimum": 8,
"maximum": 256
},
"eventService": {
"type": "string",
"description": "URL of the service to post events. URL can have hostname.",
"minimum": 8,
"maximum": 256
},
"healthService": {
"type": "string",
"description": "URL of the service to post health data. URL can have hostname.",
"minimum": 8,
"maximum": 256
},
"firmwareService": {
"type": "string",
"description": "URL of the service to pull firmware. URL can have hostname.",
"minimum": 8,
"maximum": 256
},
"configService": {
"type": "string",
"description": "URL of the configuration service to pull receiver filter
configuration. URL can have hostname.",
"minimum": 8,
"maximum": 256
}
},
"required": ["timeService", "eventService", "healthService"],
"optional": ["configService", "firmwareService"]
},
"firmware": {
"type": "object",
10
JSON Schema for Receiver Operations
"properties": {
"donwloadInSecond": {
"type": "boolean",
"description": "We need description for this"
},
"firmwareDownloadDebug": {
"type": "boolean",
"description": "We need description for this"
},
"fileName": {
"type": "string",
"description": "Badge/Hub Firmware file name old format.",
"minimum": 16,
"maximum": 256
},
"gaugeFirmware": {
"type": "string",
"description": "Gauge Firmware file name.",
"minimum": 16,
"maximum": 256
},
"wifiFirmware": {
"type": "string",
"description": "WIFI Firmware file name.",
"minimum": 16,
"maximum": 256
},
"bleFirmware": {
"type": "string",
"description": "BLE Firmware file name.",
"minimum": 16,
"maximum": 256
},
"bootloader": {
"type": "string",
"description": "Bootloader Firmware file name.",
"minimum": 16,
"maximum": 256
},
"mainFirmware": {
"type": "string",
"description": "Badge/Hub Firmware new format.",
"minimum": 16,
"maximum": 256
}
},
"required": ["downloadInSecond", "fileName"],
"optional": ["firmwareDownloadDebug", "gaugeFirmware", "bootloader", "bleFirmware",
"wifiFirmware", "mainFirmware"]
},
"profiles": {
"type": "array",
"required": ["profileLow", "profileHigh", "name", "sendClosestOnly", "suppressRepeats"],
"optional": ["beaconType", "aggStrongestPerBeacon", "aggAveragePerBeacon",
"aggApplyIIRFilter", "aggSecondStrongestPerBeacon"],
"minItems": 1,
"maxItems": 16,
"items": {
"name": {
"type": "string",
"description": "Name of profile.",
"minimum": 1,
"maximum": 32
},
"beaconType": {
"type": "string",
11
JSON Schema for Receiver Operations
"description": "Beacon type.",
"minItems": 1,
"maxItems": 1,
"enum": [
"Mobile",
"Fixed"
]
},
"profileLow": {
"type": "integer",
"description": "Minor number",
"minimum": 0,
"maximum": 99999
},
"profileHigh": {
"type": "integer",
"description": "Major number",
"minimum": 0,
"maximum": 99999
},
"proximityRanges": {
"type": "array",
"required": ["rssiLow", "rssiHigh", "name"],
"minItems": 1,
"maxItems": 16,
"items": {
"name": {
"type": "string",
"description": "Name of proximity range.",
"minimum": 1,
"maximum": 32
},
"rssiHigh": {
"type": "integer",
"description": "High value of RSSI. Can provide null.",
"minimum": -128,
"maximum": 127
},
"rssiLow": {
"type": "integer",
"description": "Low value of RSSI. Can provide null.",
"minimum": -128,
"maximum": 127
},
"beaconHitCount": {
"type": "integer",
"description": "Beacon hit count in WIFI post interval. How many times a
beacon is seen across WIFI posts.",
"minimum": 1,
"maximum": 12
},
"sendClosestOnly": {
"type": "boolean",
"description": "A flag to indicate whether only the closest beacon per BLE
scan should sent. Closest is determined by RSSI value."
},
"suppressRepeats": {
"type": "boolean",
"description": "Suppress repeats. Flag to indicate whether a single instance
or multiple instances of a beacon should be sent."
},
"aggStrongestPerBeacon": {
"type": "boolean",
"description": "A flag to indicate whether to aggregate for strongest RSSI
per beacon for an aggregation interval. This is only done if aggregationIntervalSecs is set"
12
JSON Schema for Receiver Operations
},
"aggAveragePerBeacon": {
"type": "boolean",
"description": "A flag to indicate whether to compute and send average RSSI
per beacon for an aggregation interval. This is only done if aggregationIntervalSecs is set"
},
"aggApplyIIRFilter": {
"type": "boolean",
"description": "A flag to indicate whether to apply IIR filter, compute and
send filtered RSSI per beacon for an aggregation interval. This is only done if
aggregationIntervalSecs is set"
},
"aggSecondStrongestPerBeacon": {
"type": "boolean",
"description": "A flag to indicate whether to aggregate for second strongest
RSSI per beacon for an aggregation interval. This is only done if aggregationIntervalSecs is set.
Note second strongest could have same value as strongest"
}
}
}
}
},
"superBeaconProfiles": {
"description": "These filters are applied on the beacons seen by the SuperBeacon",
"type": "array",
"required": ["profileLow", "profileHigh", "name"],
"minItems": 1,
"maxItems": 4,
"items": {
"name": {
"type": "string",
"description": "Name of profile.",
"minimum": 1,
"maximum": 32
},
"profileLow": {
"type": "integer",
"description": "Minor number",
"minimum": 0,
"maximum": 65535
},
"profileHigh": {
"type": "integer",
"description": "Major number",
"minimum": 0,
"maximum": 65535
},
"proximityRanges": {
"type": "array",
"required": ["rssiLow", "rssiHigh", "name"],
"minItems": 1,
"maxItems": 16,
"items": {
"name": {
"type": "string",
"description": "Name of proximity range.",
"minimum": 1,
"maximum": 32
},
"rssiHigh": {
"type": "integer",
"description": "High value of RSSI. Can provide null.",
"minimum": -128,
"maximum": 127
},
13
"rssiLow": {
"type": "integer",
"description": "Low value of RSSI. Can provide null.",
"minimum": -128,
"maximum": 127
}
}
}
}
},
"superBeaconFilters": {
"description": "These filters are applied on the SuperBeacon seen by the hub",
"properties": {
"rssiHigh": {
"type": "integer",
"description": "High value of RSSI. Can provide null.",
"minimum": -128,
"maximum": 127
},
"rssiLow": {
"type": "integer",
"description": "Low value of RSSI. Can provide null.",
"minimum": -128,
"maximum": 127
},
"ignoreSuperBeacons": {
"type": "boolean",
"description": "Attribute to ignore superBeacons"
}
}
},
"superBeaconWhiteList": {
"type": "array",
"required": ["uuid"],
"optional": ["type"],
"minItems": 1,
"maxItems": 16,
"items": {
"uuid": {
"type": "string",
"description": "UUID of beacon. Case insensitive. Requires hyphen as separator.",
"minimum": 36,
"maximum": 36
},
"type": {
"type": "array",
"description": "Beacon type.",
"minItems": 1,
"maxItems": 1,
"enum": [
"mpact",
"ibeacon"
]
}
}
},
"receiverBroadcast": {
"description": "These attributes are used by the receiver when BLE broadcast is enabled
for the hub",
"required": ["uuid", "major", "minor", "channelMap", "scanning", "broadcast"],
"optional": ["bleTxPwrDB", "interval"],
"properties": {
"uuid": {
"type": "string",
"description": "UUID to use for receiver during broadcast. Case insensitive.
Requires hyphen as separator.",
JSON Schema for Receiver Operations
14
JSON Schema for Receiver Operations
"minimum": 36,
"maximum": 36
},
"minor": {
"type": "integer",
"description": "Minor number to use during broadcast.",
"minimum": 0,
"maximum": 65535
},
"major": {
"type": "integer",
"description": "Major number to use during broadcast.",
"minimum": 0,
"maximum": 65535
},
"channelMap": {
"type": "integer",
"description": "bit 0 - 37, bit 1 - 38, bit 2 – 39. Based on value receiver
broadcasts in one or more channels.",
"minimum": 1,
"maximum": 7
},
"bleTxPwrDB": {
"type": "integer",
"description": "Sets the BLE radio transmit power level. in db",
"minimum": -21,
"maximum": 2
},
"interval": {
"type": "integer",
"description": "Broadcast interval of receiver in milliseconds.",
"minimum": 100,
"maximum": 10500
},
"minRssi": {
"type": "integer",
"description": "Capture beacons stronger than the RSSI specified.",
"minimum": -127,
"maximum": 127
},
"scanning": {
"type": "boolean",
"description": "Boolean flag to enable/disable scanning for beacons."
},
"broadcast": {
"type": "boolean",
"description": "Boolean flag to enable/disable BLE broadcast."
}
}
}
},
"optional": ["beaconWhiteList", "firmware", "bootTimeWaitInSeconds", "superBeaconProfiles",
"superBeaconFilters", "superBeaconWhiteList", "timeCompensationRate", "timeCompensationEnable",
"discardDataAfterTransmissionFailures", "receiverBroadcast", "version"],
"required": ["profiles", "serviceUrls", "serviceUrlsHostName", "scanIntervalInMilliseconds",
"wifiTransmissionInterval", "heartbeatIntervalInSeconds", "timePullIntervalInMinutes"]
}
15
JSON Schema for Receiver Operations
Sample Receiver Filter Configuration JSON Without SuperBeacon
Filters
{
"scanIntervalInMilliseconds": 500,
"wifiTransmissionInterval": 4,
"heartbeatIntervalInSeconds": 30,
"timePullIntervalInMinutes": 5,
"bootTimeWaitInSeconds":4,
"beaconWhiteList": [{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"type": "mpact"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938AB",
"type": "mpact"
}, {
"uuid": "00001200-0000-1000-8000-00805F9B34FB",
"type": "ibeacon"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FE",
"type": "mpact"
}],
"profiles": [{
"name": "Location Beacons",
"profileLow": 1,
"profileHigh": 999,
"beaconType1": "Mobile",
"proximityRanges": [{
"name": "Near",
"rssiLow": -100,
"rssiHigh": -30,
"beaconHitCount": 1,
"scanRetentionInterval": 1,
"sendClosestOnly": true,
"suppressRepeats": true
}]
}, {
"name": "Asset Beacons",
"profileLow": 1000,
"profileHigh": 65535,
"beaconType1": "Fixed",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"scanRetentionInterval": 1,
"sendClosestOnly": false,
"suppressRepeats": true
}]
}],
"serviceUrlsHostName": {
"timeService": "http://mwe-test.mweng.lan:8005/gettime",
"eventService": "http://mwe-test.mweng.lan:8005/event/",
"healthService": "http://mwe-test.mweng.lan:8005/health/",
"firmwareService": "http://mwe-test.mweng.lan:8005/firmware/",
"configService": "http://mwe-test.mweng.lan:8005/ReceiverConfig"
},
"serviceUrls": {
"timeService": "http://10.21.201.29:8005/gettime",
"eventService": "http://10.21.201.29:8005/event/",
"healthService": "http://10.21.201.29:8005/health/",
"firmwareService": "http://10.21.201.29:8005/firmware/",
"configService": "http://10.21.201.29:8005/ReceiverConfig.json"
16
JSON Schema for Receiver Operations
},
"firmware": {
"gaugeFirmware": "2.7.4.1-001R_GAUGE-BT000311-01_9689CECC_3AE0CE2D.srec",
"bleFirmware":"2.7.4.1-001R_BLE-FIRMWARE_31832710_1A6BF0B5.bin",
"wifiFirmware":"2.7.4.1-001R_WIFI-FW_B561BEFF_2760C9B5.bin",
"bootloader":"2.7.4.1-001R_BOOTLOADER_D3E36C55_62F6C831.bin",
"mainFirmware":"2.7.4.1-001R_GE-MB5000-01-WR_CD7701E9_FE8CD5E1.elf"
}
}
Sample Receiver Filter Configuration JSON With SuperBeacon Filters
{
"scanIntervalInMilliseconds": 500,
"wifiTransmissionInterval": 10,
"heartbeatIntervalInSeconds": 30,
"timePullIntervalInMinutes": 5,
"bootTimeWaitInSeconds": 4,
"discardDataAfterTransmissionFailures": 3,
"beaconWhiteList": [{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DC",
"type": "mpact"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938AB",
"type": "mpact"
}, {
"uuid": "00001200-0000-1000-8000-00805F9B34FB",
"type": "ibeacon"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FE",
"type": "mpact"
}],
"superBeaconFilters": {
"rssiLow": -95,
"rssiHigh": -30,
"ignoreSuperBeacons": false
},
"superBeaconProfiles": [{
"name": "Location Beacons1",
"profileLow": 100,
"profileHigh": 204,
"proximityRanges": [{
"name": "Near",
"rssiLow": -100,
"rssiHigh": -30
}]
}],
"superBeaconWhiteList": [{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"type": "mpact"
},
{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"type": "ibeacon"
},
{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938AA",
"type": "mpact"
}
],
"profiles": [{
"name": "Location Beacons",
"profileLow": 1,
"profileHigh": 999,
17
"beaconType1": "Mobile",
"proximityRanges": [{
"name": "Near",
"rssiLow": -100,
"rssiHigh": -30,
"beaconHitCount": 1,
"scanRetentionInterval": 1,
"sendClosestOnly": false,
"suppressRepeats": true
}]
}, {
"name": "Asset Beacons",
"profileLow": 1000,
"profileHigh": 65535,
"beaconType1": "Fixed",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"scanRetentionInterval": 1,
"sendClosestOnly": false,
"suppressRepeats": true
}]
}],
"serviceUrlsHostName": {
"timeService": "http://mwe-test.mweng.lan:8005/gettime",
"eventService": "http://mwe-test.mweng.lan:8005/event/",
"healthService": "http://mwe-test.mweng.lan:8005/health/",
"firmwareService": "http://mwe-test.mweng.lan:8005/firmware/",
"configService": "http://mwe-test.mweng.lan:8005/ReceiverConfig"
},
"serviceUrls": {
"timeService": "http://10.21.201.29:8005/gettime",
"eventService": "http://10.21.201.29:8005/event/",
"healthService": "http://10.21.201.29:8005/health/",
"firmwareService": "http://10.21.201.29:8005/firmware/",
"configService": "http://10.21.201.29:8005/ReceiverConfig.json"
},
"firmware": {
"downloadInSecond": "true",
"firmwareDownloadDebug": "true",
"gaugeFirmware": "2.7.6.0-033D_GAUGE-BT000311-01_9689CECC_D4123FC1.srec",
"bleFirmware": "2.7.6.0-033D_BLE-FIRMWARE_31832710_637145D2.bin",
"wifiFirmware": "2.7.6.0-033D_WIFI-FW_B561BEFF_D7B7AE9A.bin",
"bootloader": "2.7.6.0-033D_BOOTLOADER_5183FC3E_4E559B15.bin",
"mainFirmware": "2.7.6.0-033D_GE-MB5000-01-WR_97499838_72CBBA78.elf"
}
}
JSON Schema for Receiver Operations
Sample Receiver Filter Configuration JSON With Receiver Broadcast
{
"scanIntervalInMilliseconds": 500,
"wifiTransmissionInterval": 120,
"heartbeatIntervalInSeconds": 60,
"timePullIntervalInMinutes": 10,
"bleWatchDogInterval": 100,
"beaconWhiteList": [{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FB",
"type": "mpact"
}, {
"uuid": "00001200-0000-1000-8000-00805F9B34FB",
18
JSON Schema for Receiver Operations
"type": "ibeacon"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"type": "ibeacon"
},
{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"type": "mpact"
}
],
"profiles": [{
"name": "Location Beacons",
"profileLow": 949,
"profileHigh": 952,
"beaconType": "Mobile",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"sendClosestOnly": false,
"suppressRepeats": false
}]
}, {
"name": "Asset Beacons",
"profileLow": 65525,
"profileHigh": 65534,
"beaconType": "Fixed",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"sendClosestOnly": false,
"suppressRepeats": true
}]
}],
"serviceUrlsHostName": {
"timeService": "https://api.zebra.com/v2/devices/beacons/config/time",
"eventService": "https://api.zebra.com/v2/devices/beacons/event/",
"healthService": "https://api.zebra.com/v2/devices/beacons/health/",
"firmwareService": "http://api.zebra.com/v2/devices/beacons/config/firmware/"
},
"firmware": {
"downloadInSecond": "true",
"firmwareDownloadDebug": "true",
"gaugeFirmware": "2.7.6.1-030D_GAUGE-BT000311-01_9689CECC_47E8C45E.srec",
"bleFirmware": "2.7.6.1-030D_BLE-FIRMWARE_124D9AEC_7005FF34",
"wifiFirmware": "2.7.6.1-030D_WIFI-FW_B561BEFF_EF92C2E7.bin",
"bootloader": "2.7.6.1-030D_BOOTLOADER-LOW_02D204DF_DFE85BA3.bin",
"mainFirmware": "2.7.6.1-030D_MPACT-MB6000-01-WR_93A555A4_E07B0AE7.elf"
},
"receiverBroadcast": {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FB",
"interval": 150,
"broadcast": true,
"scanning": true,
"major": 950,
"minor": 0,
"minRssi": -90,
"channelMap": 2,
"bleTxPwrDB": -10
}
}
19
JSON Schema for Receiver Operations
Sample Receiver Filter Configuration With Reboot And WifiNetwork
Settings
{
"scanIntervalInMilliseconds": 500,
"wifiTransmissionInterval": 120,
"heartbeatIntervalInSeconds": 60,
"timePullIntervalInMinutes": 10,
"bleWatchDogInterval": 100,
"sendBatteryDetails": true,
"wifiNetwork": {
"sendWifiDetails": true,
"wifiNetworkCheckFreqMins": 4
},
"reboot": {
"consecutiveHeartBeatFailures": 300,
"consecutiveReinitWifiFailures": 200
},
"beaconWhiteList": [{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FB",
"type": "mpact"
}, {
"uuid": "00001200-0000-1000-8000-00805F9B34FB",
"type": "ibeacon"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"type": "ibeacon"
},
{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"type": "mpact"
}
],
"profiles": [{
"name": "Location Beacons",
"profileLow": 949,
"profileHigh": 952,
"beaconType": "Mobile",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"sendClosestOnly": false,
"suppressRepeats": false
}]
}, {
"name": "Asset Beacons",
"profileLow": 65525,
"profileHigh": 65534,
"beaconType": "Fixed",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"sendClosestOnly": false,
"suppressRepeats": true
}]
}],
"serviceUrlsHostName": {
"timeService": "https://api.zebra.com/v2/devices/beacons/config/time",
20
"eventService": "https://api.zebra.com/v2/devices/beacons/event/",
"healthService": "https://api.zebra.com/v2/devices/beacons/health/",
"firmwareService": "http://api.zebra.com/v2/devices/beacons/config/firmware/"
},
"firmware": {
"downloadInSecond": "true",
"firmwareDownloadDebug": "true",
"gaugeFirmware": "2.7.6.1-030D_GAUGE-BT000311-01_9689CECC_47E8C45E.srec",
"bleFirmware": "2.7.6.1-030D_BLE-FIRMWARE_124D9AEC_7005FF34",
"wifiFirmware": "2.7.6.1-030D_WIFI-FW_B561BEFF_EF92C2E7.bin",
"bootloader": "2.7.6.1-030D_BOOTLOADER-LOW_02D204DF_DFE85BA3.bin",
"mainFirmware": "2.7.6.1-030D_MPACT-MB6000-01-WR_93A555A4_E07B0AE7.elf"
},
"receiverBroadcast": {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FB",
"interval": 150,
"broadcast": true,
"scanning": true,
"major": 950,
"minor": 0,
"minRssi": -90,
"channelMap": 2,
"bleTxPwrDB": -10
}
}
JSON Schema for Receiver Operations
Sample Receiver Filter Configuration With Aggregation Data Settings
{
"scanIntervalInMilliseconds": 500,
"wifiTransmissionInterval": 120,
"heartbeatIntervalInSeconds": 60,
"timePullIntervalInMinutes": 10,
"bleWatchDogInterval": 100,
"aggregationIntervalSecs": 10,
"sendBatteryDetails": true,
"wifiNetwork": {
"sendWifiDetails": true,
"wifiNetworkCheckFreqMins": 4
},
"reboot": {
"consecutiveHeartBeatFailures": 300,
"consecutiveReinitWifiFailures": 200
},
"beaconWhiteList": [{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FB",
"type": "mpact"
}, {
"uuid": "00001200-0000-1000-8000-00805F9B34FB",
"type": "ibeacon"
}, {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"type": "ibeacon"
},
{
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"type": "mpact"
}
],
"profiles": [{
"name": "Location Beacons",
"profileLow": 949,
"profileHigh": 952,
21
"beaconType": "Mobile",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"sendClosestOnly": false,
"suppressRepeats": false,
"aggStrongestPerBeacon": true,
"aggAveragePerBeacon": true,
"aggApplyIIRFilter": true,
"aggSecondStrongestPerBeacon": true
}]
}, {
"name": "Asset Beacons",
"profileLow": 65525,
"profileHigh": 65534,
"beaconType": "Fixed",
"proximityRanges": [{
"name": "Near",
"rssiLow": null,
"rssiHigh": null,
"beaconHitCount": 1,
"sendClosestOnly": false,
"suppressRepeats": true,
"aggStrongestPerBeacon": true,
"aggAveragePerBeacon": true,
"aggApplyIIRFilter": true,
"aggSecondStrongestPerBeacon": true
}]
}],
"serviceUrlsHostName": {
"timeService": "https://api.zebra.com/v2/devices/beacons/config/time",
"eventService": "https://api.zebra.com/v2/devices/beacons/event/",
"healthService": "https://api.zebra.com/v2/devices/beacons/health/",
"firmwareService": "http://api.zebra.com/v2/devices/beacons/config/firmware/"
},
"firmware": {
"downloadInSecond": "true",
"firmwareDownloadDebug": "true",
"gaugeFirmware": "2.7.6.1-030D_GAUGE-BT000311-01_9689CECC_47E8C45E.srec",
"bleFirmware": "2.7.6.1-030D_BLE-FIRMWARE_124D9AEC_7005FF34",
"wifiFirmware": "2.7.6.1-030D_WIFI-FW_B561BEFF_EF92C2E7.bin",
"bootloader": "2.7.6.1-030D_BOOTLOADER-LOW_02D204DF_DFE85BA3.bin",
"mainFirmware": "2.7.6.1-030D_MPACT-MB6000-01-WR_93A555A4_E07B0AE7.elf"
},
"receiverBroadcast": {
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938FB",
"interval": 150,
"broadcast": true,
"scanning": true,
"major": 950,
"minor": 0,
"minRssi": -90,
"channelMap": 2,
"bleTxPwrDB": -10
}
}
JSON Schema for Receiver Operations
22
JSON Schema for Receiver Operations
JSON Schema For Beacon Data Events
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A representation of beacon data posted by MPACT-MB6000 and MPACT-MB5000
receivers.",
"type": "object",
"title": "Array of beacons seen by receiver. These beacons have passed the filter
configuration.",
"properties": {
"beacons": {
"type": "array",
"required": ["mac", "uuid", "bl", "ts", "major", "minor", "rssi"],
"optional": ["rssiAt1m", "sbMAC","sbDT"],
"minItems": 1,
"maxItems": 300,
"items": {
"mac": {
"type": "string",
"description": "MAC address of beacon. Case insensitive. Requires colon or
hyphen.",
"minimum": 17,
"maximum": 17
},
"uuid": {
"type": "string",
"description": "UUID of beacon. Case insensitive. Requires hyphen as separator.",
"minimum": 36,
"maximum": 36
},
"bl": {
"type": "integer",
"description": "Battery level of the beacon. -1 for beacons whose battery level
cannot be determined",
"minimum": -1,
"maximum": 100
},
"ts": {
"type": "integer",
"description": "Epoch time in milliseconds of when the beacon was seen by receiver"
},
"major": {
"type": "integer",
"description": "Major number configured for the beacon. ",
"minimum": 0,
"maximum": 99999
},
"minor": {
"type": "integer",
"description": "Minor number configured for the beacon. ",
"minimum": 0,
"maximum": 99999
},
"rssiAt1m": {
"type": "integer",
"description": "RSSI at 1m of the beacon as seen by the receiver. ",
"minimum": -127,
"maximum": 0
},
"rssi": {
"type": "integer",
"description": "RSSI of the beacon as seen by the receiver. ",
"minimum": -127,
"maximum": 1
23
},
"sbDT": {
"type": "integer",
"description": "Age of the beacon seen by SuperBeacon in seconds. How long ago the
SuperBeacon saw the beacon. ",
"minimum": 0,
"maximum": 60000
},
"sbMAC": {
"type": "string",
"description": "MAC address of SuperBeacon. Case insensitive. Has colon.",
"minimum": 17,
"maximum": 17
}
}
},
"receiver": {
"type": "object",
"properties": {
"type": {
"description": "Receiver Type.",
"type": "string",
"minItems": 1,
"maxItems": 1,
"enum": [
"FR",
"MR",
"VMR"
]
},
"identity": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of receiver. Case insensitive. Requires colon or
hyphen.",
"minimum": 17,
"maximum": 17
},
"serial": {
"type": "string",
"description": "Serial number of the receiver.",
"minimum": 8,
"maximum": 64
}
},
"required": ["mac"],
"optional": ["serial"]
}
JSON Schema for Receiver Operations
},
"required": ["identity", "type"]
},
"superBeacons": {
"type": "array",
"required": ["sbVer", "sbBL", "sbTS", "sbRSSI", "sbMAC"],
"optional": ["sbRSSIAt1m"],
"minItems": 1,
"maxItems": 300,
"items": {
"sbVer": {
"type": "integer",
"description": "Version of SuperBeacon.",
"minimum": 1,
"maximum": 99
24
receiver"
}
JSON Schema for Receiver Operations
},
"sbBL": {
"type": "integer",
"description": "Battery level of the SuperBeacon.",
"minimum": -1,
"maximum": 100
},
"sbTS": {
"type": "integer",
"description": "Epoch time in milliseconds of when the SuperBeacon was seen by
},
"sbRSSIAt1m": {
"type": "integer",
"description": "RSSI at 1m of the SuperBeacon as seen by the receiver. ",
"minimum": -127,
"maximum": 0
},
"sbRSSI": {
"type": "integer",
"description": "RSSI of the SuperBeacon as seen by the receiver. ",
"minimum": -127,
"maximum": 0
},
"sbMAC": {
"type": "string",
"description": "MAC address of SuperBeacon. Case insensitive. Has colon.",
"minimum": 17,
"maximum": 17
}
}
},
"optional": ["beacons", "superBeacons"],
"required": ["receiver"]
}
Sample Beacon Data Events JSON For GE Mobile Receiver
(GE-MB6000)
{
"beacons": [{
"major": 1,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1544659234105,
"mac": "b0:b4:48:fe:a4:ef",
"rssi": -95,
"minor": 0
}, {
"major": 501,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ab",
"bl": -1,
"ts": 1544659235160,
"mac": "c4:be:84:d4:c7:09",
"rssi": -94,
"minor": 86
}, {
"major": 55318,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1544659235470,
25
JSON Schema for Receiver Operations
"mac": "c4:be:84:d8:16:04",
"rssi": -96,
"minor": 1100
}],
"receiver": {
"type": "MR",
"identity": {
"mac": "22:44:66:88:33:44"
}
}
}
Sample Beacon Data Events JSON For GE Fixed Receiver (GE-MB5000)
{
"beacons": [{
"major": 1,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 92,
"ts": 1553185941888,
"mac": "b0:b4:48:fe:a7:27",
"rssi": -81,
"minor": 0
}, {
"major": 1,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 92,
"ts": 1553185942461,
"mac": "b0:b4:48:fe:a7:27",
"rssi": -80,
"minor": 0
}, {
"major": 1,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 92,
"ts": 1553185942880,
"mac": "b0:b4:48:fe:a7:27",
"rssi": -81,
"minor": 0
}, {
"major": 103,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 37,
"ts": 1553185944119,
"mac": "b0:b4:48:fe:a6:54",
"rssi": -72,
"minor": 0
}, {
"major": 104,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 30,
"ts": 1553185944150,
"mac": "b0:b4:48:fe:95:e5",
"rssi": -69,
"minor": 0
}],
"receiver": {
"type": "FR",
"identity": {
"mac": "74:67:F7:50:00:03"
}
}
}
26
JSON Schema for Receiver Operations
Sample Beacon Data Events JSON For MPACT Fixed Receiver
(MPACT-MB5000)
{
"beacons": [{
"major": 2000,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1553186780298,
"mac": "b0:b4:48:fe:a4:80",
"rssi": -78,
"rssiAt1m": -53,
"minor": 88
}, {
"major": 1,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1553186780403,
"mac": "b0:b4:48:fe:a7:27",
"rssi": -84,
"rssiAt1m": -53,
"minor": 92
}, {
"major": 2501,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1553186780487,
"mac": "a0:e6:f8:6c:71:17",
"rssi": -77,
"rssiAt1m": -53,
"minor": 67
}, {
"major": 308,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ab",
"bl": -1,
"ts": 1553186780599,
"mac": "b0:b4:48:fe:a3:e2",
"rssi": -94,
"rssiAt1m": -60,
"minor": 85
}, {
"major": 128,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1553186781136,
"mac": "d0:5f:b8:19:c5:33",
"rssi": -74,
"rssiAt1m": -78,
"minor": 82
}, {
"major": 2500,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": -1,
"ts": 1553186782384,
"mac": "a0:e6:f8:6c:6f:5d",
"rssi": -78,
"rssiAt1m": -53,
"minor": 32
}],
"receiver": {
"type": "FR",
"identity": {
"mac": "74:67:F7:50:00:43"
}
}
}
27
JSON Schema for Receiver Operations
Sample Beacon Data Events JSON For Virtual Mobile Receiver (vMR
Android)
{
"beacons": [
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440800683
},
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440800772
},
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440800984
},
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440801150
},
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440801213
},
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440801294
28
JSON Schema for Receiver Operations
},
{
"mac": "b0:b4:48:fe:a7:2e",
"rssi": -45,
"major": 101,
"minor": 88,
"uuid": "fe913213-b311-4a42-8c16-47faeac938bb",
"bl": 88,
"rssiAt1m": -53,
"ts": 1569440801499
}
],
"receiver": {
"type": "vMR",
"identity": {
"uniqueID": "190515230E0089",
"androidID": "6d8dcccd7a63ce6a",
"serialNum": "190515230E0089"
},
"ts": 1569440798830
}
}
Sample Beacon Data Events JSON For Virtual Mobile Receiver (vMR
IOS)
{
"beacons": [{
"major": 128,
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"bl": -1,
"ts": 1569949048000,
"mac": "00:80:00",
"rssi": -72,
"minor": 16
}, {
"major": 1,
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"bl": -1,
"ts": 1569949048007,
"mac": "00:01:00",
"rssi": -78,
"minor": 81
}],
"receiver": {
"type": "vMR",
"identity": {
"iosID": "76E487C86D95A7",
"uniqueID": "76E487C86D95A7",
"serialNum": "0DCAA5AE-F0BF-4FA8-917B-27C480461630"
}
}
}
29
JSON Schema for Receiver Operations
Sample Beacon Data Events JSON For MPACT Receiver With
SuperBeacon Data
{
"beacons": [{
"major": 103,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 37,
"ts": 1560198831285,
"mac": "b0:b4:48:fe:a6:54",
"sbMAC": "a4:34:f1:9f:ef:49",
"rssi": -65,
"rssiAt1m": -61,
"minor": 0
}, {
"major": 103,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 37,
"ts": 1560198831392,
"mac": "b0:b4:48:fe:a6:54",
"sbMAC": "a0:e6:f8:31:28:55",
"rssi": -94,
"rssiAt1m": -61,
"minor": 0
}, {
"major": 103,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 37,
"ts": 1560198831393,
"mac": "b0:b4:48:fe:a6:54",
"rssi": -72,
"rssiAt1m": -61,
"minor": 0
}, {
"major": 128,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 71,
"ts": 1560198831429,
"mac": "d0:5f:b8:19:c5:33",
"rssi": -87,
"rssiAt1m": -78,
"minor": 0
}, {
"major": 103,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 37,
"ts": 1560198831439,
"mac": "b0:b4:48:fe:a6:54",
"sbMAC": "c4:be:84:d8:16:04",
"rssi": -74,
"rssiAt1m": -61,
"minor": 0
}, {
"major": 100,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 100,
"ts": 1560198831462,
"mac": "c4:be:84:46:19:6d",
"rssi": -68,
"rssiAt1m": -67,
"minor": 0
}, {
"major": 100,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
30
JSON Schema for Receiver Operations
"bl": 100,
"ts": 1560198831649,
"mac": "c4:be:84:46:19:6d",
"sbMAC": "c4:be:84:d8:16:04",
"rssi": -79,
"rssiAt1m": -67,
"minor": 0
}, {
"major": 128,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 71,
"ts": 1560198831649,
"mac": "d0:5f:b8:19:c5:33",
"sbMAC": "a4:34:f1:9f:ef:49",
"rssi": -81,
"rssiAt1m": -78,
"minor": 0
}, {
"major": 103,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 37,
"ts": 1560198831774,
"mac": "b0:b4:48:fe:a6:54",
"sbMAC": "a0:e6:f8:31:28:01",
"rssi": -83,
"rssiAt1m": -61,
"minor": 0
}, {
"major": 128,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 71,
"ts": 1560198832066,
"mac": "d0:5f:b8:19:c5:33",
"sbMAC": "c4:be:84:d8:16:04",
"rssi": -72,
"rssiAt1m": -78,
"minor": 0
}],
"superBeacons": [{
"sbVer": 1,
"sbBL": 93,
"sbTS": 1560198831177,
"sbRSSI": -63,
"sbMAC": "a0:e6:f8:31:28:55",
"sbRSSIAt1m": -50
}, {
"sbVer": 1,
"sbBL": 92,
"sbTS": 1560198831238,
"sbRSSI": -41,
"sbMAC": "c4:be:84:d8:16:04",
"sbRSSIAt1m": -50
}, {
"sbVer": 2,
"sbBL": 99,
"sbTS": 1560198831285,
"sbRSSI": -45,
"sbMAC": "a4:34:f1:9f:ef:49",
"sbRSSIAt1m": -50
}, {
"sbVer": 1,
"sbBL": 67,
"sbTS": 1560198831571,
"sbRSSI": -83,
"sbMAC": "a0:e6:f8:31:28:01",
"sbRSSIAt1m": -73
31
JSON Schema for Receiver Operations
}],
"receiver": {
"type": "FR",
"identity": {
"mac": "40:83:DE:D9:B0:61"
}
}
}
Sample Beacon Data Events JSON For MPACT Receiver With
SuperBeacon Data And Delay Time
{
"beacons": [{
"major": 116,
"uuid": "fe913213-b311-4a42-8c16-47faeac938db",
"bl": 35,
"ts": 1586278767383,
"mac": "b0:91:22:f0:44:46",
"rssi": -66,
"rssiAt1m": -86,
"minor": 0
}, {
"major": 12581,
"uuid": "fe913213-b311-4a42-8c16-47faeac938db",
"bl": -1,
"ts": 1586278767458,
"mac": "a0:e6:f8:31:25:1e",
"rssi": -62,
"rssiAt1m": -82,
"minor": 30
}, {
"major": 12581,
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"bl": -1,
"ts": 1586278769933,
"sbDT": 61,
"mac": "a0:e6:f8:31:25:1e",
"sbMAC": "a4:34:f1:9f:ee:37",
"rssi": -53,
"rssiAt1m": -82,
"minor": 30
}, {
"major": 116,
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938DB",
"bl": 35,
"ts": 1586278770908,
"sbDT": 62,
"mac": "b0:91:22:f0:44:46",
"sbMAC": "a4:34:f1:9f:ee:37",
"rssi": -75,
"rssiAt1m": -86,
"minor": 0
}],
"superBeacons": [{
"sbVer": 4,
"sbBL": 74,
"sbTS": 1586278769933,
"sbChnl": 38,
"sbRSSI": -40,
"sbMAC": "a4:34:f1:9f:ee:37",
"sbRSSIAt1m": -50
}],
32
JSON Schema for Receiver Operations
"receiver": {
"type": "FR",
"identity": {
"mac": "40:83:DE:D9:6A:69"
}
}
}
Sample Beacon Data Events JSON For VMR Android With
SuperBeacon Data
{
"beacons": [{
"major": 2002,
"uuid": "fe913213-b311-4a42-8c16-47faeac938db",
"bl": 61,
"ts": 1570123697584,
"mac": "a0:e6:f8:6c:70:62",
"sbMAC": "A4:34:F1:9F:EF:49",
"rssi": -84,
"rssiAt1m": -63,
"minor": 61
}, {
"major": 17,
"uuid": "aabbccdd-eeff-0011-2233-445566778899",
"bl": 0,
"ts": 1570123698232,
"mac": "99:ba:23:df:9b:e0",
"rssi": -76,
"rssiAt1m": -58,
"minor": 543
}, {
"major": 2000,
"uuid": "fe913213-b311-4a42-8c16-47faeac938db",
"bl": 79,
"ts": 1570123698410,
"mac": "b0:b4:48:fe:a4:80",
"sbMAC": "A4:34:F1:9F:EF:49",
"rssi": -78,
"rssiAt1m": -63,
"minor": 79
}, {
"major": 17,
"uuid": "aabbccdd-eeff-0011-2233-445566778899",
"bl": 0,
"ts": 1570123698436,
"mac": "99:ba:23:df:9b:e0",
"rssi": -76,
"rssiAt1m": -58,
"minor": 543
}, {
"major": 2500,
"uuid": "fe913213-b311-4a42-8c16-47faeac938ef",
"bl": 90,
"ts": 1570123698448,
"mac": "a0:e6:f8:6c:6f:5d",
"sbMAC": "A4:34:F1:9F:EF:5D",
"rssi": -84,
"rssiAt1m": -53,
"minor": 90
}, {
"major": 17,
"uuid": "aabbccdd-eeff-0011-2233-445566778899",
33
"bl": 0,
"ts": 1570123698645,
"mac": "99:ba:23:df:9b:e0",
"rssi": -76,
"rssiAt1m": -58,
"minor": 543
}, {
"major": 17,
"uuid": "aabbccdd-eeff-0011-2233-445566778899",
"bl": 0,
"ts": 1570123698850,
"mac": "99:ba:23:df:9b:e0",
"rssi": -76,
"rssiAt1m": -58,
"minor": 543
}, {
"major": 17,
"uuid": "aabbccdd-eeff-0011-2233-445566778899",
"bl": 0,
"ts": 1570123699261,
"mac": "99:ba:23:df:9b:e0",
"rssi": -76,
"rssiAt1m": -58,
"minor": 543
}, {
"major": 2454,
"uuid": "fe913213-b311-4a42-8c16-47faeac938db",
"bl": 86,
"ts": 1570123699439,
"mac": "b0:b4:48:fe:9d:1a",
"sbMAC": "A4:34:F1:9F:EF:49",
"rssi": -93,
"rssiAt1m": -72,
"minor": 342
}],
"superBeacon": [{
"sbBL": 83,
"sbVer": 3,
"sbTS": 1570123698057,
"sbRSSI": -48,
"sbMAC": "A4:34:F1:9F:EF:49",
"sbRSSIAt1m": -50
}, {
"sbBL": 83,
"sbVer": 3,
"sbTS": 1570123698065,
"sbRSSI": -69,
"sbMAC": "A4:34:F1:9F:EF:5D",
"sbRSSIAt1m": -50
}],
"receiver": {
"type": "vMR",
"identity": {
"serialNum": "17233522505922",
"uniqueID": "17233522505922",
"androidID": "7f33862a09de0680"
}
}
}
JSON Schema for Receiver Operations
34
JSON Schema for Receiver Operations
Sample Beacon Data Events JSON For VMR iOS With SuperBeacon
Data
{
"beacons": [{
"major": 400,
"uuid": "fe913213-b311-4a42-8c16-47faeac938be",
"bl": 90,
"ts": 1569948256772,
"mac": "a0:e6:f8:79:87:6c",
"sbPeripheralID": "454A8832-8F2C-35DC-6ABC-7EEDAD4FB58D",
"rssi": -83,
"rssiAt1m": -73,
"minor": 90
}, {
"major": 128,
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"bl": -1,
"ts": 1569948256877,
"mac": "00:80:00",
"rssi": -91,
"minor": 16
}, {
"major": 1,
"uuid": "FE913213-B311-4A42-8C16-47FAEAC938EF",
"bl": -1,
"ts": 1569948256881,
"mac": "00:01:00",
"rssi": -85,
"minor": 81
}],
"superBeacon": [{
"sbVer": 3,
"sbBL": 83,
"sbTS": 1569948259218,
"sbRSSI": -89,
"sbRSSIAt1m": -50,
"sbPeripheralID": "454A8832-8F2C-35DC-6ABC-7EEDAD4FB58D"
}],
"receiver": {
"type": "vMR",
"identity": {
"iosID": "76E487C86D95A7",
"uniqueID": "76E487C86D95A7",
"serialNum": "0D58C9F8-4DA8-45D8-9E3A-208A5C23E6C5"
}
}
}
35
JSON Schema for Receiver Operations
JSON Schema For Health Events
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A representation of receiver health data posted by MPACT-MB6000 and
MPACT-MB5000 receivers.",
"type": "object",
"title": "Health data in JSON format posted to server",
"properties": {
"timestamp": {
"type": "integer",
"description": "Epoch time in milliseconds of when the beacon was seen by receiver"
},
"receiver": {
"type": "object",
"properties": {
"type": {
"description": "Receiver Type.",
"type": "string",
"minItems": 1,
"maxItems": 1,
"enum": [
"FR",
"MR",
"VMR"
]
},
"identity": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of receiver. Case insensitive. Requires colon
or hyphen.",
"minimum": 17,
"maximum": 17
},
"serial": {
"type": "string",
"description": "Serial number of the receiver.",
"minimum": 8,
"maximum": 64
}
},
"required": ["mac"],
"optional": ["serial"]
}
},
"required": ["identity", "type"]
},
"firmware": {
"description": "Firmware file name installed in receiver",
"type": "string"
},
"rcVersion": {
"description": "Version of Receiver Configuration",
"type": "string",
"minimum": 1,
"maximum": 32
},
"temperature": {
"description": "Temperature of the battery",
36
JSON Schema for Receiver Operations
"type": "numeric"
},
"depthOfDischarge": {
"description": "Remaining battery charge",
"type": "numeric"
},
"type": {
"type": "string",
"minItems": 1,
"maxItems": 1,
"enum": [
"HeartBeat",
"WiFi.Reconnect",
"Reboot.Forced",
"Reboot.Unforced",
"Charge.On",
"Charge.Off",
"Internal"
]
},
"details": {
"description": "Additional details about health event",
"type": "object",
"properties": {
"onCradle": {
"description": "A boolean value of true indicates that the unit is on charger
cradle. It is false otherwise.",
"type": "boolean"
},
"charging": {
"description": "A boolean value of true indicates that the unit is being charged.
It is false otherwise.",
"type": "boolean"
},
"msg": {
"description": "Description of event.",
"type": "string"
},
"bootCode": {
"description": "Description of event.",
"type": "integer"
},
"required": ["bootCode"],
"optional": ["onCradle", "charging", "msg"]
}
}
},
"required": ["timestamp", "firmware", "type", "receiver"],
"optional": ["details", "depthOfDischarge", "temperature", "rcVersion"]
}
37
JSON Schema for Receiver Operations
Fixed Receiver Sample Health Heartbeat JSON
{
"receiver": {
"type": "FR",
"identity": {
"mac": "74:67:F7:50:00:03"
}
},
"type": "HeartBeat",
"timestamp": 1544660018103,
"firmware": "2.7.4.1-001R_GE-MB5000-01-WR.bin"
}
Mobile Receiver Sample Health Heartbeat JSON
{
"receiver": {
"type": "MR",
"identity": {
"mac": "22:44:66:88:33:44"
}
},
"type": "HeartBeat",
"timestamp": 1544649033881,
"depthOfDischarge": 63,
"temperature": 29.450006,
"details": {
"onCradle": true,
"charging": true
},
"firmware": "2.7.4.1-001R_GE-MB6000-01-WR.bin"
}
Mobile Receiver Sample Health Heartbeat JSON With Version
{
"rcVersion": "a123456789012345678901234567890b",
"temperature": 31.749994,
"depthOfDischarge": 99,
"timestamp": 1589826478270,
"firmware": "2.7.6.1-040D_MPACT-MB6000-01-WR.bin",
"details": {
"onCradle": true,
"charging": false
},
"receiver": {
"type": "MR",
"identity": {
"mac": "40:83:DE:D9:B6:1F"
}
},
"type": "HeartBeat"
}
38
JSON Schema for Receiver Operations
Mobile Receiver Sample Health Heartbeat JSON With WIFI Details
{
"rcVersion": "a1234567890",
"firmware": "2.7.6.1-054D_MPACT-MB6000-01-WR.bin",
"temperature": 31.35,
"depthOfDischarge": 78,
"timestamp": 1593104326444,
"wifi": {
"rssi": -39,
"noise": -84,
"snr": 28,
"apbssid": "60:38:E0:03:0D:1A",
"chnl": 40
},
"details": {
"onCradle": false,
"charging": false
},
"receiver": {
"type": "MR",
"identity": {
"mac": "40:83:DE:D9:B6:1F"
}
},
"type": "HeartBeat"
}
Mobile Receiver Sample Health Heartbeat JSON With Battery Details
{
"rcVersion": "a1234567890",
"firmware": "2.7.6.1-054D_MPACT-MB6000-01-WR.bin",
"temperature": 31.35,
"depthOfDischarge": 78,
"timestamp": 1593104326444,
"battery": {
"batteryStatus": 192,
"designCap": 960,
"maxLoadCurrent": -500,
"cycleCount": 4,
"temperature": 31.35,
"RSOC": 78,
"standbyCurrent": 0,
"chargeVoltage": 0,
"internalTemp": 31.35,
"remainCap": 640,
"current": -78,
"fullCap": 824,
"avgPower": -31,
"voltage": 3914,
"stateOfHealth": 87,
"atRate": 0,
"chargeCurrent": 0,
"avgCurrent": -79
},
"details": {
"onCradle": false,
"charging": false
},
"receiver": {
39
JSON Schema for Receiver Operations
"type": "MR",
"identity": {
"mac": "40:83:DE:D9:B6:1F"
}
},
"type": "HeartBeat"
}
VMR Android Heartbeat JSON
{
"temperature": 0,
"depthOfDischarge": 92,
"timestamp": 1570122440403,
"firmware": "mvr_1.0",
"details": {
"onCradle": "true",
"charging": "true"
},
"receiver": {
"type": "vMR",
"identity": {
"serialNum": "17233522505922",
"uniqueID": "17233522505922",
"androidID": "7f33862a09de0680"
}
},
"type": "HeartBeat"
}
VMR IOS Heartbeat JSON
{
"temperature": 0,
"depthOfDischarge": 100,
"timestamp": 1569948674803,
"firmware": "mvr_1.0",
"details": {
"onCradle": "true",
"charging": "Unknown"
},
"receiver": {
"type": "vMR",
"identity": {
"iosID": "76E487C86D95A7",
"uniqueID": "76E487C86D95A7",
"serialNum": "0D58C9F8-4DA8-45D8-9E3A-208A5C23E6C5"
}
},
"type": "HeartBeat"
}
JSON Schema For Time Request Response For Servers
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A representation of current time response sent by server.",
"type": "object",
"title": "Time response schema to be used by server.",
40
JSON Schema for Receiver Operations
"properties": {
"time": {
"type": "integer",
"description": "The UTC time in milliseconds since Unix epoch. (Jan 1, 1970) "
}
},
"required": ["time"]
}
Sample Response For Time Request
{
"time": 1530121546388
}
41
www.zebra.com