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.
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.
It is possible to create objects directly from a template. The object profile will be created for you.
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.
Once an object profile has been created its PID cannot be changed.
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?

