Skip to content

ExoSense Data Types

Introduction

This document defines the data types and units supported by the ExoSense™️ solution and related technologies used by developers interfacing edge IoT devices, third-party data, and custom insight transforms and rules.

Device Channel to Asset Signal interface information can be found here: ExoSense™️ Channel and Signal Data Schema

Definitions

The reader of this document should have a grasp on the following items or will need to for this document to make sense.

Term Description More Information
Device/Gateway An electronic device with an IP Connection sending data to a platform. In this case is interfacing with directly connected sensors, custom protocol connected sensors, or fieldbus connected equipment
Sensors Physical sensors connected to a Device/Gateway via wired or wireless protocol or IO (onboard). Sensors are typically specific to a unit of measure - e.g. temperature, pressure, etc.
Channel An ExoSense concept to identify an individual stream of information sent to ExoSense by an unique device that is specific to a type and with a specific unit of measure from that local physical environment (e.g. Temperature or Valve 1 status). Can also be information such as memory on the device, status information, etc. Typically a device is sending many channels of data for all of the sensors that are connected.
Signal An ExoSense concept similar to channel but is the part of a virtual Asset object that describes and stores the data. Signals can be transformed, exported, visualized, and have rules ran on them. The source for a signal is typically a device channel but doesn't have to be. The signal essentially subscribes to it's source.
Asset An ExoSense concept for digitizing an Asset or Digital Twin (a machine, system, equipment, etc)

Data Type Definition

Each channel requires to be set as a specific type which should be the source of truth and therefore allows for allowing down-stream support for conversions, visualizations, etc that can be trusted. In the ExoSense application, Asset Signals inherit type/unit from the channel. Type and units should not be changed for a channel/signal once created, instead a new channel or signal should be created to handle the change.

The section below details the "type" categories supported, the specific types under each category, and the unit options for each type.

There are two type categories for Data Types:

  • Generic Types: Typically unit less or if a unit is provided, is a description rather than physically measured. Examples include Number, String, JSON, etc.
  • Unit Originated Types: Physically measurable types of data that include a unit of measure (UOM). Examples include temperature, electrical current, memory, etc.

Type Primitives

Each data type falls into one of the supported Primitive formats: NUMERIC, STRING, JSON, BOOLEAN.

These are used to describe the format of the data and allows visualizations, Insight functions (transforms, rules, etc) to accept multiple data types based on the same primitive (e.g. NUMERIC) format. The primitive format category is the actual underlying encoding / format used for values of that data type.

The primitive for a channel is derived from it's data type

Value Formats

Numeric Value Size and Format

Number values (any data type of Numeric primitive) are stored and processed in IEEE Double format. Numbers sent above 17 digits (52 bits) can not be stored exact and are treated as a floating point value which will be stored and visualized as a rounded number. For more information on this topic: https://en.wikipedia.org/wiki/IEEE_754

String and JSON Value Size and Format

Strings and JSON values must be less then 2 KB size. JSON values must be condensed.

Generic Data Types

The generic types are used for data that may not have units, anything that is dimensionless, or no supported unit types exist. Includes numeric, string, and structured data generic types. Generic types do not support a measurable unit and therefore standard unit conversions are not supported in the application for generic data types.

String (unit-less)

Key (data_type): STRING
Accepted Units (data_unit): Not Used
Primitive Format: STRING
UI Unit Abbreviation: na
Notes: Any string

Example String Channel

{
  "channels": {
    "005": {
      "display_name": "Machine Status",
      "description": "Device reported status",
      "properties": {
        "data_type": "STRING"
      },
      "protocol_config": {
        "report_rate": 60000,
        "timeout": 360000
      }
    }
  }
}

Example String Channel Data (data_in) Packet

{
  "005":"Good"
}

JSON (unit-less)

Key (data_type): JSON
Accepted Units (data_unit): Not Used
Primitive Format: JSON
UI Unit Abbreviation: na
Notes: Any JSON blob

Example JSON Channel

{
  "channels": {
    "017": {
      "display_name": "Machine Stats",
      "description": "Device reported stats",
      "properties": {
        "data_type": "JSON"
      },
      "protocol_config": {
        "report_rate": 60000,
        "timeout": 360000
      }
    }
  }
}

Example JSON Channel Data (data_in) Packet

{
  "017":{"network_errors":0,"RAM":"45 MB"}
}

Example JSON Signal type value that the JSON Table Panel will display

{
  "017":{
    "values" :
    [
      ["stat 1", 23, "ok", 542.32],
      ["stat 2", 103, "warning", 323.99],
      ["stat 3", 0.32, "nothing to see here", 100.81]
    ]
  }
}

Number (unit-less)

Key (data_type): NUMBER
Accepted Units (data_unit): Not Used
Primitive Format: NUMERIC
UI Unit Abbreviation: na
Notes: Any Real Number

