Object Profiles

Creating and using object profiles

Object Profiles describe the shape of Objects i.e. what properties (resources) an objects has, the data type of each property (resource), and metadata describing the object and it properties.

MobiusFlow object properties are called resources. A resource holds a single value associated with an object.

E.g. an air quality sensor object may have separate resources for temperature, humidity, and CO2 level.

For more information on objects and resources read the MobiusFlow Architecture article.

Before creating objects you must first define an object profile. Profiles can be created from scratch, or based on a predefined template or existing object profile.

Profile IDs (PIDs)

All object profiles must have a unique profile ID or PID. This is a four digit hexadecimal number and can be any value from 0200 to FFFF as long as a profile with that PID does not already exist. The PID will form part of an object's URI identifying the object's type, and can be used when subscribing to object or resource COVs to filter by object type.

See MobiusFlow Uniform Resource Identifiers for more information.

Resources

All live data in MobiusFlow is stored in object resources. Each resource stores a single simple value of a specific type. These types include

bool

Boolean value (true or false)

string

Text string value

number

Numeric floating point or integer value

datetime

A date and time value in ISO format e.g. 2025-11-23T18:56:08.175Z These values are always in the UTC time zone as indicated by the Z See 'Zulu Time'

enum

An enumerated value e.g. LARGE | MEDIUM | SMALL

When writing a value to a resource it should always be of the correct type although values will be coerced to the correct type if possible.

In addition to setting the data type for a resource you can also define some settings for each resource. These settings will depend on the type e.g. a string resource will have a setting for the maximum length and a number resource will have settings for the maximum and minimum value that can be stored.

Codecs, Preprocessors, and UI Layouts

For each object profile you can also define a Codec, Preprocessor, and UI Layout.

Codec

Codecs are used to encode and decode raw telegrams from sensors and data sources

Preprocessor

Preprocessors are run every time a new value is written to a resource. They are used to modify the value before it is written e.g. change from °C to °F, or update another resource e.g. update a message counter

UI Layout

Define additional inputs on an object's settings page and map these inputs to resources to set default values. UI Layouts are often used to capture things like sensor ID when configuring objects

Last updated

Was this helpful?