Skip to end of metadata
Go to start of metadata

The Internet Protocol for Smart Objects (IPSO) defines an object model, based on the Open Mobile Alliance (OMA) standard for the Internet of Things (IoT), to achieve interoperability for data transmitted between devices and application software. A common set of object definitions enables software to interact with any device.

Use these sections as an overview of IPSO objects.

  • DeviceHub OMA Binding - Bind objects in LoopEdge to format the collected data according to the OMA standard so that it will have the structure required for further processing.

What are IPSO Objects?

Simply put, IPSO objects based on the OMA standard represent anything that can be measured.

IoT devices contain one or more of these components from which measurements can be collected:

  • Sensor: A device sensor detects a condition/state and then converts one form of energy into another. When converted to electrical energy, sensor values can be read and the device can be managed.
  • Actuator: An actuator takes electrical energy and converts it into an action, such as turning a device on or off.

Smart Object Standards

The smart object model has the following characteristics:

  • Standard protocol-independent format.
  • Objects define anything that provides data about a device. For example, a light sensor is one object while digital input is another object—each with its own unique object ID.
  • An object represents a single measurement value (such as temperature), a control point (such as an on/off switch), or an actuator (such as a dimmer).
  • Each object can have multiple resources, such as an on/off switch or the time a device was turned on. These resources can be accessed, read, and managed.
  • Each object is defined with an Object ID and each of the object’s resources has a Resource ID that defines an object’s observable property, such as a temperature or humidity sensor, or an on/off switch or dimmer. An Instance ID is used to identify a specific object, when there are multiple occurrences of an object. Object Instances serve as containers for resources (observable properties or targets for actuation).

The URI (Uniform Resource Identifier) for an object follows this format: 

Object_ID/Instance_ID/Resource_ID

Example of an Actuation Object

An IPSO object for remote actuation, such as turning a device on/off or dimming a light, can have a variety of resources.

  • Actuation Object ID: 3306
  • Resource ID for the on/off switch: 5850
  • Resource ID for the dimmer: 5851
  • Resource ID for the time the device has been turned on: 5852
  • Resource ID for the state of multi-level output (such as a pilot wire): 5853
  • Resource ID for the device’s application type (such as motion closure): 5750
  • Instance ID: 0 (for a single occurrence of the object)

The JSON schema for an Actuation object: 

{ "timestamp": 0, "values": [ { "objectId": 3306, "instanceId": 0, "resourceId": 5850, "datatype": "Boolean", "value": 1 } ] }

Example of a Temperature Sensor Object

  • Temperature Sensor Object ID: 3303
  • Resource ID for Sensor Value: 5700
  • Resource ID for Minimum Measured Value: 5601
  • Resource ID for Maximum Measured Value: 5602
  • Resource ID for Minimum Value Possible for Sensor: 5603
  • Resource ID for Maximum Value Possible for Sensor: 5604
  • Resource ID for Resetting the Min/Max Values to Current Value: 5605
  • Instance ID: 0 (for a single occurrence of the object)

JSON schema for a Temperature Sensor object: 

{ "timestamp": 0, "values": [ { "objectId": 3303, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 12.12 } ] }

Objects Defined by the OMA Standard

Additional information can be found on the Open Mobile Alliance website.

LWM2M Objects