Example Number Channel

{
  "channels": {
    "134": {
      "display_name": "Pulses Counted",
      "description": "Times a pulse was counted in given time frame",
      "properties": {
        "data_type": "NUMBER"
      },
      "protocol_config": {
        "sample_rate": 10,
        "report_rate": 5000,
        "timeout": 60000
      }
    }
  }
}

Example Number Channel Data (data_in) Packet

{
  "134":43
}

BOOLEAN (unit-less)

Key (data_type): BOOLEAN
Accepted Units (data_unit): Not Used
Primitive Format: BOOLEAN
UI Unit Abbreviation: na
Notes:

  • True ("Truthy") accepted values: true, "on", 1, "yes", any number that is not 0
  • False ("Falsy") accepted values: false, "off", 0, "no"
  • All values will be converted to true and false at ingestion in ExoSense for use by transform insights, rules, and UI panels.

Example Boolean Channel Configuration

{
  "channels": {
    "023": {
      "display_name": "Valve 1 Open",
      "description": "Machine Valve 1 Open State Information",
      "properties": {
        "data_type": "BOOLEAN"
      },
      "protocol_config": {
        "sample_rate": 5000,
        "report_rate": 5000,
        "timeout": 60000
      }
    },
    "025": {
      "display_name": "Valve 2 Open",
      "description": "Machine Valve 2 Open State Information",
      "properties": {
        "data_type": "BOOLEAN"
      },
      "protocol_config": {
        "sample_rate": 5000,
        "report_rate": 5000,
        "timeout": 60000
      }
    }
  }
}

Example Boolean Channel Data (data_in) Packet

{
  "023":true,
  "025":0
}

Note: Generic types without accepted unit types will not be able to take advantage of unit conversion and other unit specific functionality in ExoSense.

Unit Originated Data Types

The following data types require a fixed unit type that is specified as a part of the origination channel configuration (config_io) and used as source of truth through the application.

Many of these types will represent base physical measurements (temperature, length, etc), or derived measurements (velocity), as noted in this Wikipedia article. The list is assumed to never be complete and future types / units could be added. Some physical quantities have simply been left off the list for simplicity and assumed lack of need for Industrial IoT applications.

Example Unit Originated Data Type Channel Configuration

{
  "channels": {
    "002": {
      "display_name": "Temperature",
      "description": "Temperature Sensor Reading",
      "properties": {
        "data_type": "TEMPERATURE",
        "data_unit": "DEG_CELSIUS",
        "precision": 2
      },
    }
  }
}

Example Unit Originated Data Type Channel Data (data_in) Packet

{
  "002":43
}

Acceleration

Data Type (data_type): ACCELERATION
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METER_PER_SEC2 m/s² Meters per Second²
MILLMETERS_PER_SEC2 mm/s² Millimeters per Second²
STANDARD_GRAVITY g₀ Standard Gravity
FEET_PER_SEC2 ft/s² Feet per Second²
FEET_PER_MIN2 ft/m² Feet per Minute²
IN_PER_SEC2 in/s² Inches per Second²

Example Channel Properties Configuration:

{
  "data_type": "ACCELERATION",
  "data_unit": "METER_PER_SEC2"
}

Amount of Substance

Data Type (data_type): AMOUNT
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
MOLE mol Mole

Example Channel Properties Configuration:

{
  "data_type": "AMOUNT",
  "data_unit": "MOLE"
}

Angular acceleration

Key (data_type): ANGULAR_ACCEL
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
RAD_PER_SEC2 rad/s² Radians per Second²
ROTATIONS_PER_MIN2 r/min² Rotations per Minute²
DEG_PER_SEC2 deg/s² Degrees per Second²

Example Channel Properties Configuration:

{
  "data_type": "ANGULAR_ACCEL",
  "data_unit": "DEG_PER_SEC2"
}

Angular Velocity / Speed

Key (data_type): ANGULAR_VEL
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
RAD_PER_SEC rad/s
RAD_PER_MIN rad/m
RAD_PER_HOUR rad/hr
ROTATIONS_PER_MIN rpm
DEG_PER_SEC deg/s
DEG_PER_MIN deg/m
DEG_PER_HOUR deg/hr

Example Channel Properties Configuration:

{
  "data_type": "ANGULAR_VEL",
  "data_unit": "ROTATIONS_PER_MIN"
}

Area

Key (data_type): AREA
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METER2 Meters²
KILOMETER2 km² Kilometers²
MM2 mm² Millimeters²
FEET2 ft² Feet²
INCH2 in² Inches²
MILE2 mi² Miles²
ACRE ac Acres

Example Channel Properties Configuration:

{
  "data_type": "AREA",
  "data_unit": "METER2"
}

Array of Numbers

