Skip to main content
Skip table of contents

JSON data format in AppLink

The Navixy AppLink, like the DeviceLink, uses the JSON (JavaScript Object Notation) data format to structure and encode the IoT data for transmission to the applications. This ensures a consistent, readable, and easy-to-parse format, irrespective of the data's source or its intended application.

The Gateway, upon receiving data from the devices, structures it into JSON objects, encoded as UTF-8 text strings for consistency and wide compatibility. Each data message is a single JSON object, which represents a specific data record from a device, comprising numerous data fields that can vary depending on the device type and data being transmitted.

AppLink takes this a step further by allowing for customizable schemas. This means that developers or users could specify the structure and naming conventions of the JSON objects based on their specific application's requirements. This way, the data arriving at each application is already in a format that is convenient and optimized for that application, reducing the need for additional data processing on the application side.

Each message from the Navixy AppLink output stream is structured into grouped parameters to enhance application development convenience. These parameters are organized into five main categories: Location, Network, Device, Telemetry, and Logic.

Group of parameters

Description

location

The group contains parameters related to geographical data, like GPS coordinates, speed, and direction

network

The group includes parameters concerning network status, such as cellular signal strength, carrier information, etc

device

The group houses parameters specific to the device's state and characteristics, like device ID, firmware version, battery level, and others

telemetry

The group covers parameters regarding sensor data, for instance, temperature, humidity, and pressure readings

logic

The group contains computed or derived parameters based on the raw data received, like calculated travel distance or detected events (movement, geofence breach, etc.).

These categorizations, however, are not mandatory. Parameters that do not fit within these predefined categories are included in an Uncategorized group. This approach ensures all data, regardless of its nature, is included and available for application use.

Here is an example of a simple JSON object:

CODE
{
  "device": {
    "id": "123",
    "name": "Device 1",
    "type": "GPS Tracker"
  },
  "location": {
    "latitude": 40.712776,
    "longitude": -74.005974
  },
  "network": {
    "signal_strength": -75
  },
  "telemetry": {
    "speed": 60,
    "direction": 180
  }
}

In this example:

  • The device field gives information about the device, including its id, name, and type.

  • The location field gives the geographical coordinates of the device, including latitude and longitude.

  • The network field contains network related parameters like signal_strength.

  • The telemetry field contains data about the device's speed and direction.

These are basic examples, and actual data fields will depend on the specific device and its capabilities.

In the 'logic' group the are two types of events can be mentioned:

  1. Edge logic: This refers to events or data processing tasks that are performed on the device itself. Edge logic can be useful for reducing network bandwidth by processing data on the device and only transmitting the results. It can also provide faster response times for critical applications where data processing latency is a concern.

  2. Gateway logic: This refers to events or data processing tasks that are performed within the Navixy IoT Gateway. This kind of logic is often used to perform more complex or resource-intensive tasks that may not be feasible on the device itself. It can also be used to perform additional data manipulations, apply conditional logic, aggregate data from multiple devices, or integrate with other systems.

Therefore, the 'logic' category in the JSON structure can contain events that were detected either by the device (edge) logic or by the gateway (server-side) logic. Here is how it could look in the JSON structure:

CODE
{
  ...
  "logic": {
    "edge": {
      "ignition": true,
      "movement": true
    },
    "gateway": {
      "excessive_speed": true,
      "seatbelt_fastened": false
    }
  }
}

In this example:

  • The edge field contains events detected by the device's own logic, such as ignition and movement.

  • The gateway field contains events detected or conditions evaluated by the Navixy IoT Gateway's server-side logic, such as in_geofence and excessive_speed.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.