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
":"free
" 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.

...

Template Body: 

{
,
  
"message_type": "heartbeat",

  "message_trace_id":
"5443685e-e8d9-410f-bcee-d2d82c2e8473
 "{message_trace_id}",
  
"parking_session_iterator": 
5
{parsed["parking_session_iterator"]},
  "occupied": "{"occupied
":
" if parsed["occupation_status"] is True else "free"}",
  "heartbeat_message_counter": {parsed["heartbeat_message_counter"
: 2,
]}
}
Code Block
languagejson
{
  "message_type": "heartbeat",
  "message_trace_id": "{message_trace_id}",
  "parking_session_iterator": {parsed["parking_session_iterator"]},
  "occupied": "{"occupied" if parsed["occupation_status"] is True else "free"}",
  "heartbeat_message_counter": {heartbeat_message_counter},
  "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":"heartbeat",
   "message_trace_id

...

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

...

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

...

": 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)

...

Method: PUT/POST

Template Body:

Code Block
languagejson
{
  "message_type": "user_registration",
  "occupied": "{"occupied" if parsed["occupation_status"] is True else "free"}",
  "auth_ble_tag": {
    "tag_id": "string",
    "event_time": "string" #message_time or received_time
  },
  "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
  • 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);

Expand
titleDevice Info
  • device_id - device id hexadecimal

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

...

titleTemplate body

...

languagejson

...


 

...

 

...

}

...

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

Expand
titleExample Message
Code Block
languagejson
{
   "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_idparsed["parking_session_iterator"]},
   "occupied":"occupied",
   "custom"auth_ble_tag":{
      "tag_id":"1A2B3C4D",
      "{custom_id}event_time":"2021-02-26T18:06:14.000+00:00"
   }
}
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 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.