Key (data_type): ARRAY_NUMBERS
Primitive Format: JSON
Accepted Units (data_unit): Not Used

Notes: The array can be of any length (up to the JSON primitive maximum size), and does not need to be consistently of the same length.

Example Channel Properties Configuration:

{
  "data_type": "ARRAY_NUMBERS"
}

Example Channel / Signal Value

[1,2,3,4,5,6,7,8,9,10,11,12]

Array of Points

Key (data_type): ARRAY_POINTS
Primitive Format: JSON
Accepted Units (data_unit): Not Used

Notes: The inner arrays are always two numbers. The outer array can be any length (up to the JSON primitive maximum size), and can vary in length.

Example Channel Properties Configuration:

{
  "data_type": "ARRAY_POINTS"
}

Example Channel / Signal Value

[[23, 42],[10,12],[56,98.6]]

Battery Percentage

Key (data_type): BATTERY_PERCENTAGE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PERCENT % As a Percentage

Example Channel Properties Configuration:

{
  "data_type": "BATTERY_PERCENTAGE",
  "data_unit": "PERCENT"
}

Notes: Device diagnostic

Capacitance

Key (data_type): CAPACITANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
FARAD F Farads
MILLIFARAD mF Millifarads
MICROFARAD µF Microfarads
NANOFARAD nF Nanofarads
PICOFARAD pF Picofarads

Example Channel Properties Configuration:

{
  "data_type": "CAPACITANCE",
  "data_unit": "FARAD"
}

Concentration (Mass)

Key (data_type): CONCENTRATION_MASS
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
KILOGRAM_PER_METER3 kg/m³ Kilograms per Meter³
GRAM_PER_CENTIMETER3 g/cm³ Grams per Centimeter³
GRAM_PER_LITER g/L Grams per Liter
MILIGRAM_PER_LITER mg/L Miligrams per Liter
MILLIGRAM_PER_METER3 mg/m³ Miligrams per Meter³
MICROGRAM_PER_METER3 µg/m³ Micrograms per Meter³
MICROGRAM_PER_LITER µg/L Micrograms per Liter

Example Channel Properties Configuration:

{
  "data_type": "CONCENTRATION_MASS",
  "data_unit": "GRAM_PER_LITER"
}

Concentration Ratio (Particles)

Key (data_type): PARTICLES
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PPM ppm Parts per Million
PPB ppb Parts per Billion
PPT ppt Parts per Trillion

Notes: Psuedo-units to describe the concentration of particles as a quantity of quantity.

Example Channel Properties Configuration:

{
  "data_type": "PARTICLES",
  "data_unit": "PPM"
}

Currency

Key (data_type): CURRENCY
Primitive Format: NUMERIC
Accepted Units (data_unit):
AFN, ALL, DZD, USD, EUR, AOA, XCD, ARS, AMD, AWG, AUD, AZN, BSD, BHD, BDT, BBD, BYR, BZD, XOF, BMD, BTN, INR, BOB, BOV, BAM, BWP, NOK, BRL, BND, BGN, BIF, CVE, KHR, XAF, CAD, KYD, CLF, CLP, CNY, COP, COU, KMF, CDF, NZD, CRC, HRK, CUC, CUP, ANG, CZK, DKK, DJF, DOP, EGP, SVC, ERN, ETB, FKP, FJD, XPF, GMD, GEL, GHS, GIP, GTQ, GBP, GNF, GYD, HTG, HNL, HKD, HUF, ISK, IDR, XDR, IRR, IQD, ILS, JMD, JPY, JOD, KZT, KES, KPW, KRW, KWD, KGS, LAK, LBP, LSL, ZAR, LRD, LYD, CHF, MOP, MKD, MGA, MWK, MYR, MVR, MRU, MUR, XUA, MXN, MXV, MDL, MNT, MAD, MZN, MMK, NAD, NPR, NIO, NGN, OMR, PKR, PAB, PGK, PYG, PEN, PHP, PLN, QAR, RON, RUB, RWF, SHP, WST, STN, SAR, RSD, SCR, SLL, SGD, XSU, SBD, SOS, SSP, LKR, SDG, SRD, SZL, SEK, CHE, CHW, SYP, TWD, TJS, TZS, THB, TOP, TTD, TND, TRY, TMT, UGX, UAH, AED, USN, UYI, UYU, UZS, VUV, VEF, VND, YER, ZMW, ZWL

Notes:

  • Currency codes based on list found here: https://www.iban.com/currency-codes.html
  • No Unit Abbreviations
  • Conversions between currency is complicated and always changing based on world-wide markets. ExoSense and related technology will not support currency conversions.

Example Channel Properties Configuration:

{
  "data_type": "CURRENCY",
  "data_unit": "USD"
}

Data

