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 not0
- False ("Falsy") accepted values:
false
,"off"
,0
,"no"
- All values will be converted to
true
andfalse
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 | m² | 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 | mΩ | Milliohms |
MICROOHM | µΩ | Microohms |
KILOOHM | kΩ | Kiloohms |
MEGAOHM | MΩ | 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 structuredLAT_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 | m³ | 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 asTEMPERATURE
to support temperature delta unit conversions in the application. - Added
MILLITORR
andMICRONS_HG
units for typePRESSURE
- Updated the abbreviation in ExoSense for
MICRONS
to useµm
instead ofµ
- Added
ELEC_CHARGE
type with unitsCOULOMB
,AMPERE_HOUR
,MILLIAMPERE_HOUR
- Added
IRRADIANCE
type with unitWATT_PER_METER2
- Added
HECTOPASCAL
unit for typePRESSURE
- Added
ARRAY_POINTS
andARRAY_NUMBERS
data types - Added
MEGAPASCAL
unit for typePRESSURE
- Added
ENERGY_REACTIVE
type with unitsVOLTAMPS_REACTIVE_HOUR
,KILOVOLTAMPS_REACTIVE_HOUR
,MEGAVOLTAMPS_REACTIVE_HOUR
- Added
FEET_PER_MIN
unit for typeSPEED
andVELOCITY
- Added
FEET_PER_MIN2
unit for typeACCELERATION
- 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
, andELEC_CONDUCTIVITY
types - Change
VELOCITY
unitINCH_PER_SEC
abbrevation to in/s (was ips) - Add
ACCELERATION
unitMILLMETERS_PER_SEC2
(abreviation: mm/s²) - Added a note about Numeric primitve type value size and format
- Fixed Luminous Flux data type '
data_type
' value toLUMINOUS_FLUX
, wasLUMINANCE_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