The document describes methods and data formats used by Nwave's cloud-based API broker to relay preprocessed pre-processed smart parking sensor events to the client's endpoints. The data can be passed with or without authorization.
...
Event of sensor occupancy status change. Occupation detection time is 5-7 seconds and vacation detection time is 3-5 seconds.
Method: POST
Template Body:
Code Block |
---|
|
{
"timestamp": "2019-10-01T18:59:11.254Z",
"message_typedevice_id": "status_сhange",
"message_trace_id": "6c53ce93-27b3-40e4-b012-e4c3d3aea651"{device_id}",
"messageposition":
{
{ "position_network_id": "6eb6d7d6-e486-45ff-a801-058765e2522a{network_id}",
"newcustom_statusid": "occupied{custom_id}",
"previous_status_duration_min":36,
"previous_status_duration_error_min "latitude": 1{latitude},
"session_iteratorlongitude": 1
{longitude},
"location": {
"latitude": -12.2334134,"group_inner_id": {group_inner_id},
"longitudegroup":{
53.743789, "level": 3 },
"groupingid":
{
"zonegroup_id": 632},
"group_id": 10365, "group_name": "Position {group _name}",
"group_inner_id": 16, "customzone_id": "Position custom ID" {zone_id}
}
} |
message_trace_id - system message-id;
position_network_id - parking space network address;
new_status - parking occupancy status ("occupied" or "free");
previous_status_duration_min - duration of previous sensor status;
previous_status_duration_error_min - calculation error of the previous status duration;
session_iterator - short serial number of parking session. Iterator (number) is incrementing when new parking session starts (0-7);
latitude, longitude - GPS coordinates;
level - used for multi-level parking (0 for ground level parking);
zone_id - id of a device zone;
group_id - id of a parking bay;
group_name - name of a position group;
group_inner_id - a device number inside of a parking bay;
custom_id - a property "custom_id" of a position.
Expand |
---|
|
Code Block |
---|
|
|
{
},
"message_type": "status_change",
"message_trace_id": "{message_trace_id}",
"occupied": "{"occupied" if parsed["occupation_status"] is True else "free"}",
,
"parking_session_iterator": {parsed["parking_session_iterator"]},
"previous_status_duration_min": {parsed["previous_occupancy_status_duration_min"]}
,
"voltage_V": float,
}
Expand |
---|
|
Code Block |
---|
| {
"device_id": "string1E554",
"position":{
"network_id": "{network_id}"00000000-0000-0000-0000-00000001e554",
"custom_id": "{custom_id}",
"latitude": {latitude}51.49442797732277,
"longitude": {longitude}-0.1280093119192549,
"group_inner_id": {group_inner_id}1,
"group":{
"id": {group_id}4121,
"name":"Test Group Delete"{group_name}",
"zone_id": {zone_id},
2779
"custom_id": "{group_custom_id}"
}
} |
|
Heartbeat
The message is sent to confirm the health status of a sensor every 3 hours in case of unchanged occupancy status.
Method: PUT/POST
Body:
...
Code Block |
---|
{"timestamp":2019-10-01T18:59:11.254Z",
" heartbeatstatus_change",
"message_trace_id": | 6c53ce9327b340e4b012e4c3d3aea651"message":
{ "position_network_id "6eb6d7d6-e486-45ff-a801-058765e2522a heartbeat_number": 3,
"status": "free",
"parking_session_iterator": | 1
}, "location":
{
"latitude": -12.2334134,
"longitude": 53.743789,
"level": 3
},
"grouping":
{
"zone_id": 632,
"group_id": 10365,
"group_name": "Position group name",
"group_inner_id": 16,
"custom_id": "Position custom ID"
}
} |
...
message_trace_id - system message-id;
...
position_network_id - parking space network address;
...
heartbeat_number - the value increases for every following heartbeat during single occupancy state (0-11);
"previous_status_duration_min":16
} |
|
...
message_type - message type;
message_trace_id - system message-id;
occupied - parking occupancy status ("occupied" or "free");
parking_session_iterator - short serial number of parking session. Iterator is Iterator (number) is incrementing when new parking session starts (0-7);
latitude, longitude - GPS coordinates;
level - used for multi-level parking (0 for ground level parking);
zone_id - id of a device zone;
group_id - id of a parking bay;
group_name - name of a position group;
group_inner_id - a device number inside of a parking bay;
custom_id - a property "custom_id" of a position.
...
previous_status_duration_min - duration of previous sensor status;
Heartbeat
The message is sent to confirm the health status of a sensor every 3 hours in case of unchanged occupancy status.
Method: PUT/POST
Template Body:
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
trace_id}",
"parking_session_iterator": {parsed["parking_session_iterator"]},
" |
...
...
...
User Registration (SDI Tag)
The message is sent to inform that a user has checked using an SDI tag.
Method: PUT/POST
Body:
Code Block |
---|
{
"timestamp": "2019-10-01T18:59:11.254Zparsed["occupation_status"] is True else "free"}",
"heartbeat_message_typecounter": "status_сhange",{parsed["heartbeat_message_counter"]}
} |
Expand |
---|
|
message_trace6c53ce93-27b3-40e4-b012-e4c3d3aea651message{ position_ 6eb6d7d6e48645ffa801058765e2522asdi_tag occupied"previous_status_duration_min":36 "latitude":51.49442797732277,
" | session_iteratorlongitude":-0.1280093119192549,
| 1}, location{"latitude":-12.2334134,longitude 53.743789"level":3 },
"grouping{ 632,groupid 10365 groupname "Position group name"5443685e-e8d9-410f-bcee-d2d82c2e8473",
| groupinnerid16 custom_idPositioncustomID" "heartbeat_message_counter": 2
} |
} |
...
...
...
...
...
...
sdi_tag_id - an ID of Bluetooth tag which was used for authorization;
...
...
level - used for multi-level parking (0 for ground level parking);
...
...
...
...
...
...
group_inner_id - a device number inside of a parking bay;
...
custom_id - a property "custom_id" of a position.
message_type - message type;
message_trace_id - system message-id;
parking_session_iterator - short number of parking session. Iterator is incrementing when parking session starts (0-7);
occupied - parking occupancy status ("occupied" or "free");
heartbeat_message_counter - the value increases for every following heartbeat during single occupancy state (0-11);
User Registration (SDI Tag)
The message is sent to inform that a user has checked using an SDI tag.
Method: PUT/POST
Template Body:
...
...
device_id}",
"position":{
" |
...
...
...
...
...
...
...
...
latitude": {latitude},
"longitude": {longitude},
|
...
"group_inner_id": {group_inner_id},
"group":{
"id": {group_id},
"name": "{group_name}",
"zone_id": {zone_id}
}
},
"message_type": "user_registration",
"message_trace_id": "{message_trace_id}",
"occupied": "{"occupied" if parsed["occupation_status"] is True else "free"}",
"auth_ble_tag": {
" |
...
tag_id": "{parsed["user_ID"]}", |
...
...
...
...
"{iso8601(message_time)}"
}
} |
Expand |
---|
|
Code Block |
---|
| {
}"device_id":"1E554",
"locationposition":{
{ "network_id":"00000000-0000-0000-0000-00000001e554",
"latitudecustom_id": {latitude}"",
"latitude":51.49442797732277,
"longitude": {longitude}-0.1280093119192549,
"group_inner_id":1,
"levelgroup":{
{level} }, "groupingid":4121,
{ "zone_idname": {zone_id},"Test Group Delete After 26/02/2021",
"groupzone_id": {group_id},2779
}
},
"groupmessage_nametype": "{groupuser_name}registration",
"message_trace_id":"7d611a3f-f2a3-4653-b70a-7e3f07e5987f",
"groupparking_innersession_iditerator": {group_inner_id}parsed["parking_session_iterator"]},
"occupied":"occupied",
"auth_ble_tag":{
"customtag_id":"1A2B3C4D",
"{custom_id} "event_time":"2021-02-26T18:06:14.000+00:00"
}
} |
|
message_type - message type;
message_trace_id - system message-id;
parking_session_iterator - short serial number of parking session. Iterator (number) is incrementing when new parking session starts (0-7);
occupied- parking occupancy status ("occupied" or "free");
auth_ble_tag