Key (data_type): DATA
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
BYTE B Bytes
KILOBYTE KB Kilobytes
MEGABYTE MB Megabytes
GIGABYTE GB Gigabytes
TERABYTE TB Terabytes

Example Channel Properties Configuration:

{
  "data_type": "DATA",
  "data_unit": "MEGABYTE"
}

Density

Key (data_type): DENSITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
KG_PER_M3 kg/m³ Kilograms per Meter³

Example Channel Properties Configuration:

{
  "data_type": "DENSITY",
  "data_unit": "KG_PER_M3"
}

Displacement

Key (data_type): DISPLACEMENT
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METERS m Meters
CENTIMETERS cm Centimeters
KILOMETERS km Kilometers
MILLIMETERS mm Millimeters
MICRONS µm Micrometer
FEET ft Feet
INCH in Inches
YARD yd Yards
MILES mi Miles

Example Channel Properties Configuration:

{
  "data_type": "DISPLACEMENT",
  "data_unit": "METERS"
}

Electrical Charge

Key (data_type): ELEC_CHARGE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
COULOMB C Coulombs
AMPERE_HOUR Ah Ampere-hour
MILLIAMPERE_HOUR mAh Milliampere-hour

Example Channel Properties Configuration:

{
  "data_type": "ELEC_CHARGE",
  "data_unit": "COULOMB"
}

Electric Current

Key (data_type): ELEC_CURRENT
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
AMPERE A Amps
MILLIAMP mA Milliamps
MICROAMP µA Microamps
KILOAMP kA Kiloamps

Example Channel Properties Configuration:

{
  "data_type": "ELEC_CURRENT",
  "data_unit": "AMPERE"
}

Electrical Conductance

Key (data_type): ELEC_CONDUCTANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
SIEMENS S Siemens

Example Channel Properties Configuration:

{
  "data_type": "ELEC_CONDUCTANCE",
  "data_unit": "SIEMENS"
}

Electrical Conductivity**

Key (data_type): ELEC_CONDUCTIVITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
SIEMENS_PER_METER S/m Siemens per Meter
DECISIEMENS_PER_METER dS/m Decisiemens per Meter
MILLISIEMENS_PER_METER mS/m Millisiemens per Meter
MICROSIEMENS_PER_METER µS/m Microsiemens per Meter
MILLISIEMENS_PER_CENTIMETER mS/cm Millisiemens per Centimeter
MICROSIEMENS_PER_CENTIMETER µS/cm Microsiemens per Centimeter

Example Channel Properties Configuration:

{
  "data_type": "ELEC_CONDUCTIVITY",
  "data_unit": "SIEMENS_PER_METER"
}

Electrical Potential (Voltage)

Key (data_type): ELEC_POTENTIAL
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
VOLT V Volts
MILLIVOLT mV Millivolts
MICROVOLT µV Microvolts
KILOVOLT kV Kilovolts
MEGAVOLT MV Megavolts

Example Channel Properties Configuration:

{
  "data_type": "ELEC_POTENTIAL",
  "data_unit": "VOLT"
}

Electrical Resistance

Key (data_type): ELEC_RESISTANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
OHM Ω Ohms
MILLIOHM Milliohms
MICROOHM µΩ Microohms
KILOOHM Kiloohms
MEGAOHM Megaohms

Example Channel Properties Configuration:

{
  "data_type": "ELEC_RESISTANCE",
  "data_unit": "OHM"
}

Electrical Resistivity

Key (data_type): ELEC_RESISTIVITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
OHM_METER Ω⋅m Ohm Meters

Example Channel Properties Configuration:

{
  "data_type": "ELEC_RESISTIVITY",
  "data_unit": "OHM_METER"
}

Energy

Key (data_type): ENERGY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
JOULE J Joules
KILOWATT_HOUR kWh Kilowatt Hours

Example Channel Properties Configuration:

{
  "data_type": "ENERGY",
  "data_unit": "JOULE"
}

Energy (Reactive)

Key (data_type): ENERGY_REACTIVE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
VOLTAMPS_REACTIVE_HOUR VARh Volt Amperes Reactive Hours
KILOVOLTAMPS_REACTIVE_HOUR kVARh Kilovolt Amperes Reactive Hours
MEGAVOLTAMPS_REACTIVE_HOUR MVARh Megavolt Amperes Reactive Hours

Example Channel Properties Configuration:

{
  "data_type": "ENERGY_REACTIVE",
  "data_unit": "KILOVOLTAMPS_REACTIVE_HOUR"
}

Field Level

Key (data_type): FIELD_LEVEL
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
DECIBEL dB Decibels

Notes: Used for logarithmic measures. Reference: https://en.wikipedia.org/wiki/Level_(logarithmic_quantity)

Example Channel Properties Configuration:

