IPSO Object Reference Guide

Estimated reading time: 18 minutes

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 OT Link Platform 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 ID Minimum JSON (Resource for LWM2M Object Definitions: OMA LWM2M Objects)
LWM2M Security 0
{ "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 Server 1
{ "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 Control 2
{ "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  }] }
Device 3
{ "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 Monitoring 4
{ "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) },] }
Firmware 5
{ "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"  }] }
Location 6
{ "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 Statistics 7
{ "timestamp": 0, "values": [{ "objectId": 7, "instanceId": 0, "resourceId": 6, "datatype": "", "value": ""   }] }
Lock and Wipe 8
{ "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 Management 9
{ "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 Connectivity 10

        
APN Connection Profile

11


      
WLAN Connectivity 12

      
Bearer Selection 13

      
Software Component 14

      
DevCapMgmt 15

      
Portfolio 16

      
Communications Characteristics 17

      
Non-Access Stratum (NAS) Configuration 18

      
LWM2M AppData 19

      

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

Object Object ID MInimum 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 } ] }
Energy 3331
{ "timestamp": 0, "values": [ { "objectId": 3331, "instanceId": 0, "resourceId": 5805, "datatype": "Float", "value": 11.2 } ] }
Direction 3332
{ "timestamp": 0, "values": [ { "objectId": 3332, "instanceId": 0, "resourceId": 5705, "datatype": "Float", "value": 11.2 } ] }
Time 3333
{ "timestamp": 0, "values": [ { "objectId": 3333, "instanceId": 0, "resourceId": 5506, "datatype": "Float", "value": 11.2 } ] }
Gyrometer 3334
{ "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 } ] }
Color 3335
{ "timestamp": 0, "values": [ { "objectId": 3335, "instanceId": 0, "resourceId": 5706, "datatype": "String", "value": "RED" } ] }
GPS Lodation 3336
{ "timestamp": 0, "values": [ { "objectId": 3336, "instanceId": 0, "resourceId": 5514, "datatype": "String", "value": "Latitude" }, { "objectId": 3336, "instanceId": 0, "resourceId": 5515, "datatype": "String", "value": "Longitude" } ] }
Positioner 3337
{ "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 } ] }
Buzzer 3338
{ "timestamp": 0, "values": [ { "objectId": 3338, "instanceId": 0, "resourceId": 5850, "datatype": "Boolean", "value": 1 } ] }
Audio Clip 3339
{ "timestamp": 0, "values": [ { "objectId": 3339, "instanceId": 0, "resourceId": 5522, "datatype": "Opaque", "value": "clip" } ] }
Timer 3340
{ "timestamp": 0, "values": [ { "objectId": 3340, "instanceId": 0, "resourceId": 5521, "datatype": "Float", "value": 10.23 } ] }
Addressable Text Display 3341
{ "timestamp": 0, "values": [ { "objectId": 3341, "instanceId": 0, "resourceId": 5527, "datatype": "String", "value": "Text" } ] }
On/Off Switch 3342
{ "timestamp": 0, "values": [ { "objectId": 3342, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }
Lever Control 3343
{ "timestamp": 0, "values": [ { "objectId": 3343, "instanceId": 0, "resourceId": 5851, "datatype": "Float", "value": 0.23 } ] }
Up/Down Control 3344
{ "timestamp": 0, "values": [ { "objectId": 3344, "instanceId": 0, "resourceId": 5532, "datatype": "Boolean", "value": 0 } ] }
Multiple Axis Joystick 3345
{ "timestamp": 0, "values": [ { "objectId": 3345, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }
Rate 3346
{ "timestamp": 0, "values": [ { "objectId": 3346, "instanceId": 0, "resourceId": 5700, "datatype": "Float", "value": 0.12 } ] }
Push Button 3347
{ "timestamp": 0, "values": [ { "objectId": 3347, "instanceId": 0, "resourceId": 5500, "datatype": "Boolean", "value": 0 } ] }
Multistate Selector 3348
{ "timestamp": 0, "values": [ { "objectId": 3348, "instanceId": 0, "resourceId": 5547, "datatype": "Integer", "value": 12 } ] }