A Smart Object Class that helps you with creating IPSO Smart Objects in your JavaScript applications. See also: IPSO Alliance Technical Archive.

smartobject is a Smart Object Class that helps you with creating IPSO Smart Objects in your JavaScript applications. If you like to use the IPSO data model in your projects or products, you can use smartobject as the base class to abstract your hardware, sensor modules, or gadgets into plugins (node.js packages) for users convenience. Here is an example of hardware abstraction with mraa on Linkit Smart 7688 in our wiki. In addition, this module is isomorphic and you can use it at server-side as well to generate the smart objects.

IPSO defines a hierarchical data model to describe real-world gadgets, such as temperature sensors and light controllers.

  • IPSO uses Object to tell what kind of a gadget is, and uses Object Instance to tell which one a gadget is.
  • An Object is like a class or a boilerplate, and each kind of Object has an unique Object Id (oid) defined by IPSO, e.g., 3303 for the Temperature Sensor Object. Here is the list of oids.
  • An Object Instance is the entity of an Object. Each Object Instance has an unique Object Instance Id to identify itself from other gadgets of the same class. Simply speaking, oid is like a namespace to manage all the same kind of IPSO Object Instances.
  • The Resources are used to describe what attributes may a gadget have, for example, a temperature sensor may have attributes such as sensorValueunitminMeaValue, .etc. Resource Values will be filled after instantiated. Here is the list of templates to show you what attributes may a gadget have.


  • The italics, such ObjectObject IdObject Instance, and Object Instance Id, are used to distinguish the IPSO Objects from the JavaScript objects.

Leave a Reply

Internet is huge! Help us to find great IoT resources and products.


The ioTStash is a collection of all the best resources and products related to the Internet of Things.

Discover the Internet of Things and beyond.