{
  "data_type": "FIELD_LEVEL",
  "data_unit": "DECIBEL"
}

Flow (Volumetric)

Key (data_type): FLOW
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METERS3_PER_SEC m³/s Meters³ Per Second
METERS3_PER_HOUR m³/h Meters³ Per Hour
PERCENT % Percentage
SCFM SCFM Standard cubic feet per minute)
SCFH SCFH Standard cubic feet per hour)
SLPS SLPS Standard Liters Per Second)
SLPM SLPM Standard Liters Per Minute)
NCMH NCMH Normal Cubic Meter Per Hour)
NCMM NCMM Normal Cubic Meter Per Minute)
NLPS NLPS Normal Liter Per Second)
NLPM NLPM Normal Liter Per Minute)
LITERS_PER_SEC LPS Liters per Second
LITERS_PER_MIN LPM Liters per Minute
LITERS_PER_HOUR LPH Liters per Hour
GALLONS_PER_SEC GPS Gallons per Second
GALLONS_PER_MIN GPM Gallons per Minute
GALLONS_PER_HOUR GPH Gallons per Hour

Notes: Flow as PERCENT will not support conversions

Example Channel Properties Configuration:

{
  "data_type": "FLOW",
  "data_unit": "LITERS_PER_SEC"
}

Flow (Mass)

Key (data_type): FLOW_MASS
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
KG_PER_SEC kg/s Kilograms per Second
LBS_PER_SEC lb/s Pounds per Second

Example Channel Properties Configuration:

{
  "data_type": "FLOW_MASS",
  "data_unit": "KG_PER_SEC"
}

Force

Key (data_type): FORCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
NEWTON N Netwons
POUND_FORCE lbf Pound Force

Example Channel Properties Configuration:

{
  "data_type": "FORCE",
  "data_unit": "NEWTON"
}

Frequency

Key (data_type): FREQUENCY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
HERTZ Hz Hertz
KHZ KHz Kilohertz
MHZ MHz Megahertz

Example Channel Properties Configuration:

{
  "data_type": "FREQUENCY",
  "data_unit": "HERTZ"
}

GPS / Location

Key (data_type): LOCATION
Primitive Format: JSON
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
LAT_LONG
LAT_LONG_ALT

Notes:

  • LAT_LONG contains both latitude and longitude in a JSON structured
  • LAT_LONG_ALT unit includes optionally sending altitude and acceleration.

Example Channel Properties Configuration:

{
  "data_type": "LOCATION",
  "data_unit": "LAT_LONG"
}

Example Channel / Signal Data values

{"lat": "{value}","lng":"{value}"}
{"lat": "{value}","lng":"{value}","alt":"{value}","acc":"{value}"}

Heat

Key (data_type): HEAT
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
JOULE J Joules
BTU Btu British Thermal Units
CALORIE cal Carlories
KILOCALORIE kcal Kilocalories

Example Channel Properties Configuration:

{
  "data_type": "HEAT",
  "data_unit": "JOULE"
}

Humidity

Key (data_type): HUMIDITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PERCENT % Relative Humidity as a Percentage

Example Channel Properties Configuration:

{
  "data_type": "HUMIDITY",
  "data_unit": "PERCENT"
}

Illuminance

Key (data_type): ILLUMINANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
LUX lx Lux
FOOT_CANDLES fc Foot Candles

Example Channel Properties Configuration:

{
  "data_type": "ILLUMINANCE",
  "data_unit": "LUX"
}

Inductance

Key (data_type): INDUCTANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
HENRY H Henry

Example Channel Properties Configuration:

{
  "data_type": "INDUCTANCE",
  "data_unit": "HENRY"
}

Irradiance

Key (data_type): IRRADIANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
WATT_PER_METER2 W/m² Watt per Square Meter

Example Channel Properties Configuration:

{
  "data_type": "IRRADIANCE",
  "data_unit": "WATT_PER_METER2"
}

Jerk

Key (data_type): JERK
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METER_PER_SEC3 m/s³ Meters per Second³

Example Channel Properties Configuration:

{
  "data_type": "JERK",
  "data_unit": "METER_PER_SEC3"
}

Length

Key (data_type): LENGTH
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METERS m Meters
CENTIMETERS cm Centimeters
KILOMETERS km Kilometers
MILLIMETERS mm Millimeters
MICRONS µm Micrometer
FEET ft Feet
INCH in Inches
YARD yd Yards
MILES mi Miles

Example Channel Properties Configuration:

{
  "data_type": "LENGTH",
  "data_unit": "METERS"
}

Linear density

Key (data_type): LINEAR_DENSITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
KILOGRAM_PER_METER kg/m Kilograms per Meter

Example Channel Properties Configuration:

{
  "data_type": "LINEAR_DENSITY",
  "data_unit": "KILOGRAM_PER_METER"
}

