Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.

...

Template Body: 

{
,
  
"message_type": "status_change",
  
"message_trace_id":
"5443685e-e8d9-410f-bcee-d2d82c2e8473
 "{message_trace_id}",
  "occupied": "{"occupied
":
" if parsed["occupation_status"] is True else "free"}",
  "parking_session_iterator": {parsed["parking_session_iterator"
:5
]},
  "previous_status_duration_min": {parsed["previous_occupancy_status_duration_min"
:16,
]}
}
Code Block
languagejson
{
  "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"]},
  "device_id": "{device_id}",
  "position":{
      "network_id": "{network_id}",
      "custom_id": "{custom_id}",
      "latitude": {latitude},
      "longitude": {longitude},
      "group_inner_id": {group_inner_id},
      "group":{
          "id": {group_id},
          "name": "{group_name}",
          "zone_id": {zone_id}
      }
  }
}
Expand
titleExample Message
Code Block
languagejson
Expand
titleExample Message
Code Block
languagejson
{
   "device_id":"1E554",
   "position":{
      "network_id":"00000000-0000-0000-0000-00000001e554",
      "custom_id":"",
      "latitude":51.49442797732277,
      "longitude":-0.1280093119192549,
      "group_inner_id":1,
      "group":{
         "id":4121,
         "name":"Test Group Delete After 26/02/2021",
         "zone_id":2779
      }
   }
},
   "message_type":"status_change",
   "message_trace_id

...

":"5443685e-e8d9-410f-bcee-d2d82c2e8473",
   "occupied"

...

:"free"

...

,
   "parking_session_iterator

...

":5,
   "previous_status_duration_min

...

":16
}

Expand
titleDevice Info
  • device_id - device id hexadecimal

  • position

    • network_id - parking space network address;

    • custom_id - a property "custom_id" of a position;

    • latitude, longitude - GPS coordinates;

    • group_inner_id - a device number inside of a parking bay;

    • group

      • id - id of a parking bay;

      • name - name of a position’s group;

      • zone_id - id of a group’s zone.

  • 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 (number) is incrementing when new parking session starts (0-7);

  • 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: 

Code Block
languagejson
{
  "timestampdevice_id": "2019-10-01T18:59:11.254Z",{device_id}",
  "position":{
      "messagenetwork_typeid": "heartbeat{network_id}",
      "messagecustom_trace_id": "6c53ce93-27b3-40e4-b012-e4c3d3aea651{custom_id}",
      "messagelatitude": {latitude},
 {     "position_network_id longitude": "6eb6d7d6-e486-45ff-a801-058765e2522a",{longitude},
      "heartbeatgroup_inner_numberid": 3{group_inner_id},
      "statusgroup":{
          "free"id": {group_id},
    "session_iterator      "name": 1"{group_name}",
  },        "locationzone_id": {zone_id}
   {   }
  "latitude},
  "message_type": -12.2334134"heartbeat",
  "message_trace_id": "{message_trace_id}",
  "longitudeparking_session_iterator": 53.743789{parsed["parking_session_iterator"]},
  "occupied": "{"occupied" if "level": 3
   },parsed["occupation_status"] is True else "free"}",
  "heartbeat_message_counter": {parsed["heartbeat_message_counter"]}
}
position
Expand
titleExample Message
Expand
title
Code Block
languagejson
{
   "
grouping
device_id": "1E554",
   "position":{
      "
zone
network_id":
632,
"00000000-0000-0000-0000-00000001e554",
      "
group
custom_id":"",
10365,
      "
group_name
latitude":
"Position group name"
51.49442797732277,
      "longitude":-0.1280093119192549,
      "group_inner_id":
16
1,
      "group":{
         "id":4121,
         "name":"Test Group",
         "
custom
zone_id":2779
"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);

  • status - parking occupancy status ("occupied" or "free");

  • session_iterator - short number of parking session. Iterator is incrementing when parking session starts (0-7);

   }
   "message_type":"heartbeat",
   "message_trace_id":"5443685e-e8d9-410f-bcee-d2d82c2e8473",
   "parking_session_iterator": 5,
   "occupied": "free",
   "heartbeat_message_counter": 2
}
Expand
titleDevice Info
  • device_id - device id hexadecimal

  • position

    • network_id - parking space network address;

    • custom_id - a property "custom_id" of a position;

    • latitude, longitude - GPS coordinates;

    • group_inner_id - a device number inside of a parking bay;

    • group

      • id - id of a parking bay;

      • name - name of a position’s group;

      • zone_id - id of a group’s zone.

  • 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:

Code Block
languagejson

...

{
  "

...

device_id": "{

...

device_id}",
  "

...

position":

...

{
      "

...

network_

...

id": "{

...

network_

...

id}",
  

...

   

...

 

...

"

...

custom_id": "{

...

custom_id}",
      "

...

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"]}",
    

...

"

...

event_

...

time": "{

...

iso8601(message_time)}"
  

...

}
}

User Registration (SDI Tag)

The message is sent to inform that a user has checked using an SDI tag.

Method: PUT/POST

Body:

...

Expand
titleExample Message
Code Block
languagejson
{
   "

...

device_id":

...

"1E554",
   "

...

position":

...

{
      "

...

network_id":

...

"

...

00000000-

...

0000-

...

0000-

...

0000-

...

00000001e554",
  

...

   

...

 

...

"custom_id":

...

"

...

",
      "

...

latitude":

...

51.49442797732277,
      "

...

longitude":

...

-0.1280093119192549,
      "

...

group_inner_

...

id":

...

1,
   

...

   "

...

group":{
   

...

      "

...

id":

...

4121,
         "

...

name":

...

"Test Group Delete After 26/02/2021",
  

...

 

...

    

...

  

...

"

...

zone_id":2779
   

...

   }
   },
   "

...

message_

...

type":

...

"user_registration",
   

...

"

...

message_trace_id":

...

"7d611a3f-f2a3-4653-b70a-7e3f07e5987f",
   "

...

parking_session_

...

iterator": 

...

{parsed["parking_session_iterator"]},
   "occupied":"occupied",
   

...

"

...

auth_

...

ble_

...

tag":{

...

      "

...

tag_id":

...

"1A2B3C4D"

...

,

...

 

...

    

...

 

...

  • message_trace_id - system message-id;

  • position_network_id - parking space network address;

  • new_status - parking occupancy status ("occupied" or "free");

  • sdi_tag_id - an ID of Bluetooth tag which was used for authorization;

  • session_iterator - short serial number of parking session. Iterator (number) is incrementing when new parking session starts (0-7);

...

"event_time":"2021-02-26T18:06:14.000+00:00"
   }
}
{ "timestamp": "{iso8601(message_time)}", "message_type": "status_сhange", "
Expand
titleDevice Info
  • device_id - device id hexadecimal

  • position

    • network_id - parking space network address;

    • custom_id - a property "custom_id" of a position;

    • latitude, longitude - GPS coordinates;

    • group_inner_id - a device number inside of a parking bay;

    • group

      • id - id of a parking bay;

      • name - name of a position’s group;

      • zone_id - id of a group’s zone.

Expand
titleTemplate body
Code Block
languagejson

  • 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

    • tag_id - an ID of Bluetooth tag which was used for authorization;

    • event_time - message reception time.