Object Object IDMinimum JSON (Resource for LWM2M Object Definitions: OMA LWM2M Objects)
LWM2M Security0
{ "timestamp": 0, "values": [{ "objectId": 0, "instanceId": 0, "resourceId": 0, "datatype": "String", "value": ID in the format of coaps://host:port   }, { "objectId": 0, "instanceId": 0, "resourceId": 1, "datatype": "Boolean", "value": 1   }, { "objectId": 0, "instanceId": 0, "resourceId": 2, "datatype": "Integer", "value": 0-3   }, { "objectId": 0, "instanceId": 0, "resourceId": 3, "datatype": "Opaque", "value": ""   }, { "objectId": 0, "instanceId": 0, "resourceId": 4, "datatype": "Opaque", "value": ""  }, { "objectId": 0, "instanceId": 0, "resourceId": 5, "datatype": "Opaque", "value": ""   }, { "objectId": 0, "instanceId": 0, "resourceId": 6, "datatype": "Integer", "value": 0-255  }, { "objectId": 0, "instanceId": 0, "resourceId": 7, "datatype": "Opaque", "value": ""   }, { "objectId": 0, "instanceId": 0, "resourceId": 8, "datatype": "Opaque", "value": ""   }, { "objectId": 0, "instanceId": 0, "resourceId": 9, "datatype": "Integer", "value": ""   }, { "objectId": 0, "instanceId": 0, "resourceId": 11, "datatype": "Integer", "value": ""   }] }
LWM2M Server1
{ "timestamp": 0, "values": [{ "objectId": 1, "instanceId": 0, "resourceId": 0, "datatype": "Integer", "value": 1   }, { "objectId": 1, "instanceId": 0, "resourceId": 1, "datatype": "Integer", "value": 1   }, { "objectId": 1, "instanceId": 0, "resourceId": 6, "datatype": "Boolean", "value": 1   }, { "objectId": 1, "instanceId": 0, "resourceId": 7, "datatype": "String", "value": possible values of Resource are listed in 5.2.1.1   }, { "objectId": 1, "instanceId": 0, "resourceId": 8, "datatype": "", "value":  },] }
Access Control2
{ "timestamp": 0, "values": [{ "objectId": 2, "instanceId": 0, "resourceId": 0, "datatype": "Integer", "value": 1-65534   }, { "objectId": 2, "instanceId": 0, "resourceId": 1, "datatype": "Integer", "value": 0-65535  }, { "objectId": 2, "instanceId": 0, "resourceId": 3, "datatype": "Integer", "value": 0-65535  }] }
Device3
{ "timestamp": 0, "values": [{ "objectId": 3, "instanceId": 0, "resourceId": 4, "datatype": "", "value": ""  }, { "objectId": 3, "instanceId": 0, "resourceId": 11, "datatype": "Integer", "value": 0  }, { "objectId": 3, "instanceId": 0, "resourceId": 16, "datatype": "String", "value": possible values of Resource are combination of \"U\" or \"UQ\" and \"S\" or \"SQ\"  }] }
Connectivity Monitoring4
{ "timestamp": 0, "values": [{ "objectId": 4, "instanceId": 0, "resourceId": 0, "datatype": "Integer", "value": network bearer used for the current LWM2M communication session }, { "objectId": 4, "instanceId": 0, "resourceId": 1, "datatype": "Integer", "value": value from the network bearer list }, { "objectId": 4, "instanceId": 0, "resourceId": 2, "datatype": "Integer", "value": average value of the received signal strength }, { "objectId": 4, "instanceId": 0, "resourceId": 4, "datatype": "String", "value": IP addresses assigned to the connectivity interface. (e.g. IPv4, IPv6) },] }
Firmware5
{ "timestamp": 0, "values": [{ "objectId": 5, "instanceId": 0, "resourceId": 0, "datatype": "Opaque", "value": ""  }, { "objectId": 5, "instanceId": 0, "resourceId": 1, "datatype": "String", "value": URI from where the device can download the firmware package by an alternative mechanism }, { "objectId": 5, "instanceId": 0, "resourceId": 2, "datatype": "", "value": ""  }, { "objectId": 5, "instanceId": 0, "resourceId": 3, "datatype": "Integer", "value": "1"  }, { "objectId": 5, "instanceId": 0, "resourceId": 5, "datatype": "Integer", "value": "0"  }] }
Location6
{ "timestamp": 0, "values": [{ "objectId": 6, "instanceId": 0, "resourceId": 0, "datatype": "String", "value": decimal notation of latitude  }, { "objectId": 6, "instanceId": 0, "resourceId": 0, "datatype": "String", "value": decimal notation of longitude}, { "objectId": 6, "instanceId": 0, "resourceId": 5, "datatype": "time", "value": timestamp of measurement}] }
Connectivity Statistics7
{ "timestamp": 0, "values": [{ "objectId": 7, "instanceId": 0, "resourceId": 6, "datatype": "", "value": ""   }] }
Lock and Wipe8
{ "timestamp": 0, "values": [{ "objectId": 8, "instanceId": 0, "resourceId": 0, "datatype": "Integer", "value": 0   }, { "objectId": 8, "instanceId": 0, "resourceId": 1, "datatype": "String", "value": specify one or several targets for the lock operation  }] }
Software Management9
{ "timestamp": 0, "values": [{ "objectId": 9, "instanceId": 0, "resourceId": 0, "datatype": "String", "value": name of the software package  }, { "objectId": 9, "instanceId": 0, "resourceId": 1, "datatype": "String", "value": version of the software package  }, { "objectId": 9, "instanceId": 0, "resourceId": 2, "datatype": "Opaque", "value": software package  }, { "objectId": 9, "instanceId": 0, "resourceId": 3, "datatype": "String", "value": URI for software package download  }, { "objectId": 9, "instanceId": 0, "resourceId": 4, "datatype": "", "value": ""  }, { "objectId": 9, "instanceId": 0, "resourceId": 6, "datatype": "", "value": ""  }, { "objectId": 9, "instanceId": 0, "resourceId": 7, "datatype": "Integer", "value": 1-5 }, { "objectId": 9, "instanceId": 0, "resourceId": 9, "datatype": "Integer", "value": 0-10  }, { "objectId": 9, "instanceId": 0, "resourceId": 10, "datatype": "", "value": "" }, { "objectId": 9, "instanceId": 0, "resourceId": 11, "datatype": "", "value": "" }, { "objectId": 9, "instanceId": 0, "resourceId": 12, "datatype": "Boolean", "value": 1 }] }
Cellular Connectivity10
APN Connection Profile

11

WLAN Connectivity12
Bearer Selection13
Software Component14
DevCapMgmt15
Portfolio16
Communications Characteristics17
Non-Access Stratum (NAS) Configuration18
LWM2M AppData19

IPSO Objects (See also, OMA Data Objects in Detail)

ObjectObject IDMInimum JSON

Digital Input

3200

{ "timestamp": 0, "values": [{ "objectId": 3200, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 1   }] }

Digital Output

3201

{ "timestamp": 0, "values": [ { "objectId": 3201, "instanceId": 0, "resourceId": 5550, "datatype": "Boolean", "value": 1 } ] }

Analogue Input

3202

{ "timestamp": 0, "values": [ { "objectId": 3202, "instanceId": 0, "resourceId": 5600, "datatype": "Float", "value": 10.2 } ] }

Analogue Output

3203

{ "timestamp": 0, "values": [ { "objectId": 3203, "instanceId": 0, "resourceId": 5650, "datatype": "Float", "value": 10.2 } ] }

Generic Sensor

3300

{ "timestamp": 0, "values": [ { "objectId": 3300, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 10.2 } ] }

Illuminance Sensor

3301

{ "timestamp": 0, "values": [ { "objectId": 3301, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 10.2 } ] }

Presence Sensor

3302

{ "timestamp": 0, "values": [ { "objectId": 3302, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }

Temperature Sensor

3303

{ "timestamp": 0, "values": [ { "objectId": 3303, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 12.12 } ] }

Humidity Sensor

3304

{ "timestamp": 0, "values": [ { "objectId": 3304, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 12.12 } ] }

Power Measurement

3305

{ "timestamp": 0, "values": [ { "objectId": 3305, "instanceId": 0, "resourceId": 5800, "datatype": "Float", "value": 12.12 } ] }

Actuation

3306

{ "timestamp": 0, "values": [ { "objectId": 3306, "instanceId": 0, "resourceId": 5850, "datatype": "Boolean", "value": 1 } ] }

Set Point

3308

{ "timestamp": 0, "values": [ { "objectId": 3308, "instanceId": 0, "resourceId": 5900, "datatype": "float", "value": 11.3 } ] }

Load Control

3310

{ "timestamp": 0, "values": [ { "objectId": 3310, "instanceId": 0, "resourceId": 5823, "datatype": "String", "value": "Event identifier" }, { "objectId": 3310, "instanceId": 0, "resourceId": 5824, "datatype": "String", "value": "Start Time" }, { "objectId": 3310, "instanceId": 0, "resourceId": 5825, "datatype": "String", "value": "Duration in minimum" } ] }

Light Control

3311

{ "timestamp": 0, "values": [ { "objectId": 3311, "instanceId": 0, "resourceId": 5850, "datatype": "Boolean", "value": 1 } ] }

Power Control

3312

{ "timestamp": 0, "values": [ { "objectId": 3312, "instanceId": 0, "resourceId": 5850, "datatype": "Boolean", "value": 1 } ] }

Accelerometer

3313

{ "timestamp": 0, "values": [ { "objectId": 3313, "instanceId": 0, "resourceId": 5702, "datatype": "Float", "value": 11.2 }, { "objectId": 3313, "instanceId": 0, "resourceId": 5703, "datatype": "Float", "value": 11.2 }, { "objectId": 3313, "instanceId": 0, "resourceId": 5704, "datatype": "Float", "value": 11.2 } ] }

Magnetometer

3314

{ "timestamp": 0, "values": [ { "objectId": 3314, "instanceId": 0, "resourceId": 5702, "datatype": "Float", "value": 11.2 } ] }

Barometer

3315

{ "timestamp": 0, "values": [ { "objectId": 3315, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Voltage

3316

{ "timestamp": 0, "values": [ { "objectId": 3316, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Current

3317

{ "timestamp": 0, "values": [ { "objectId": 3317, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Frequency

3318

{ "timestamp": 0, "values": [ { "objectId": 3318, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Depth

3319

{ "timestamp": 0, "values": [ { "objectId": 3319, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Percentage

3320

{ "timestamp": 0, "values": [ { "objectId": 3320, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Altitude

3321

{ "timestamp": 0, "values": [ { "objectId": 3321, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Load

3322

{ "timestamp": 0, "values": [ { "objectId": 3322, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Pressure

3323

{ "timestamp": 0, "values": [ { "objectId": 3323, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Loudness

3324

{ "timestamp": 0, "values": [ { "objectId": 3324, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Concentration

3325

{ "timestamp": 0, "values": [ { "objectId": 3325, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Acidity

3326

{ "timestamp": 0, "values": [ { "objectId": 3326, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Conductivity

3327

{ "timestamp": 0, "values": [ { "objectId": 3327, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Power

3328

{ "timestamp": 0, "values": [ { "objectId": 3328, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Power Factor

3329

{ "timestamp": 0, "values": [ { "objectId": 3329, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }

Distance

3330

{ "timestamp": 0, "values": [ { "objectId": 3330, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 11.2 } ] }
Energy3331
{ "timestamp": 0, "values": [ { "objectId": 3331, "instanceId": 0, "resourceId": 5805, "datatype": "Float", "value": 11.2 } ] }
Direction3332
{ "timestamp": 0, "values": [ { "objectId": 3332, "instanceId": 0, "resourceId": 5705, "datatype": "Float", "value": 11.2 } ] }
Time3333
{ "timestamp": 0, "values": [ { "objectId": 3333, "instanceId": 0, "resourceId": 5506, "datatype": "Float", "value": 11.2 } ] }
Gyrometer3334
{ "timestamp": 0, "values": [ { "objectId": 3334, "instanceId": 0, "resourceId": 5702, "datatype": "Float", "value": 12.3 }, { "objectId": 3334, "instanceId": 0, "resourceId": 5703, "datatype": "Float", "value": 123.4 }, { "objectId": 3334, "instanceId": 0, "resourceId": 5704, "datatype": "Float", "value": 45.2 } ] }
Color3335
{ "timestamp": 0, "values": [ { "objectId": 3335, "instanceId": 0, "resourceId": 5706, "datatype": "String", "value": "RED" } ] }
GPS Lodation3336
{ "timestamp": 0, "values": [ { "objectId": 3336, "instanceId": 0, "resourceId": 5514, "datatype": "String", "value": "Latitude" }, { "objectId": 3336, "instanceId": 0, "resourceId": 5515, "datatype": "String", "value": "Longitude" } ] }
Positioner3337
{ "timestamp": 0, "values": [ { "objectId": 3337, "instanceId": 0, "resourceId": 5536, "datatype": "Float", "value": 12.3 }, { "objectId": 3336, "instanceId": 0, "resourceId": 5537, "datatype": "Float", "value": 2.234 } ] }
Buzzer3338
{ "timestamp": 0, "values": [ { "objectId": 3338, "instanceId": 0, "resourceId": 5850, "datatype": "Boolean", "value": 1 } ] }
Audio Clip3339
{ "timestamp": 0, "values": [ { "objectId": 3339, "instanceId": 0, "resourceId": 5522, "datatype": "Opaque", "value": "clip" } ] }
Timer3340
{ "timestamp": 0, "values": [ { "objectId": 3340, "instanceId": 0, "resourceId": 5521, "datatype": "Float", "value": 10.23 } ] }
Addressable Text Display3341
{ "timestamp": 0, "values": [ { "objectId": 3341, "instanceId": 0, "resourceId": 5527, "datatype": "String", "value": "Text" } ] }
On/Off Switch3342
{ "timestamp": 0, "values": [ { "objectId": 3342, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }
Lever Control3343
{ "timestamp": 0, "values": [ { "objectId": 3343, "instanceId": 0, "resourceId": 5851, "datatype": "Float", "value": 0.23 } ] }
Up/Down Control3344
{ "timestamp": 0, "values": [ { "objectId": 3344, "instanceId": 0, "resourceId": 5532, "datatype": "Boolean", "value": 0 } ] }
Multiple Axis Joystick3345
{ "timestamp": 0, "values": [ { "objectId": 3345, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }
Rate3346
{ "timestamp": 0, "values": [ { "objectId": 3346, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 0.12 } ] }
Push Button3347
{ "timestamp": 0, "values": [ { "objectId": 3347, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }
Multistate Selector3348
{ "timestamp": 0, "values": [ { "objectId": 3348, "instanceId": 0, "resourceId": 5547, "datatype": "Integer", "value": 12 } ] }




  • No labels