Luminance

Key (data_type): LUMINANCE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
CANDELA_PER_METER2 cd/m² Candela per Meter²

Example Channel Properties Configuration:

{
  "data_type": "LUMINANCE",
  "data_unit": "CANDELA_PER_METER2"
}

Luminous Flux

Key (data_type): LUMINOUS_FLUX
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
LUMENS lm Lumens

Example Channel Properties Configuration:

{
  "data_type": "LUMINOUS_FLUX",
  "data_unit": "LUMENS"
}

Luminous Intensity

Key (data_type): LUMINOUS_INTENSITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
CANDELA cd Candela

Example Channel Properties Configuration:

{
  "data_type": "LUMINOUS_INTENSITY",
  "data_unit": "CANDELA"
}

Mass

Key (data_type): MASS
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
GRAM g Grams
KILOGRAM kg Kilograms
MILLIGRAM mg Milligrams
MICROGRAM µg Micrograms
POUND lb Pounds
OZ oz Ounces
TON Ton Tons
METRIC_TON t Metric Tons
SLUG slug Slug
DRAM dr Dram
POUNDMASS lbm Pound Mass

Example Channel Properties Configuration:

{
  "data_type": "MASS",
  "data_unit": "KILOGRAM"
}

Percentage

Key (data_type): PERCENTAGE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PERCENT % Percentage

Example Channel Properties Configuration:

{
  "data_type": "PERCENTAGE",
  "data_unit": "PERCENT"
}

pH

Key (data_type): PH
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PH pH PH value

Example Channel Properties Configuration:

{
  "data_type": "PH",
  "data_unit": "PH"
}

Plane Angle

Key (data_type): ANGLE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
RADIAN rad Radians
DEGREE ° Degrees
ARCMINUTE ' Arcminutes
ARCSECOND " Arcseconds

Example Channel Properties Configuration:

{
  "data_type": "ANGLE",
  "data_unit": "RADIAN"
}

Power

Key (data_type): POWER
Primitive Format: NUMERIC Accepted Units (data_unit):

data_unit UI Abbreviation Notes
WATT W Watts
MILLIWATT mW Milliwatts
KILOWATT kW Kilowatts
MEGAWATT MW Megawatts
MICROWATT µW Microwatts
GIGAWATT GW Gigawatts
HORSEPOWER hp Horsepower

Example Channel Properties Configuration:

{
  "data_type": "POWER",
  "data_unit": "WATT"
}

Power (Apparent)

Key (data_type): POWER_APPARENT
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
MILLIVOLTAMPS mVA Millivolt Amperes
VOLTAMPS VA Volt Amperes
KILOVOLTAMPS kVA Kilovolt Amperes
MEGAVOLTAMPS MVA Megavolt Amperes
GIGAVOLTAMPS GVA Gigavolt Amperes

Example Channel Properties Configuration:

{
  "data_type": "POWER_APPARENT",
  "data_unit": "VOLTAMPS"
}

Power (Reactive)

Key (data_type): POWER_REACTIVE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
MILLIVOLTAMPS_REACTIVE mVAR Millivolt Amperes Reactive
VOLTAMPS_REACTIVE VAR Volt Amperes Reactive
KILOVOLTAMPS_REACTIVE kVAR Kilovolt Amperes Reactive
MEGAVOLTAMPS_REACTIVE MVAR Megavolt Amperes Reactive
GIGAVOLTAMPS_REACTIVE GVAR Gigavolt Amperes Reactive

Example Channel Properties Configuration:

{
  "data_type": "POWER_REACTIVE",
  "data_unit": "VOLTAMPS_REACTIVE"
}

Power Level

Key (data_type): POWER_LEVEL
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
DECIBEL dB Decibels

Notes: Used for logarithmic measures. Reference: https://en.wikipedia.org/wiki/Level_(logarithmic_quantity)

Example Channel Properties Configuration:

{
  "data_type": "POWER_LEVEL",
  "data_unit": "DECIBEL"
}

Pressure

Key (data_type): PRESSURE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PASCAL Pa Pascals
KILOPASCAL kPa Kilopascals
HECTOPASCAL hPa Hectopascals
MEGAPASCAL MPa Megapascals
BAR bar Bar
MBAR mbar Millibar
PSI psi Pounds per Square Inch
TORR Torr Torr
MILLITORR mTorr Millitorr
MICRONS_HG Micron Micron of Mercury
ATMOSPHERE atm Standard Atmosphere
NEWTON_PER_METER_2 N/m² Newtons per Meter²
MM_HG mmHg Millimeters of Mercury at 0 deg C
IN_H2O inH2O Inches of Water Column at 4 deg C

Example Channel Properties Configuration:

{
  "data_type": "PRESSURE",
  "data_unit": "BAR"
}

Signal Strength as Percent

Key (data_type): SIGNAL_STRENGTH_PERCENTAGE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PERCENT % Percentage

Notes: Device diagnostic

Example Channel Properties Configuration:

{
  "data_type": "SIGNAL_STRENGTH_PERCENTAGE",
  "data_unit": "PERCENT"
}

Solid angle

Key (data_type): SOLID_ANGLE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
STERADIAN sr Steradians

Example Channel Properties Configuration:

{
  "data_type": "SOLID_ANGLE",
  "data_unit": "STERADIAN"
}

Speed

Key (data_type): SPEED
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METER_PER_SEC m/s Meters per Second
KPH km/h Kilometers per Second
MPH mph Miles per Hour
IN_PER_SEC ips Inches per Second
FEET_PER_SEC fps Feet per Second
FEET_PER_MIN fpm Feet per Minute
KNOTS kn Knots

Example Channel Properties Configuration:

{
  "data_type": "SPEED",
  "data_unit": "METER_PER_SEC"
}

Temperature

Key (data_type): TEMPERATURE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
KELVIN K Kelvins
DEG_CELSIUS °C Degrees Celsius
DEG_FAHRENHEIT °F Degrees Fahrenheit
RANKINE °R Degrees Rankine

Note: For use cases involving temperature differences, please see the TEMPERATURE_DELTA type.

Example Channel Properties Configuration:

{
  "data_type": "TEMPERATURE",
  "data_unit": "DEG_CELSIUS"
}

Temperature Delta

Key (data_type): TEMPERATURE_DELTA
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
KELVIN K Kelvins
DEG_CELSIUS °C Degrees Celsius
DEG_FAHRENHEIT °F Degrees Fahrenheit
RANKINE °R Degrees Rankine

Note: The Temperature Delta (TEMPERATURE_DELTA) type is used when a signal represents the delta or difference in temperature, rather than an absolute temperature value. It is important to use this type rather than TEMPERATURE type in order for the application and functions to properly handle unit conversions.

Example Channel Properties Configuration:

{
  "data_type": "TEMPERATURE_DELTA",
  "data_unit": "DEG_CELSIUS"
}

Time

Key (data_type): TIME
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
SECONDS s Seconds
MILLISECOND msec Milliseconds
MINUTE min Minutes
HOUR h Hours
DAY d Days
YEAR yr Years

Example Channel Properties Configuration:

{
  "data_type": "TIME",
  "data_unit": "SECONDS"
}

Torque

Key (data_type): TORQUE
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
NEWTON_METER N⋅m Netwon Meters
FOOT_POUNDS lbf⋅ft Foot Pounds
INCH_POUNDS lbf⋅in Inch Pounds

Example Channel Properties Configuration:

{
  "data_type": "TORQUE",
  "data_unit": "NEWTON_METER"
}

Turbidity

Key (data_type): TURBIDITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
FTU FTU Formazin Turbidity Units
FNU FNU Formazin Nephelometric Unit
FAU FAU Formazin Attenuation Units
JTU JTU Jackson Turbidity Unit
NTU NTU Nephelometric Turbidity Units

Notes: Unit conversions are not supported in the ExoSense application for Turbidity.

Example Channel Properties Configuration:

{
  "data_type": "TURBIDITY",
  "data_unit": "FTU"
}

URL

Key (data_type): URL
Primitive Format: JSON
Accepted Units (data_unit): Not Used

Notes: A JSON object that contains at minimum a key url. The url value must be a string that consists of a proper URL address scheme starting with https, etc. Optional title key to provide a title that would be displayed in the UI instead of the full URL address. The application (example ExoSense) will define what URL types are actually supported (click-able in the UI). Validation and security checks are not provided by the platform or application. Recommend only for use of encrypted and password protected URLs. OEMs implementing device or custom Insight support to generate URL values, do so at their own risk to their users. Feature must be enabled by ExoSense administrators.

Example Channel Properties Configuration:

{
  "data_type": "URL"
}

Example Channel / Signal Value Reference

{"url": "{proper_url_value_here}","title":"{optional_title_value_here}"}

Example Channel / Signal Values

{"url": "https://exosite.com","title":"Device Link"}

Velocity

Key (data_type): VELOCITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METER_PER_SEC m/s Meters per Second
MILLMETERS_PER_SEC mm/s Millimeters per Seconds
MPH mph Miles per Hour
INCH_PER_SEC in/s Inches per Second
FEET_PER_SEC fps Feet per Second
FEET_PER_MIN fpm Feet per Minute

Example Channel Properties Configuration:

{
  "data_type": "VELOCITY",
  "data_unit": "METER_PER_SEC"
}

Viscosity, Dynamic

Key (data_type): DYNAMIC_VISCOSITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
PASCAL_SEC Pa·s Pascal Seconds
MILLIPASCAL_SEC mPa·s Millipasacal Seconds
POISE P Poise

Example Channel Properties Configuration:

{
  "data_type": "DYNAMIC_VISCOSITY",
  "data_unit": "PASCAL_SEC"
}

Viscosity, Kinematic

Key (data_type): KINEMATIC_VISCOSITY
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
CENTISTOKES cSt Centistokes
STOKES St Stokes
METERS2_PER_SEC m²/s Meters² per Second

Example Channel Properties Configuration:

{
  "data_type": "KINEMATIC_VISCOSITY",
  "data_unit": "METERS2_PER_SEC"
}

Volume

Key (data_type): VOLUME
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
METER3 Meters³
LITRE L Liters, Litres
MILLILITRES mL Milliliters, Millilitres
GALLON gal Gallons
QUARTS qt Quarts
PINT pt Pints
FEET3 ft³ Feet³
INCH3 in³ Inches³
CENTIMETER3 cm³ Centimeters³
MILLIMETERS3 mm³ Millimeters³
IMPERIAL_GALLONS Igal Imperial Gallons
FLUID_OZ fl oz Fluid Ounces
YARD3 yd³ Yards³

Note: Important to take note of the format of data unit for Liters and Millileters in this Volume type uses LITRE and MILLILITRES which is not the synxtax used for other unit types in this schema document where LITER is used. Please be sure to use as documented here.

Example Channel Properties Configuration:

{
  "data_type": "VOLUME",
  "data_unit": "METER3"
}

Weight

Key (data_type): WEIGHT
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
NEWTON N Netwons
POUND lb Pounds
OUNCE oz Ounces
TON Ton US Short Ton
METRIC_TON t Metric Ton

Example Channel Properties Configuration:

{
  "data_type": "WEIGHT",
  "data_unit": "NEWTON"
}

Work

Key (data_type): WORK
Primitive Format: NUMERIC
Accepted Units (data_unit):

data_unit UI Abbreviation Notes
JOULE J Joules
FOOT_POUND ft⋅lb Foot Pounds

Example Channel Properties Configuration:

{
  "data_type": "WORK",
  "data_unit": "JOULE"
}

Change log

  • Added TEMPERATURE_DELTA type with same units as TEMPERATURE to support temperature delta unit conversions in the application.
  • Added MILLITORR and MICRONS_HG units for type PRESSURE
  • Updated the abbreviation in ExoSense for MICRONS to use µm instead of µ
  • Added ELEC_CHARGE type with units COULOMB, AMPERE_HOUR, MILLIAMPERE_HOUR
  • Added IRRADIANCEtype with unit WATT_PER_METER2
  • Added HECTOPASCAL unit for type PRESSURE
  • Added ARRAY_POINTS and ARRAY_NUMBERS data types
  • Added MEGAPASCAL unit for type PRESSURE
  • Added ENERGY_REACTIVE type with units VOLTAMPS_REACTIVE_HOUR, KILOVOLTAMPS_REACTIVE_HOUR, MEGAVOLTAMPS_REACTIVE_HOUR
  • Added FEET_PER_MIN unit for type SPEED and VELOCITY
  • Added FEET_PER_MIN2 unit for type ACCELERATION
  • Removing reference of primitive_type in config_io as it is assumed by data_type and not needed. If provied, must match the primitive format for each data type.
  • Updated format of Accepted Units into tables and added channel property examples.
  • Added Mass units: MICROGRAM
  • Added Concentration Mass units: MILLIGRAM_PER_METER3, MICROGRAM_PER_METER3, MICROGRAM_PER_LITER
  • Moved Particles up and changed heading to Concentration Ratio (Particles)
  • Add POUND_FORCE unit to Force type.
  • Split Power to Power, Power (Apparent), and Power (Reactive). Add additional units to Power types.
  • Add CONCENTRATION_MASS, TURBIDITY, and ELEC_CONDUCTIVITY types
  • Change VELOCITY unit INCH_PER_SEC abbrevation to in/s (was ips)
  • Add ACCELERATION unit MILLMETERS_PER_SEC2 (abreviation: mm/s²)
  • Added a note about Numeric primitve type value size and format
  • Fixed Luminous Flux data type 'data_type' value to LUMINOUS_FLUX, was LUMINANCE_FLUX.
  • Created this document as seperate from "ExoSense™️ Channel and Signal Data Schema", using v3.0 since the other document is also moving to 3.0. Will track version history seperately moving forward.
  • Added many new Numeric measurement types and units
  • Changed format to show the accepted units and the abbreviations used in the application
  • Added BOOLEAN type
  • Added URL type
  • Added a new inheritied element primitive_type to specify the format for each data type
  • Removed non-supported data types