Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 123 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Public Documentation

Loading...

Loading...

MobiusFlow V3

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

User Guides

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Technical Docs

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Welcome

Welcome to the MobiusFlow® documentation

MobiusFlow® connects, controls and communicates with 1000s of sensors and control devices to provide actionable insights and automated responses. Developed and successfully deployed with many projects over the past 17 years by engineers with first-hand experience in project management and installation such as CBRE, Ingram Micro, TD Synnex and IBM.

Whether you are looking for a full walkthrough or just dipping in to get more information about a single topic, our documentation site is the perfect companion to the training courses on our main site.

3️⃣ MobiusFlow Version 3

We have rebuilt MobiusFlow from the ground up. MobiusFlow V3 has a bunch of new features and enhancements improving both performance and adding improvements to data handling, searching and customisation.

This section is dedicated to guides and technical knowhow related to version 3.

To help you become a MobiusFlow Ninja, look out for our 💥 Interactive Demos in the MobiusFlow 3 articles.

📖 User Guides

The user guides are instructional walkthroughs. Follow these guides from start to finish or jump to a section to learn how to perform specific tasks.

⚙️ Technical Docs

Looking for more detailed technical information? These articles dive deeper into the more technical aspects of MobiusFlow®, from Architecture to API details, ports, protocols, configuring services creating flows, and more.

Our documentation is always improving and we are adding new articles each week, so come back often to see whats new.

We need your help to improve. Please rate the articles and raise support tickets to tell us where we can improve, what articles are missing, and point out any errors.

MobiusFlow Overview

The MobiusFlow software has been developed as an MQTT object bus which normalises all device data into standardised MobiusFlow objects which allow interoperability between all devices either real or virtual in the field or Cloud.

MobiusFlow enables actuators, sensors & controllers to connect, control and communicate with each other and to the Cloud so that IoT solutions using scalable monitoring, visualisation and predictive analytics can provide valuable insights into your business and act upon them automatically.

  • A complete control and communications platform

  • Microservice based architecture

  • Secure, open protocol based on MQTT

  • Scalable to 1000s of devices

  • Platform and language independent

  • Does not depend on a network connection for local control

  • Provides full discovery of nodes, objects and resources in all directions

  • Pub / Sub change of value notifications

  • All sensor and actuator data is normalised from any source such as OPC UA/ BACnet/ DALI/ EnOcean/ LoRaWAN / Analog / Digital etc.

MobiusFlow has been designed from the ground up as a micro service based design with a simple but common set of API commands. All communication between micro services is performed using the MQTT protocol, ensuring that micro services can be written in any programming language and will run on any device capable of TCP/IP network communications. The only requirement for any MobiusFlow system is that it contains at least one Node. This Node consists of a MobiusFlow Hub which initiates and facilitates communication between micro services in a secure way. Micro services can run on the same device as the Hub, or on another device such as a temperature sensor, connected to the Hub via a connection capable of transmitting via TCP/IP (provision has been made for future expansion, by adding translation services, to allow micro services to communicate with the Hub over any transmission medium capable to transmitting binary data).

Each Node is typically a stand-alone island which does not require any connection to any other device in order to perform local control. Nodes can be connected together via secure MobiusFlow Routers allowing the creation of a network of interconnected Nodes. When used in this configuration, Nodes can share data with each other and influence the control algorithms running on any connected Node.

Vanilla MQTT has some limitations in its usefulness as a peer to peer messaging and control protocol. It is based around the Publish / Subscribe pattern which is ideal where multiple devices are sending data to a single end point for logging etc. MQTT can be used where devices or services need to have a two way peer to peer flow of communication but the different services need to be aware of each other at design time. MobiusFlow defines a protocol layer above MQTT which enables discovery of devices and services at runtime and then allows two way peer to peer communication to take place, ensuring that new devices and services can be added at any time without having any design time knowledge of the other devices and services in a system.

System Services

System Services are required my MobiusFlow to function correctly. Examples include the Engine API and Historian services.

MobiusFlow Engine API

The MobiusFlow Engine API service is a RESTful API used by MobiusFlow Toolbox, Flows, and user applications to both configure an instance of MobiusFlow and read and write data to MobiusFlow objects.

It is not possible to configure or stop this service from MobiusFlow Toolbox as this would prevent Toolbox from communicating with the MobiusFlow Engine.

More details about this API can be found here.

MobiusFlow Historian

MobiusFlow Historian is a time-series database for storing data generated and collected by MobiusFlow. This time-series data can then be used my MobiusFlow View to create dashboards or by external applications for data analytics and artificial intelligence.

The MobiusFlow Historian service pushes data whenever it changes to a MobiusFlow Historian database. More information can be found here.

UI Layouts

Defining new object UI Layouts

MobiusFlow Engine API v3

MCP Server

Details of the Historian MCP Server for use with AI LLMs / Agents

The historian MCP is hosted as part of the Historian Data API on the following endpoint:

/api/historian/v3/mcp

Please note that the server does not support connection via the deprecated STDIO standard.

Authentication

Authentication works in the same way as all calls in the Historian Data API. You must include x-api-key as a header:

Keys can be managed via the MobiusFlow View application.

Tools

All tools are exposed when connecting to the MCP server. Currently available tools include:

  • get-all-objects-name-uri-map

  • get-closest-matching-object-by-name

  • get-telemetry-for-mulitple-series

  • get-profiles

Input formats for all tools can be obtained by connecting to the MCP server.

Documentation for output formats is coming soon, however is not normally required for agentic application.

Configure MQTT Page

Configure the MQTT connection to MobiusFlow®

MobiusFlow® connectors send and receive data via MQTT. You need to configure the MQTT settings to match the configuration you set in the Configuring MobiusFlow® section of this guide.

MQTT configuration

MQTT Broker Settings

You can choose any MQTT client ID but this must be unique for your MQTT broker. The default is the connector's serial number

Enter the IP Address or URL of the MQTT broker. You do not need to specify MQTT:// or MQTTS:// before the URL

Enter the MQTT Port number. This is normally 1883 or 8883 for TLS enabled connections

If required enter the MQTT broker authorisation Username and Password. These can be left blank if no authentication is required

Enter the same pre-shared key (PSK) as you entered in the Configuring MobiusFlow® section of this guide

Security

If you are using TLS make sure you check the TLS using CA Certificate option. You must also set the correct CA Server Certificate on the Manage Certificates page

You may also choose to use a Client Certificate and Key. Check this option if required and ensure that you have setup your client certificate and key on the Manage Certificates page

Save Settings

Once you have configured all MQTT settings click the Save button

Click the Home button on the settings saved confirmation page to return to the Home page

x-api-key: YOUR_KEY

User Management

Manage users and roles

All access to MobiusFlow Toolbox and the MobiusFlow Engine API requires a valid username and password. Adding, deleting, and modifying users is done on the User Management tab on the Settings page.

Make sure to change your default admin user password or create a new account and delete the default admin account as soon as possible!

The User Management page shows a list of all users with their roles, whether they are active or not, and an Actions button for additional user management.

As MobiusFlow is designed to run both online and offline it is not currently possible to retrieve a forgotten password. Make sure you keep your administrator password in a safe location!

User Roles

There are three user roles, Viewer, Editor, and Administrator.

Viewers

  • View services, objects and live data

  • View flows

Editors

  • Add, edit, and delete services, objects and live data

  • Start and stop services

  • Add, edit and delete flows

  • Add edit and delete object profiles

  • Import and export configuration

Administrators

  • Add, edit, and delete services, objects and live data

  • Start and stop services

  • Add, edit and delete flows

  • Add edit and delete object profiles

  • Import and export configuration

  • View and manage users

  • Modify system settings

Adding Users

Click on the Add User button to view the Add User dialog

Enter a Username, select a role, and enter the user's initial password. Users can change their own password later

The new user will appear in the users list

Managing Users

Click on the Action button (three vertical dots) next to a user to open the user management menu

Change Password

Change the password of an existing user. This is useful if a user forgets their password or you want to change the password of a service account

Change Role

Change the role of an existing user

Active / Deactive User

Users are active by default but can be activated or deactivated. Deactivated users will no longer be able to log in.

Delete User

Permanently delete an existing user. You will need to confirm your action before the user is deleted.

Service Accounts

Access to the MobiusFlow Engine API requires a valid user with the correct role.

We recommend creating service account users with the Editor or Viewer role for API access. You should consider a separate account for each service that requires access as revoking access to a specific service can be as simple as deactivating that service account.

Flows use the MobiusFlow Engine API to interact with services and objects. You should create a service account to use with Flows

Profiles

Services

Object

API Object & Resource Calls

The object calls are used to read, add, remove and manipulate MobiusFlow objects and resources.

What's New?

Welcome to MobiusFlow re-imagined...

MobiusFlow V3 has been built from the ground up. We have listened to your feedback and added a host of new features to make MobiusFlow even more powerful and easier to use.

Tagging, we added it, custom object profiles, there too, and to make you even more productive we have added the ability for you to write your own data pre-processors and codecs. We are excite about these new features and are sure you will be too!

Engine and

Both the MobiusFlow Engine (the heart of MobiusFlow) and MobiusFlow Toolbox have been completely rewritten to be more efficient and easier to use.

Object profiles define the shape and properties of MobiusFlow objects. Before version 3 object profiles were built into each release and could not be easily created or modified by users.

Version 3 has redefined how object profiles work. Object profiles can now be freely created by users in a simple editor. In fact each new instance of MobiusFlow has no object profiles defined. Instead we have taken all of the object profiles from version 2 (and a bunch of new ones) and created object profile templates.

Object profiles can be created from scratch, from templates, or from any profile that you have already created and then customised to your application. This gives users full flexibility without adding complexity as new objects can also be added directly from templates and MobiusFlow will automatically create the profile for you.

Object profiles (along with their preprocessors, codecs and UI layouts) can be exported and imported allowing you to create your own library of profiles to be used on other projects.

Have you ever needed to modify data before it is written to a resource? Have you wanted to change from °C to °F on the fly as new data arrives? Was totalising energy readings from meters difficult?

Not any more as preprocessor functions will do that for you!

Each object profile can have a preprocessor function written in Typescript or Javascript which allow you to do just that, you can even write it directly in a built in IDE in MobiusFlow Toolbox.

Codecs make adding new decoders for raw sensor data a breeze. Instead of waiting for us to add new decoders for sensors like EnOcean, LoRaWAN, or Ingy, you can create an object profile and define the codec to decode the raw sensor telegram. As with preprocessors, these codecs can be written in Typescript or Javascript using the built in IDE.

Capturing default values such as sensor IDs when configuring objects is simplified by adding your own configuration UI in a simple JSON format.

The data stored in MobiusFlow objects can now be persisted between restarts of a service. No longer will temperate values drop to zero, people counts be lost, and energy readings disappear when services are restarted! Persistence can be configured on a service by service basis and values are included in backups

Powerful tagging features have been added to both objects and resources. Tags can be defined on object profiles so that they are automatically added to each instance of an object, and added to individual object instances.

You can use simple tags or add values to tags. Tags are included as metadata when reading values or receiving change-of-value events via the new API.

Exporting and Importing Profiles

Preprocessors, Codecs and UI Layouts

For version 3 we have chosen to use epoch versioning so don't be surprised that our new software versions start from 3000

Toolbox
Custom Object Profiles
Preprocessors
Codecs
UI Layouts
Value Persistence
Tags

Profile

Getting Started

What is MobiusFlow®?

MobiusFlow® is a middleware software application

MobiusFlow® connects, controls and communicates with 1000s of sensors and control devices to provide actionable insights and automated responses. Developed and successfully deployed with many projects over the past 17 years by engineers with first-hand experience in project management and installation such as CBRE, Ingram Micro, TD Synnex and IBM.

Deleting Services

Deleting services from a MobiusFlow instance

Overview

Deleting a service also deletes all of its objects. This action cannot be undone!

To delete a service, first click on Services in the main menu and then find the correct service card.

In the service card toolbar click on the Delete button. A confirmation dialog will appear. Enter the text shown (you can click on the copy icon to save typing) and click Confirm.

💥 Interactive Demo

Adding Services

Adding services to a MobiusFlow instance

Overview

As each application differs you will need to chose which services are required for your application.

To add a service, first click on Services in the main menu and then click on the Show Library button to show the list of available services, find the service you want to add, and click on the Add button for that service.

The service will get added to the configuration with the next available Service ID (SID)

You can click on the Hide Library button to hide the service library when you are done.

💥 Interactive Demo

Technical Training Guides

Repository of Technical Training walkthrough guides

Accessing a Service's Objects

Access the objects belonging to a service

Overview

All MobiusFlow Objects must belong to a service. To add, delete, modify, and view a service's objects you can either click on the main body of a service card on the Service's page or click on the service in the main menu.

You cannot access the objects page for .

For more information on managing objects please refer to the Objects page.

💥 Interactive Demo

MobiusFlow Toolbox v3

MobiusFlow Toolbox is a browser-based engineering tool enabling users to easily configure and monitor an instance of MobiusFlow

Configure Network Page

Configure the wired or wireless Ethernet connection

You can choose to use a wired or wireless (2.4GHz WiFi) connection to connect a connector to your MobiusFlow® instance

Select your network type using the Connect Via dropdown. The page layout will change depending on the option selected

When using a wireless connection you need to enter the WiFi network's SSID (name) and password. You can click on the Scan WiFi Networks button to get a list of available WiFi networks

You can set a connection timeout in minutes. If the connector fails to connect to a network within this time it will reboot and try again

MobiusFlow Historian

What is MobiusFlow Historian and how to configure it

Deploying MobiusFlow On-Prem

These subsections explain deploy MobiusFlow On-Prem.

Page

You can choose to use a DHCP server to allocate the connector an IP Address or set a static IP Address. If you choose to use a static IP Address a few more options will be shown. Set these according to your network
DHCP address
Static address

Once you have configured all network settings click the Save button

Click the Home button on the settings saved confirmation page to return to the Home page

Select Network Type

Select TCP/IP Mode

Wired connection
Wireless connection

Save Settings

System Services

Service and Object Configuration

For MobiusFlow 1.x.x only

The configuration page is used to create and configure the MobiusFlow configuration for a Mobius node (see MobiusFlow Architecture). The page is split into five main sections:

  1. The main menu

  2. The services palette

  3. The objects palette

  4. The configuration tree

  5. The service and object configuration section

The main menu is displayed on all pages. It allows switching between Configuration, Diagnostics, Node-RED Flows and Administration. The Administration option is only shown for users who have admin privileges.

The services palette shows the list of Mobius services that can be added to the configuration. To add a service to your configuration drag it from the services palette and drop it on to the configuration tree.

The objects palette shows the list of Mobius objects that can be added to the configuration. To add an object to your configuration drag it from the objects palette and drop it on to a service in the configuration tree.

The configuration tree shows the services and objects currently added to the configuration. Clicking on the triangles on the left of the tree either expands or contracts a branch of the tree. The currently selected item is shown as highlighted in orange.

To delete a service or object, hover over the item and click on the dustbin icon which appears to the right of the item.

Deleting a service deletes all associated objects

This section is dynamic and updates depending on which item has been selected in the configuration tree. If a service has been selected the service's configuration properties are displayed. Similarly, selecting an object or object resource shows the relevant configuration options.

Always click the Save Changes button to persist changes to a service, object or resource configuration. Any changes to a service, object or resource only become active after the service has been restarted on the diagnostics page.

Node

Tags

What are tags and how do I use them?

Tags are a powerful way to organise your objects and resources making it easier to find and group similar pieces of data.

Tags can be a simple key word or phrase (much like a hashtag in social media apps) or a keyword or phrase with an associated value.

Tags can be added to and individual instances. Any tags added to an object profile will be automatically added to all objects created from that profile.

The process of managing tags on object profiles, objects, and their resources is the same. To view the tag editor select an object profile, object, or resource and the relevant sidebar will open showing the tag editor. Once the sidebar is open follow the steps below.

In the Add a tag textbox type in the tag name and press Enter

The main menu

The services palette

The objects palette

The configuration tree

The service and object configuration section

Security

Preprocessors

What can I do with Preprocessors and how do you create them?

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

The new tag will appear in the tag list

In the Add a tag textbox type in the tag name followed by = and then the value e.g floor = 1

Press Enter and the tag will appear in the tag list

Tags with values will show the first five characters of the value but you can hover over the tag to see the full value

To modify the value of a tag or add a value to a simple tag just re-enter the tag name and value

To convert a value tag into a simple tag re-enter the tag name with no value

To delete a tag click on the X to the right of the tag in the tags list

Remember to click Save after making any changes

Adding tags

Tag names are case sensitive can have spaces so air_quality, air quality and Air Quality are all valid tag names but are deemed different tags

Adding a simple tag

object profiles
object

Adding a tag with value

You do not need to add a space either side of the equals sign. All white space will be stripped away

Modifying a tag value

Deleting a tag

💥 Interactive Demo

MobiusFlow Architecture

Mobius system

A typical MobiusFlow system consists of a single or multiple MobiusFlow nodes connected together via a TCP/IP network. Each node is capable of operating independently of the rest of the system, but nodes can interact with each other to form a complex system. All node interaction takes place through one or more brokers via a node’s router.In a multi-node system, the location of the broker is not important. It can reside on the same device as one of the nodes or on an independent device.

Each node is classed as, and exhibits the behavior of, an edge computing device. In this context edge devices are not only field devices but could also be on the edge of a server or cloud server providing the server with connectivity to all of the true edge or field devices.

Mobius nodes

A Mobius node consists of a central Mobius hub, one or more Mobius services and optionally one or more Mobius routers.

Services contain the service logic and an object data store. Connections to sensors, actuators and other communication interfaces such as Modbus or BACnet can be added depending on the service’s purpose and controlled through the service's logic.

The object data store models the physical or virtual connections and provides a standardised method for services and other nodes to communicate and share data with each other through Mobius objects.

All of the communications between services through the hub or nodes through routers and brokers is based on the MQTT protocol. The MobiusFlow protocol has been defined on top of this MQTT protocol providing a well-defined API enabling different physical devices and protocols to communicate with each other in a consistent way.

Mobius nodes follow the microservice architecture pattern, where each service is a stand-alone process capable of communication with other microservices creating a large application from small manageable pieces.

Routers are used to cross node boundaries. They provide a secure mechanism for nodes to share data using the MobiusFlow protocol.

The logical structure of a node is detailed below. This diagram shows the hierarchical relationship between all of the parts which make up a node and how objects contain resources, services contain objects and hubs connect to services and routers.

The Mobius URI structure allows addressing any part of a node at any depth.

A Mobius hub is the foundation of a node. At its heart, a Mobius hub is just an MQTT broker which manages and links Mobius services and Mobius routers. Hubs are responsible for ensuring that all services and routers are valid members of a node by verifying their pre-shared authentication key on connection.

Each hub within a Mobius system is given a unique ID. This is a six digit hex number which forms the first part of the Mobius URI hierarchy. When referencing a hub, for example during a discovery process, this unique ID must be used (see ).

When service or router connects to a hub, and has been validated, the hub provides it with a copy of the Mobius object profiles and pre-shared keys files, ensuring that all services and routers connected to the hub are able to communicate and understand one another.

Mobius services are the engines which drive MobiusFlow. Each service is essentially a microservice performing a specific task and possibly acting as an interface to a piece of hardware or a 3rd party service such as Microsoft's Azure platform or the IBM Cloud.

All services MUST implement the full MobiusFlow protocol to enable them to connect to hub and communicate with other services. In addition to implementing the MobiusFlow protocol, services can create Mobius objects to store and share data and can also contain service specific logic to perform the task that they are designed for. When creating services, try an keep them focused on one task and create additional services to perform other tasks. This ensures that services are reusable and Mobius systems can be configured to only contain the logic that they require.

Each service within a Mobius node is given a unique ID. This is a three digit hex number which forms the second part of the Mobius URI hierarchy. When referencing a service, for example during a discovery process, this unique ID must be used.

Mobius routers control all MobiusFlow communication into and out of a node. This ensures that nodes are secure and allows nodes to discover each other within a MobiusFlow system.

Routers are split into two parts, one side of the router communicates internally with its associated hub and all of the services within a node, while the other side of the router communicates externally through a 'no-mans' broker to other routers on other nodes. All external communication is done using MQTT over the WebSocket protocol. This could be done over a secure or non-secure connection (ws:// or wss://).

Routers are capable of routing messages between services belonging to different nodes, essentially allowing a service on one node to read, write and subscribe to change-of-value events on objects in another node.

The key to the MobiusFlow system is Mobius objects. These objects typically model real-world objects and provide a mechanism for sharing data and storing state in a consistent way. Each object has a unique identifier or which can be discovered and used by any part of the MobiusFlow system.

Mobius objects are predefined in an object profiles file which is passed to a services by the hub when a service connects.

Each object within a Mobius node is given a unique ID. This ID consists of two parts and is made up of the object profile ID (PID) which describes the object's type, and the object's instance number (INS). The PID is a four digit hex number which forms the third part of the Mobius URI hierarchy and the INS is a four digit hex number which forms the fourth part of the Mobius URI hierarchy. When referencing an object, for example during a discovery process, this unique ID must be used.

Mobius objects contain one or more resources. It is these resources which are used to define objects that mimic or represent real-world objects. An example of a single object is a room temperature sensor. This object may have resources which define the sensor’s name, location, asset reference, engineering units, set point and actual measured value.

Each resource is capable of storing a single value which can currently be of type Boolean, Number, String, DateTime or TimeSpan. Resources also store meta-data about the value. The actual meta-data depends on the value type chosen. Resources can be read only or read/write. Read only resources have their values set when they are created.

Each resource within an object is given a unique ID. This is a two digit hex number which forms the fifth and final part of the Mobius URI hierarchy. When referencing a resource, for example during a read, this unique ID must be used.

Resources store their values in a priority array. This priority array works in a similar manner to a BACnet priority array. The array has 16 possible locations with location 1 being the highest priority and location 16 being the lowest priority.

When reading the value of a resource the actual value is returned in the PV(present value) property. The PV is always equal to the value of the highest active (non null) priority in the resource's priority array.

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.

It is possible to 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

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.

For each object profile you can also define a , , and .

Manage Certificates Page

Manage certificates for TLS connections

Setting CA / Server Certificates

When using TLS you will need to set the correct CA / Server certificates. You can have up to three certificates set. If the connector fails to connect using one of the certificates it will cycle through all three, trying each one until it connects

The default certificates are ISRG Root X1 certificates which are used when connecting to MobiusFlow® hosted instances of MobiusFlow®

You can set the certificate by pasting the certificate text into the selected certificate slot

Setting Client Certificate and Keys

If your setup requires the use of Client certificates you can set up to four different certificates and keys. Paset these into the selected certificate and key slots

Objects

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

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'

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

Codecs, Preprocessors, and UI Layouts

Codec
Preprocessor
UI Layout
create objects

enum

Deploying MobiusFlow on Customer Servers / Cloud

Deploy MobiusFlow to on pre-existing hardware either On-Prem or in the Cloud

Page coming soon. Please contact [email protected] to arrange a support call on this topic.

Flows

MobiusFlow Engine Agent

This feature is coming soon.

Logical structure of a node

Hubs

Services

Routers

Mobius objects

Object resources

Present value and the priority array

MobiusFlow Uniform Resource Identifiers
Mobius URI
MobiusFlow node, logical structure
{null,null,null,null,null,null,null,null,null,null,null,null,null,null,12,null} -> PV = 12 (priority 15)
{null,null,null,null,null,null,null,null,56,null,null,null,null,null,12,null} -> PV = 56 (priority 9)
{null,null,78.5,null,null,null,null,null,56,null,null,null,null,null,12,null} -> PV = 78.5 (priority 3)

Adding Your First Device

Add your device to a balenaCloud fleet

What You Will Need?

This guide assumes you will be using a Raspberry Pi 4. The instructions are the same for the UP and Intel NUC devices with the exception of loading the initial balenaOS onto your device.

More information and instructions for adding other device types can be found .

  1. A balenaCloud account with Microservices access (this requires a paid account)

  2. A balenaCloud Raspberry Pi 4 Fleet (see Creating a Fleet)

  3. A Raspberry Pi 4 with minimum 1Gb RAM and 8Gb storage (eMMC or microSD card. The following instructions are for an SD card)

  4. A power supply for your Raspberry Pi 4

  5. An Ethernet network cable

  6. An internet router with a free Ethernet port (or an Ethernet port on your LAN with internet access)

  7. An SD card adaptor for your laptop or PC

  8. balenaEtcher installed on your laptop or PC. You can download balenaEtcher

Navigate to your and login in

Navigate to the Fleets page

Click on the fleet you want to add a device to

Click on the Add device button

Leave all of the default settings. You can add a WiFi network (client or AP) later.

Select the Download balenaOS option in the drop down button. The balenaOS will start to download

Place your microSD card into your SD card adaptor and connect it to your laptop or PC

Open balenaEtcher

Select Flash from file and choose the balenaOS image you downloaded above

Select your SD card as the target

Click on the Flash button

balenaEtcher will burn the balenaOS to your SD card and make it a bootable image. Wait for this to complete and for the image to be verified

Remove the SD card from the SD card adaptor and insert it into your Raspberry Pi 4's SD card slot

Plug the Ethernet cable into your Raspberry Pi 4's Ethernet port and your network

Power up your Raspberry Pi 4

After a few minutes your new device will appear in the balenaCloud dashboard. Navigate to your balenaCloud dashboard, select your fleet and view the fleet's Summary page.

You device will be added to the list at the bottom of the page. It will be given a random name which you can change on the device's summary page

You have successfully added a new device to your balenaCloud fleet. To deploy MobiusFlow® to this device go to

Object Profiles Page

Object Profiles Page

To open the Object Profiles page click on Object Profiles in the main menu.

You must have Administrator or Editor roles to see the Object Profiles option in the main menu

The object profiles table shows a list of all of the profiles that exist on this instance of MobiusFlow. Any profiles that have not been used to create objects, and therefore can be deleted are shown with a greyed out PID and icon.

Above the table is a toolbar with options to

  • Create a new profile

  • Filter the list by profile group

  • Search for a profile - this filters by PID and profile name

  • Import and export profiles

  • Set the density of the grid

Clicking on a profile in the table opens the Profile Settings Sidebar. The width of the sidebar can be changed by dragging on the vertical splitter.

Getting Started with Toolbox

MobiusFlow Toolbox supports the latest versions of most modern web browsers. We recommend the following:

  • Google Chrome

  • Firefox

  • Safari

Service

API Service Calls

The service calls are used to read, add, remove and manipulate MobiusFlow services.

Administration

The Administration page covers user management, backup and restore, licence settings, security as well as setting the node's Hub ID. The page is divided into corresponding tabs accordingly.

Users can be added, modified and deleted from within the User Management Tab on the Administration page.

Backup and restore functionality is accessed via the settings tab on the Administration page. A full article covering backup and restore can be found .

All Mobius nodes are identified by their hub ID. This is a six character hexadecimal number and should be unique within any group of Mobius nodes. See and for more information about Hub IDs.

Auth

Adding a Device

Burning the balenaOS onto the SD Card

All data on your SD card will be overwritten!

Confirming Your Device is Connected to balenaCloud

If your device does not appear in the list, check that it is powered up and that the network port you have it plugged into has an internet connection.

here
balenaCloud dashboard
Deploy MobiusFlow® to Your Fleet
here
Add a new device
Add new device details
Viewing the fleet's device list

User administration

Backup/Restore

Setting the Hub ID

here
MobiusFlow Architecture
MobiusFlow Uniform Resource Identifiers

Codecs

What are Codecs and how do you create them?

Edge

Open your web browser and navigate to your MobiusFlow Toolbox instance. This is typically a fully qualified domain name followed by /toolbox

The first time you login you must use the initial administrator credentials supplied to you. You can change the default admin password and create new users once you are logged in.

Supported Browsers

MobiusFlow Toolbox requires Javascript to be enabled on your browser

Logging In

The exact URL will depend our your installation, but for instances hosted in the cloud by MobiusFlow the URL will have been provided or you will have chosen it when creating a hosted instance in MobiusFlow Manager

Make sure to change your default admin user password or create a new account and delete the default admin account as soon as possible!

Cloning Services

Learn how to clone a service and all of it objects

Overview

To create a copy of a service along with all of its settings and objects you can click on the Clone button on the service card of the service you want to copy. The new service will be given the next available SID. You can change the SID in the service's settings if required.

💥 Interactive Demo

MobiusFlow Uniform Resource Identifiers (URIs)

Within a MobiusFlow system all hubs, services, objects and resources are identified by a unique address known as a Uniform Resource Identifier or URI. These URIs are hierarchical so given the URI for a Mobius resource it is possible to identify which object the resource belongs to, what the object type is, which service the object belongs to and which Mobius node the service is running on.

An object’s URI (or name) is defined in 4 parts, namely the hub ID (HID), service ID (SID), object profile ID (PID) and instance number (INS). A fifth part is added when accessing a specific resource, the resource ID (RID).

Ports and Endpoints

The ports in used by Mobius Gateways. These are for services that can be hosted on the Gateway.

Port
Protocol
L4 Protocol
Description

MobiusFlow Engine API

Description of MobiusFlow Engine RESTful API V1

The MobiusFlow Engine API is used interface with MobiusFlow via http and https. The API allows clients to perform all functions within MobiusFlow, from managing user accounts, to getting and setting data, as well as manipulating the MobiusFlow configuration by adding, removing and editing MobiusFlow objects, services and flows.

Additionally, the API allows clients to subscribe to specific real-time events within happening within a given MobiusFlow instance (see ). In this use case, the API will upgrade the client to use the Websocket protocol (ws / wss).

All API endpoints are described in the following subsections. The subsections are divided into the functional groups (controllers); , , , , , , , and .

Deploying MobiusFlow in MobiusFlow Cloud

For most use cases, Deploying MobiusFlow in the MobiusFlow Cloud is simplest and most cost effective hosting option.

Customers can create new MobiusFlow instances themselves using the MobiusFlow manager platform. A full guide on how to use this platform can be found .

When creating a new MobiusFlow instance using manager ensure the Host instance on MobiusFlow Cloud option is checked:

On creation, there are several options that must be populated:

This is the URL the new MobiusFlow cloud instance will be hosted on. In the above example, Manager has automatically suggested average-pug-2488. As such, new Cloud instance will be accessible at the URL average-pug-2488.mobiusflow.io.

Objects

What are MobiusFlow objects and how are they used?

MobiusFlow Objects represent real or virtual devices such as sensors, rooms, pieces of equipment, and machinery. All objects are based on an which describes the shape of the object 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 article.

Objects must belong to a . To add new objects or configure existing objects on a service open the Service's Objects page by clicking on the service in the main menu or clicking on the main body of a service's card on the Services page.

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.

Object Profile
MobiusFlow Architecture
service

MobiusFlow Basics

Learn how to use the full version of MobiusFlow

MobiusFlow Raspberry Pi Connector

If connecting to a local instance of MobiusFlow, the http protocol can be used. If connecting to an instance of MobiusFlow via the internet, https should be used. The API is always exposed on port 8443.

All endpoints lead with:

{{protocol}}://{{hostname}}:8443/api/v1

Where the protocol and hostname parameters are replaced with the true protocol and hostname. For example, in the case of connecting to a local instance of MobiusFlow, the leading path would look like:

http://localhost:8443/api/v1

Swagger documentation describing the API in full, can be found here. This documentation includes example bodies and responses for every endpoint. Finally, a postman collection containing parameterised examples of all client calls can be downloaded below.

Controllers

Protocols, Endpoints and Ports

subscription controller
Authorization
Discover
Node
Service
Object
Profiles
Command
Flows
Subscription

Further Documentation & Postman Collection

39KB
Mobius Engine API.postman_collection.json
Open

Adding Objects to a Service

Each part of an object’s URI is a hexadecimal uppercase string of a defined length (as shown in the table below). The URI’s parts are separated with a forward slash (/).

A full URI is typically defined as HID/SID/PID/INS/RID.

It is possible to address any part of the system by only using the required parts of the URI. e.g. to address a service only the first two parts of the URI are used HID/SID and to address an object only the first four parts are used HID/SID/PID/INS.

URI Section

Length

Example

Description

HID

6

000001

The Mobius Hub or node ID. This should be unique within a MobiusFlow system.

An example of an object URI for an object of instance 1, profile 3A, created by service 1F connected to hub 1 is:

000001/01F/003A/0001

and if addressing resource 40 on that object the full URI would be:

000001/01F/003A/0001/40

Under certain conditions, such as subscribing to a resource’s change of value event, it is possible to use wildcards in the URI. These wildcards are described in the table below and follow the MQTT standard.

Wildcard

Meaning

Example

+

Any value in this location

000001/+/003A/+/40

#

Any value in this location and all subsequent locations

Mobius URI Definition

Mobius URI Wildcards

443

https

TCP

502

modbus

TCP

not enabled by default, only on physical gateway

1883

mqtt

TCP

not enabled by default

4840

opc-ua

TCP

not enabled by default, only on physical gateway

8883

mqtts

TCP

not enabled by default

8443

http / https

TCP

Engine RESTful API

30815

mqtt

TCP

mobius sensor gateway

The physical gateways fleet management and remote connectivity service require outbound access to these services

Port
Protocol
Description

53

UDP

DNS: used by devices to resolve hostnames for connection to the service

123

UDP

NTP: used by devices to synchronize time

80

http

TCP

This selects the version of MobiusFlow to use. If use for the MobiusFlow LoRaWAN LNS is required, ensure the MobiusFlow V2 with LoRaWAN Stack option is selected.

This specifies the region of the world the new Cloud instance is to be hosted on. It is recommended to host the instance as near to where it will be used as possible.\

Once a MobiusFlow Cloud hosted instance as online, an Environment is created, in-turn controlling how the instance can communicate with the outside world. A full article on this environment can be found here.

MobiusFlow a hosting fee for hosting instances in the MobiusFlow cloud. As such, purchaser permissions are required.

If this option is not available, this is because you do not have purchaser permissions within this fleet.

Hostname

Build Type

here
MobiusFlow manager Instance creation wizard

Region

Deploy MobiusFlow to Your Fleet

Deploy MobiusFlow® to a balenaCloud fleet

What You Will Need?

  1. A balenaCloud account with Microservices access (this requires a paid account)

  2. A compatible balenaCloud fleet (Up Board, Intel NUC or Raspberry Pi 4)

You should always backup your MobiusFlow® device before deploying a new version.

See for more details

Deploying from balenaHub

is a market place for balena.io compatible applications ready to be deployed to your device with just a few clicks.

Navigate to your balenaCloud dashboard and login in

Navigate to balenaHub to select which version of MobiusFlow® to deploy

Navigate to the Apps page

Search for MobiusFlow

Select the correct device type

Click on the Deploy button

Balena will switch to your balenaCloud dashboard

You can create a new fleet here or deploy to an existing fleet. If creating a new fleet refer to the section for details on what settings are required

If you already have a new fleet or want to upgrade the MobiusFlow® version on existing devices, select Use an existing fleet instead

Select the fleet from the drop down and click on the Deploy to fleet button

After a few seconds you will see the new release being built for your fleet

This will take a minute or two. Once the build is complete you will see the release on the dashboard. All devices, which have not been pinned to a specific release, in your fleet will automatically start to update to the new release.

You can also view the release history in the Releases page of your fleet.

Click on a device Summary to see which release it is running. You can also pin device to specific releases on this screen

Starting, Stopping, and Hot Reloading a Service

Learn how to control services

Services can be started and stopped individually and if enabled, and set to run at start, will start automatically whenever the MobiusFlow instance is started.

For more information on enabling services and setting them to run at start refer to the article.

Some services have settings which affect how they operate e.g. the ports used by the MQTT broker service. These settings are typically only loaded on service start so changes to these settings may require a service to be stopped and started before they take effect. If a service is running and any critical settings are changed MobiusFlow Toolbox will notify you that a restart is required.

In addition to service settings changes requiring a restart, changes to object settings will only take affect if a service is restarted or if a hot reload takes place. Any objects that have changes requiring a restart or hot reload are highlighted in the service's objects page.

A hot reload only applies changes to objects and does not apply any service settings changes

Start, Stop, and Hot Reload Controls

The controls used to start, stop, and hot reload services are located on the service's card on the Services page and on the service's objects page. The buttons have the following icons (Start, Stop, Hot Reload).

Starting a Service

Services are started by clicking on the Start button.

When a service starts it first creates all of its objects, loads in any (if enabled) and then runs any logic such as raw sensor data decoding. You can only access objects on running services.

Services are stopped by clicking on the Stop button.

If a service has persistence enabled the current resource values will be persisted before the service stops.

When a service is stopped all of its objects will be destroyed and will no longer be available for reading or writing.

Adding objects or configuration changes to objects on running services will only take affect if a service is restarted or if the service is hot reloaded.

Hot reloading a service does not stop it. Instead all objects that have configuration changes are refreshed and new objects are created without affecting any other objects.

Click on the Hot Reload button to hot reload its objects.

Service Settings

Configuring services

To update a service's settings, first click on Services in the main menu and then find the correct service card.

On the service card toolbar click on the Settings button to open the service settings dialog.

The service settings dialog is shown above. All services have these default settings, but some services may have additional service specific settings. It is beyond the scope of this article to describe any service specific settings, please see the article for that specific service type for more information.

The SID or Service ID is a three digit hexadecimal number. It forms part of a .

When a service is it is given the next available SID, but this can be changed if required. SIDs must be unique within a MobiusFlow instance so you cannot assign a service an existing SID.

Creating a Fleet

Create a new balenaCloud fleet

After signing up to follow their instructions to create a fleet and add your first device. We have simplified the process so you will only need to perform some of the actions they list. The steps below outline the process but for more information see the balena.io .

  1. A balenaCloud account with Microservices access (this requires a paid account)

Navigate to your and login in

Navigate to the Fleets page

Creating Profiles

Learn how to create new object profiles

To create a new profile open the Object Profiles page, make sure that the sidebar is closed, and click on the Create button. This will open the Create Object Profile wizard.

The wizard will have three starting point options. Selecting one of the options will change the steps required to complete the wizard.

Configuring a Connector

Configure a connector to connect to a MobiusFlow® instance

  1. A device with a web browser such as a laptop, tablet or smart phone, capable of connecting to a 2.4GHz WiFi access point

  2. A SIM card removal tool, large paper clip or pin to push the configuration mode button

Discover

SID

3

01F

The microservice ID. This must be unique for all services on a single node.

PID

4

003A

The object's profile ID. This describes the objects type. Object profiles determine what resources an object has available.

INS

4

0001

The object's instance number. This is unique for each object of a specific type belonging to a service.

RID

2

40

The resource ID

000001/01F/#

443

TCP

HTTPS: used by devices to poll for updates and to download application and host OS updates. OpenVPN: used by devices to provide real-time status and control

If this guide is being followed in the context of deploying MobiusFlow Connector software to as Raspberry Pi, ensure MobiusFlow Connector apps are used instead of the standard MobiusFlow App.

Creating a Fleet
Backup and Restore
BalenaHub
balenaHub search
Deploy MobiusFlow® to fleet
Create new fleet or deplot to existing fleet
Choose an existing fleet
New release building
New release deployed
Device details

Factory Resetting a Connector

Return all settings to factory default

If you forget your connector's Config Mode Password or want to fully reset all settings to the factory default follow the procedure below

What You Will Need?

  1. A SIM card removal tool, large paper clip or pin to push the configuration mode button

Factory Reset

Using a pin hold in the configuration mode button (inside the small hole to the right of the USB connector) on the front panel for 10 seconds

While you are holding the button in the green LED will start to flash rapidly and after 10 seconds the connector will reboot. Once you see the power on LED sequence release the configuration mode button

MobiusFlow Historian Data API v3

Configuring MobiusFlow for use with Connectors

Configure a MobiusFlow instance for connectors

Configuring MobiusFlow for use with Connectors uses the MobiusFlow Connectors service. A full guide on how to use this service can be found here.

Disabled services cannot be started.

Stopping a Service

Hot Reloading a Service

💥 Interactive Demo

persisted data
Service Settings
A powered
Mobius
Flow® connector
  • The connector's Serial Number

  • The connector's configuration mode can be enabled in two ways:

    Using a pin hold in the configuration mode button (inside the small hole to the right of the USB connector) on the front panel for 2 seconds

    Release the button and the green LED will flash rapidly

    Using your laptop / tablet / smartphone look for a WiFi network with the same name as the connectors serial number

    Connect to this network and enter the connector's Config Mode Password. The default is mobiusflow

    Open a web browser on your laptop / tablet / smartphone and enter http://192.168.4.1 into the browsers address bar and hit enter

    The web browser will show the connector's configuration Home page

    Make sure that the connector and your laptop / tablet / smart phone are connected to the same Ethernet network

    Open a web browser and browse to <your connector IP address>:8080 e.g. 192.168.1.20:8080

    You will need to enter a user name and password. The user name is admin and the password is the same as the connector's Config Mode Password. The default is mobiusflow

    After a short delay the web browser will redirect to the connector's configuration Home page

    What You Will Need?

    Enabling Configuration Mode

    If you leave the connector in configuration mode for more than 5 minutes it will automatically reboot and leave configuration mode

    Using the Configuration button

    Using a Web Browser

    This method is only available if you already know the IP address of the connector

    The service name can be freely assigned. It has no relevance within a MobiusFlow instance and is just used in MobiusFlow Toolbox to make it easier for you to distinguish between your services.

    Services can be Enabled or Disabled. Disabled services do not run at startup and cannot be manually started.

    If a service is enabled and it is set to Run at Start the service will be automatically started when the MobiusFlow instance starts. If Run at Start is switched off for a service it will not start automatically but can be started manually by clicking on the service's start button.

    Value persistence ensures that objects keep their values between restarts. Please see the Value Persistence article for more information.

    A service and its underlying connection to the rest of the instance (the spoke) each have their own logging levels. Currently these logs are only visible in the terminal on the computer running the MobiusFlow instance and are not visible in Toolbox. We aim to make this available in a future version for developers.

    The default logging levels are set to Info. Please do NOT change these unless instructed by a MobiusFlow engineer during a support incident as excessive logging could cause significant additional CPU load.

    Some services have their own service specific settings. The exact settings will depend on the service type. These are shown at the bottom of the service settings dialog. An example for the MQTT Broker service is shown below.

    Some service settings changes may require a service restart to take effect. If a service is running you will be notified if you need to restart the service

    General Settings

    SID

    Name

    MobiusFlow Uniform Resource Identifier
    added

    Enable Service

    Run at Start

    Value Persistence

    Logging Levels

    Service Specific Settings

    💥 Interactive Demo

    Click on the Create Fleet button
    Create your first Fleet

    Enter a fleet name

    Choose device type Raspberry Pi 4 (using 64bit OS)

    Select fleet type Microservices

    Click on the Create new fleet button

    Create new fleet details

    You have created your first balenaCloud fleet! Now go to Adding Your First Device to add a device to this fleet

    What You Will Need?

    This guide assumes you will be using a Raspberry Pi 4. The instructions are the same for the UP and Intel NUC devices with the exception of loading the initial balenaOS onto your device.

    Creating a New Fleet

    A fleet is a collection of devices with the same device type (or architecture). Fleets allow simple management of a group of devices

    balenaCloud
    documentation
    balenaCloud dashboard

    Existing Profile

    Use an existing profile as the starting point

    If you choose to start with a blank profile and click Next, you will jump to the last step which is Finalise Settings

    Choosing to start from a template or existing profile and clicking Next will require you to select either a template or existing profile. These are shown in a table, which can be filtered. Select one of the rows before clicking on Next to view the last Finalise Settings step.

    Depending on your starting point, the Finalise Settings form will be blank or have some fields pre-populated by the template or existing profile.

    Fill in all required fields and optionally add a description and tags before clicking on Create Profile.

    A unique profile ID as a four digit hexadecimal number from 0200 to FFFF.

    The group is used by MobiusFlow toolbox to aid in filtering the object profiles. You can select from an existing group or type in a new group name.

    The profile name is used to help identify this profile. It normally starts with a lower case letter and does not contain spaces, but can containg underscores and dashes.

    The user interface name is a human readable name normally used by MobiusFlow View to make selecting profiles easier for non-technical users.

    A Blank Profile

    Start from scratch

    Profile Template

    To close a sidebar click on the X button in the sidebar toolbar

    Use an existing profile template as the starting point

    Start From a Blank Profile

    Start From Profile Template or Existing Profile

    The Codec, preprocessor, UI layout, and all resources defined in the template or existing profile, along with their settings will also be added to the profile when it is created

    Finalising Settings

    PID

    Group

    Profile Name and User Interface Name

    💥 Interactive Demo

    MobiusFlow Official Connector

    Configure your MobiusFlow Connector and connect it to a MobiusFlow instance

    MobiusFlow Offical Connector

    Part Numbers

    It is possible to have up to two radios for wireless sensors in a single connector. This is useful when you have combination of sensors using different protocols.

    The current options are EnOcean and Workplace Occupancy using either 868MHz for the EMEA region of 915MHz for the USA and Canada.

    Part Number
    Region
    EnOcean
    Workplace Occupancy

    Diagnostics and Service Control

    For MobiusFlow 1.x.x only

    Service diagnostics and control

    The service diagnostics and control page shows all of the configured services, their current status and controls to start and stop services.

    Run state column

    The Run State column (2) shows the current run state of the services in a traffic light. The colours are defined as follows:

    • Grey - Not running, never started

    • Red - Not running, manually stopped

    • Amber - Starting or attempting to start

    • Green - Running

    The Actions column (3) has start / stop buttons for each service. Services can be manually started or stopped by clicking on the action buttons.

    These action buttons do not modify the value of the Run on Start checkbox on the page.

    The service status column (4) shows the current status of all running services. In addition to a text message, the statuses are colour coded as follows:

    • Amber - starting or status unknown

    • Red - service is running but in fault (see text message for details)

    • Green - service is running and not in fault

    The values shown in the Service Status column are tied to the service status object associated with the service. These status objects are automatically created and updated by the services as object profile ID 0001 with instance 0001. You can read the status of these objects but should not write to them.

    The View Objects column (5) are hot-links to the Objects Diagnostics page, but filtered to only show objects belonging the the relevant service.

    The Objects diagnostics page can be shown by clicking on the Objects button on the left of the screen (section 1 in image below) or by clicking on the View Objects hot-link described above. To view all objects belonging to all services use the Objects button (section 1 in image below).

    Clicking on the plus sign (3) next to an object expands it to show all of its resources and their current values (2).

    It is possible to manually modify a resource's value by writing to, or clearing a value in its priority array (see ). Click on a resource to display its full priority array. Click on a priority to modify its value or clear it.

    Resource value modifications are temporary and could be overwritten by a service or Node-RED flow, and do not persist between service restarts or node reboots.

    Value Persistence

    Configuring value persistence

    Value persistence ensures that objects keep their values between restarts.

    In MobiusFlow versions before v3 any restart would cause all resources to be reset to their default values. This would often cause anomalies or loss of data such as all temperature values dropping to zero, meter readings being lost or people counts resetting.

    MobiusFlow 3 has solved this problem by adding optional value persistence. This can be configured on a service by service basis in the service settings. To access a service's settings follow the instructions here.

    When a service starts it first creates all objects with their default values and then applies any persisted values before running.

    Enabling / Disabling Persistence

    You can enable or disable persistence on each service. Changing the persistence enabled state will affect all objects belonging to that service.

    If you wish to have persistence enabled only for some objects consider adding another service and splitting your objects between services, one with persistence and one without

    You can enable or disable persistence by clicking on the Enable Persistence switch in the service's settings.

    Disabling persistence will also delete any persisted values. If you need to reset the persisted values you can disable and then re-enable persistence.

    In order to lower CPU load values are only persisted at regular intervals and not on every value change. You can set this interval (in minutes) in the service's settings. Try to find a reasonable balance between saving the current values and load on the system. The more objects a service has, the greater the CPU load required to persist the values.

    Services have persistence enabled with an interval of 5 minutes by default.

    About Page

    Get connector details and update firmware

    The about page shows you information about the connector. You can also update the connector's firmware by clicking on the Update Firmware button

    About page
    Update firmware page

    Updating Firmware

    Click on the Update Firmware button on the About page

    Click on Choose File and select the firmware file you want to upload

    Click on the Update button

    After a few minutes the connector will reboot and start running the new firmware

    Make sure that you choose firmware with the same model number as your connector!

    Users

    Commands

    Converting Raspberry Pi to a MobiusFlow Connector

    How to convert a Raspberry Pi into a MobiusFlow Connector

    A Raspberry Pi is required. Currently supported Raspberry Pi models include:

    • Raspberry Pi 4

    • Raspberry Pi 5

    An SD card for each Raspberry Pi is required to store the connector image. We recommend a minimum storage of 8GB.

    Most protocol types require specific hardware to translate that protocol to the Raspberry Pi.

    Deploying MobiusFlow to approved Hardware (Using BalenaCloud)

    Deploy MobiusFlow or MobiusFlow RPI Connector software to a new balenaCloud device or update existing devices

    BalenaCloud is a small device fleet management platform which simplifies the process of managing and maintaining 1000s of edge devices. It allows secure remote access and monitoring of each device and installing and updating product firmware of an entire fleet with a few simple clicks. See for more information.

    We currently have software images for thee different device types for balenaCloud. These are:

    The MobiusFlow RPI Connector works with the following Raspberry Pi types:

    • Raspberry Pi 4

    MobiusFlow Data Agent

    This page explains the MobiusFlow Data Agent found in MobiusFlow View

    The Data Agent introduces an agentic / chat style interface to interact with your MobiusFlow data. The enables tasks such as:

    • Reporting what data exists

    • Summarising data, both present and historical

    Basic Navigation

    Navigating around the Toolbox UI is very simple. The key areas are as follows:

    • The current user is shown in the top right of the window. You can click on this button to change your password or log out

    • The collapsable menu on the left side of the window is a quick way to access your configured Services, Flows, Historian settings, Object Profiles and instance Settings. Clicking on the menu icon in the the top left corner will either collapse or expand the menu. As you add new to your configuration they will shown in the menu under the Services heading

    Object

    Actions column

    Service status column

    View objects column

    Object and resource diagnostics

    Modifying a resource value

    services configuration
    MobiusFlow Architecture

    With the exception of Flows, clicking on an item in the left menu will show the view for that selection in the main view. Clicking on Flows will open the Flows window in a separate browser tab, or navigate to that tab if it is already open

  • Configuration of specific items such as services, objects and profiles will be shown in a pane to the right of the main view. This pane is only visible when a configurable item is selected

  • Navigation

    services

    EXT10102

    US (915MHz)

    EXT10110

    US (915MHz)

    EXT10112

    US (915MHz)

    EXT00102

    EMEA (868MHz)

    EXT00110

    EMEA (868MHz)

    EXT00112

    EMEA (868MHz)

    Download Connector Firmware

    v3.1.1

    v3.2.0

    10MB
    EXTxxxxx_v3.1.1.zip
    archive
    Open
    10MB
    EXTxxxxx_v3.2.0.zip
    archive
    Open

    The following transceiver types are supported. Only 1 is required per Pi:

    Transceiver
    Notes

    TCM310 (Pi Hat)

    868MHz (Europe) EnOcean transceiver to plug into Raspberry Pi header

    TCM310U (Pi Hat)

    902MHz (North America) EnOcean transceiver to plug into Raspberry Pi header

    USB 300 (USB Stick)

    868MHz (Europe) EnOcean transceiver to plug into Raspberry Pi USB Port

    MobiusFlow Raspberry Pi connectors run Balena OS. Athlough not required, if your organisation registers with BalenaCloud, Balena OS grants a direct VPN link to the connector, allowing configuration changes to be made over the internet.

    When using more than 5 devices, BalenaCloud becomes a piad service. As such, we offer versions of the Balena images which do not support remote access and therefore do not require a subscription to BalneaCloud.

    The following, no remote access images can be downloaded:

    • Raspberry Pi 4

    • Raspberry Pi 5

    The following is an overview of the steps involved to use BalenaCloud with MobiusFlow RPI connectors:

    1. Create BalenaCloud Account

    2. Create BalenaCloud Fleet

    3. Attach BalenaCloud Fleet to the corresponding MobiusFlow Connector Balena Application

    4. Add a new device to the fleet and download the subsequent Balena image

    5. Etch the image

    We have a full guide on how to use the BalenaCloud with MobiusFlow itself here. Please note

    We recommend using the Balena Etcher tool to etch the images onto an SD Card. The tool is self-explanatory, but full full documentation of how to use the tool can be found here.

    BalenaCloud charges hosting fees when more than 5 devices are associated to the account. If remote access to the Connector confiruation is not required, the device can be deleted from the BalenCloud fleet. The Connector software running on the device will remain, and the device will operate as normal.

    Hardware Requirements

    Raspberry Pi

    Transceiver Hardware

    EnOcean

    Etching SD Image

    BalenaCloud

    Without Remote Access

    With Remote Acccess

    The above guide differs in the context of MobiusFlow Connectors because the BalenaCloud Fleets should be linked to the MobiusFlow Connector BalenaCloud applications, instead of the standard MobiusFlow BalenaCloud applications.

    Etching

    Raspberry Pi 5

    If you are ready to get started, jump into the Creating a Fleet section to begin creating your first fully managed MobiusFlow® device on balenaCloud.

    You must be signed up to balena.io and have a paid plan as these MobiusFlow® images use the Microservices fleet type which is only available on a paid plan

    What is balenaCloud?

    What Device Types are Supported?

    MobiusFlow

    MobiusFlow RPI Connector

    balenaCloud
    Cover

    UP Board from Aaeon

    Image supports:

    • UP2 Edge

    • UP2 Edge Pro

    • Up Extreme Edge

    Cover

    Raspberry Pi 4

    Perfect for:

    • Low cost deployments

    • Proof of Concept applications

    • Testing and demonstrations

    Cover

    Intel NUC

    • Many different manufacturers

    • Wide range of prices depending on specification

    • Always available

    We reccomend at least 1Gb of RAM and 8Gb of storage for all devices

    If you have a requirement for a different device type on balenaCloud contact us at via the or submit a support ticket by clicking on the support link above

    Making data comparisons between multiple data sets
  • Drawing conclusions about the nature of data

  • Making suggestions about changes which could be made to improve real-world systems

  • In the near future it will also allow:

    • Generation of alerts

    • Generation of graphs / cards to supplement data reports

    The Data Agent can accessed via MobiusFlow View. The agent invokes the tools provided by the Historian MCP Sever, whilst being powered by an OpenAI LLM.

    The Data Agent only knows about the data within MobiusFlow Historian. It does not know anything about the underlying MobiusFlow Engine or its configuration (i.e. the plumbing behind the data). As such, it cannot do the following:

    • Reporting of current MobiusFlow Engine configuration

    • Reporting of service statuses

    • Reporting / advising why a specific device / service is not connecting / not functioning as expected

    • Making engine configuration changes such as populating a service or updating an object

    Most of the above tasks can achieved via using the MobiusFlow Engine Agent instead.

    The agent uses an OpenAI LLM backend. MobiusFlow does not currently manage token usage of this LLM and as such, it is left to customers to manage this themselves.

    This means an account on the OpenAI Platform is required. Once created, ensure some credit is added to the account so tokens can be consumed by the agent.

    The MobiusFlow Data Agent is linked to your OpenAI Platform account via and OpenAI API token. This token can be created on the OpenAI Platform website here. Once created, this key must be copied and pasted into the Data Agent when prompted:

    If a key is already set but needs to be updated, the key button next to the chat bar should be used:

    Overview

    Limitations

    Requirements for Usage

    If persistence is not required consider switching it off as it will add some CPU load.

    Setting the Persistence Interval

    In addition to persisting values at a regular interval, values are also persisted when you manually stop a service.

    Default Settings

    💥 Interactive Demo

    MobiusFlow Internal Security

    Introduction

    MobiusFlow is a software platform designed for control and monitoring of sensors and actuators in simple (single instance) or complex (multiple instances working together) systems (see Mobius Overview for more info). It has a microservice based architecture where each microservice can contain both application logic and object state. Object types are predefined and contain any number of resources which represent the values associated to an object’s attributes (e.g. a temperature sensor may contain resources for Name, Location, Temperature etc.). A MobiusFlow node (a single instance of the software) contains a central hub and one or more microservices. All microservices contain an MQTT client and communicate with each other via the hub which is an MQTT broker. The broker is responsible for authenticating the services when they connect. The TCP/IP port used for internal MQTT comms is normally firewalled off to prevent any external traffic and all messages passed between microservices are encoded using JSON Web Token (JWT) to ensure message integrity. If communication is required between Mobius nodes, a Mobius router is added to the configuration. This is a special microservice which handles external traffic between Mobius nodes. All traffic passed through a router is encoded with JWTs using pre-shared keys (PSKs) specifically for this purpose ensuring that no internal PSKs leave a Mobius node. External traffic is also MQTT based and can be secured with TLS if required. One of the most important part of MobiusFlow is the “ Mobius protocol” over MQTT. This is a predefined set of MQTT topics based around the Mobius object URIs which allows “two way point to point” messaging via MQTT. This means that Mobius nodes and microservices can discover other nodes, services, objects and resources and microservices can read and write resource values on objects belonging to any other microservice on any node within a Mobius system. In addition to reading a writing, a microservice can subscribe to object or resource level change of value (COV) messages. The MobiusFlow protocol is similar to the LWM2M protocol but over MQTT.

    The is designed to allow efficient communication for IoT Devices whilst providing structure and definable trust boundaries.

    There are 2 ways to move messages to and from a one is via the designed for this task, and preserving the integrity of the the message within the node. the other is with a dedicated , this breaches that integrity to a degree but may be desirable and even necessary in some situations.

    With Each node consisting of the base of a hub and one or more services, and optionally routers. If for the purpose of this initial discussion assume that the services are only communicating with local hardware, or handling logic, therefore having no mechanism for communicating off of the local hardware. We will discuss how this can be achieved later on.

    As the hub is created a pre-shared key (psk) file is generated, these can also be changed using the configuration service. each valid service must have a copy of its psk, to successfully authenticate with the hub. The hub will have the corresponding psk in its psk file. This key is used as a secret key as part of a .

    When a service connects to a hub it uses the . The MQTT username is the service's and 001F/01F and the MQTT password is a JSON object containing the services PID and SID with a timestamp which is then converted into a JWT (JSON Web Token). The time stamp ensures tight time synchronisation is a requirement and provides greater integrity.

    If the service signs its JWT with the same psk as is stored in the hub's psk file it will successfully complete the authentication process to the hub. On doing this it will be sent a copy of the hubs psk file, giving the service the ability to the received directly signed messages from authorised services.

    After successful authentication the service will have a copy of the psk of all services that are authorised to communicate through the hub. The service will then with no further action from the hub be able to validate the authenticity and integrity of messages that have come from a service on the same node.

    Once passing traffic the MQTT message will consist of:

    the JSON Web Token will also carry the topic, the message payload itself, and a timestamp this will all be hashed along with the service own key creating a to allow integrity checking:

    The time stamp will allow for the message to have a validity life span that can be configured for all services connected to the hub. Internally all messages will be signed in this way and therefore provide a high degree of integrity to the internal communication.

    Services may be intentionally created to connect to external interfaces such as a service the connects to remote I/O via TCP/IP or an Azure IoT hub Client, if it is desired to configure a node in this scenario, it is recommended to utilise two interconnected nodes one that handles the external communications and one that handles the more trusted internal communication, the nodes could exist on the same hardware. doing so would allow the creation of multiple trust boundaries

    Although as just discussed it is not impossible to create service that communicate to external interfaces, it is not recommended to use these on the same node as it compromises the integrity of the node. It is preferable to utilise a known route into and out from the node, it is recommended that this route is a .

    Routers are split into two parts, one side of the router communicates internally with its associated hub and all of the services within a node, while the other side of the router communicates externally through a 'no-mans' broker to other routers on other nodes. All external communication is done using MQTT over the protocol. This could be done over a secure or non-secure connection (ws:// or ws s://).

    The internal side of the router acts in exactly the same way as a service, but will automatically subscribe to all messages from every other service within that node.

    The external side of the router will have the ability to sign its messages in the same fashion as the services do for internal communication, it will have two pre shared keys and internal or service psk and an external psk.

    To allow router to validate the authenticity and integrity of messages form other routers, the external psks will be required to be manually shared between all the routers that want to take part in this communication. the result is that the external psk file will contain the keys of all authorised routers and therefore nodes.

    This communication is done over the WebSocket protocol as it reduces the need to configure firewalls to allow MQTT communication. node peering is best used in an enclosed environment where there is a high degree of confidence in the integrity of the network with which the communication is taking place. This is like to require the input of network and cyber security professionals.

    Node Peering will require the provision of a MQTT broker capable of using . this will be a function that will be optionally provided by the mobius router.

    In larger deployments of nodes peering may not be viable because of the administrative overhead, or there may be low confidence in the network integrity. there may also be a require to not only ensure Authenticity and Integrity of messages, but also confidentiality.

    to achieve this the nodes should utilise WebSockets over (TLS), this is in fact simply a upgrade in the same way WebSockets are used, on a connection

    In this case it will almost always be easier to provide the node with access to the public internet where things like server name resolution and certificate control are well practised and understood.

    Due to the large complexity in provisioning the system in this scenario, It is envisaged at this stage that IAconnects will provide the service that provides the functions of the architecture shown above.

    Editing and Deleting Profiles

    Learn how to edit existing object profiles

    Open the Object Profiles page and click on the profile you want to modify. The Object Profiles sidebar will open on the left of the window.

    At the top of the sidebar is the object profiles settings toolbar. You can use this toolbar to switch between the four sidebar modes and to delete the profile if it is not being used. Use the X to the right of the toolbar to close the sidebar.

    Below the toolbar are the Undo and Save buttons. Clicking on the Undo button will revert any changes and clicking on Save will save the changes.

    The Save button is only enabled if their are changes AND all fields are valid

    Sidebar Modes

    The four sidebar modes are shown in the table below. Click on the links for more information.

    Click on the profile you wish to delete. When the sidebar is open click on the Delete button, enter the confirmation text and click Confirm.

    Home Page

    Home page

    The Home page has the following buttons

    Configure Network

    Configure the wired or wireless Ethernet network settings

    Manage Certificates

    Manage all certificates for TLS connections. The default certificates are for MobiusFlow® cloud hosted instances but you can add your own if required

    Configure MQTT

    Configure the connection to the MQTT broker you chose when configuring MobiusFlow® for connectors

    Set Config Mode Password

    Change the configuration mode password

    About

    See information about the connector such as the software version, serial number, andwhich modules are installed

    You can also update the firmware on this page

    Reboot the device to exit configuration mode and use the new settings

    Authorization

    API Authorization calls

    The authorization controller is used to login to the API, in addition user management.

    When a login call is completed, the API will return a bearer token which should be used in the auth header of all future calls. This token is set to expire 10 minutes after its generation.

    A refresh token is also included in the login response, and this is used in the body of the refresh call to get new tokens with refreshed expiry times. Ensure a refresh call is made prior to any given bearer token's expiry to avoid having to login again.

    Telemetry

    Device Variables

    Understanding the MobiusFlow® balenaCloud Device Variables

    balenaCloud devices are configured using Device Variables. When deploying MobiusFlow® to a balenaCloud fleet a number of Device Variables are created with default values. These are defined at the fleet level but can be overridden at the device level. More information about working with balenaCloud Device Variables can be found .

    The image below shows the Device Variables created when MobiusFlow® is deployed to balenaCloud.

    Expand the items below for detailed information on each Device Variable

    Backup and Restore

    You can use the backup and restore feature to backup the full configuration of a MobiusFlow instance, and to restore the configuration of a MobiusFlow instance to a previously saved backup.

    In summary, all configuration data of a MobiusFlow instance can be stored within a single .zip file. This means the current configuration of any MobiusFlow instance can be backed up by simply downloading this backup file and saving it in a safe location of your choice. Similarly, the configuration of any MobiusFlow instance can restored by uploading one of your previously saved backup files.

    All backup and restore functionality is accessed through the 'Backup/Restore' menu located on the 'Administration' Tab.

    On the 'Backup/Restore' menu, you can create a backup by clicking 'Backup'

    Node

    API Node Calls

    The node calls are for reading a MobiusFlow hub as well as resetting the pre-shared keys on a given hub

    USB 500U (USB Stick)

    902MHz (North America) EnOcean transceiver to plug into Raspberry Pi USB Port

    Raspberry Pi 4 Application
    Raspberry Pi 5 Application

    Node Internal Communication

    Service Authentication

    Service Communication

    Node External Communication

    Node Peering

    Larger Node Deployments

    Mobius architecture
    mobius node
    mobius router
    service
    JSON Web Token (JWT)
    MQTT built in username / password authentication
    profile ID (PID)
    service (SID)
    HMAC
    mobius router
    WebSocket
    MQTT over WebSockets
    Transport Layer Security
    HTTP
    HTTPS
    and more..
    MobiusFlow website

    For most devices the only Device Variables that require changing are listed below. The rest can be left at their default values.

    • MOBIUS_LICENCE

    • MOBIUS_HUB_ID

    Remember to override the Device Variables at the device level and not at the fleet level.

    Any changes at the fleet level will apply to all devices in the fleet.

    MobiusFlow Device Variables

    MOBIUS_ENABLE_CONFIG_UI

    Enable or disable the MobiusFlow® configuration user interface

    Possible Values: (default shown in bold)

    • true - Enable the configuration user interface

    • false - Disable the configuration user interface

    MOBIUS_ENGINE_API_AUTH_PROVIDER

    Select which authentication provider to use for the Engine Rest API.

    Possible Values: (default shown in bold)

    • local - Use the local user database

    MOBIUS_ENGINE_API_PORT

    The Engine Rest API port

    Possible Values: (default shown in bold)

    • 8443

    MOBIUS_HUB_ID

    The HUB ID used by this MobiusFlow® instance

    Possible Values: (default shown in bold)

    • 000001 - Can be any six digit hex number

    MOBIUS_HUB_RESET_PSKS

    Reset all MobiusFlow® Service pre-shared keys on startup

    Possible Values: (default shown in bold)

    • true - reset the pre-shared keys on startup

    • false - do not reset the pre-shared keys on startup

    MOBIUS_LICENCE

    The MobiusFlow® licence code for this device

    Possible Values: a valid licence code

    MOBIUS_LICENCE_RENEW

    Change the MobiusFlow® licence code. Set this to true when replacing an licence code

    Possible Values: (default shown in bold)

    • true - Change the licence code

    • false - Use existing licence code

    MOBIUS_LOCAL_TIMEOUT

    The maximum time in milliseconds that any MobiusFlow® Service will wait for a response to a MobiusFlow® message

    Possible Values: (default shown in bold)

    • 10000 - any number greater than 1000

    MOBIUS_LOG_SERVICE_STATUS

    Log changes of MobiusFlow® Services status to the standard logs

    Possible Values: (default shown in bold)

    • true - log the service status changes to the standard logs

    • false - do not log the service statis changes to the standard logs

    here

    Reboot Device

    .
    Backup button

    Once the backup file has been created, click 'Download Zip' to download it.

    Location of backup file download button

    Alternatively, the you can click 'Request new backup' to return to the previous menu and generate an updated backup file.

    Downloaded backup file

    Be sure to save your backup file in a safe location! There is nothing worse than not being able to find a much needed backup file.

    The restore feature is particularly useful if you want to copy a MobiusFlow configuration onto to other MobiusFlow instances, however it also useful if you've managed to break everything.

    The 'Backup/Restore' menu is also used for restoring. You can restore by first clicking 'Upload Zip' and then browsing to the .zip backup file you previously saved in a safe place.

    Upload Zip button
    Browsing to backup file

    Once uploaded, the menu will show the backup information as well as allowing you to click 'Restore'.

    Uploaded backup file information and restore button

    Accept the a confirmation dialog to proceed.

    Confirmation Dialog

    You will be notified that the restoration process has started and then MobiusFlow will then reboot, completing the restore process.

    Congratulations for completing your restore!

    Overview

    Backup

    Backup/Restore Menu

    Giving the backup an appropriate name is recommended. In the above example, the name 'example-backup' has been set. The system will automatically append date/time information to the file name.

    Restore

    Profile Settings

    General profile settings. The fields are the same as the fields on the Finalise Settings page shown when creating a new profile.

    Codec

    Add, delete, or edit the profile's codec

    Preprocessor

    Add, delete, or edit the profile's preprocessor

    UI Layout

    Add, delete, or edit the profile's UI layout

    Deleting Profiles

    You can only delete profiles that have not been used. Unused profiles have a greyed out PID and icon in the profile list.

    This action is permanent and cannot be undone!

    💥 Interactive Demo

    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    idstringRequired

    Service ID

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Run at start flag

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringRequired

    Service ID

    spidstringRequired

    Service profile ID associated to the service

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    hoststringRequired

    Hub MQTT broker host location

    portnumberRequired

    Hub MQTT broker port

    localnumberRequired

    Local timeout in ms

    remotenumberRequired

    Remote timeout in ms

    Other propertiesanyOptional
    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    resultstringOptional

    Result

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Query parameters
    deadTimestringOptional

    Time, in seconds, since last update to consider object as dead. Assumed 24 hours if not specified

    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringOptional

    Service ID

    statusstringOptional

    Service status

    namestringOptional

    Service name

    objectsInFaultCountnumberOptional

    Number of objects in fault

    uristringOptional

    Object URI

    lastUpdatedstringOptional

    Last updated

    lastUpdatedEpochnumberOptional

    Last updated epoch

    namestringOptional

    Object name

    profileNamestringOptional

    Name of the object profile type

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    dataanyRequired
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Responses
    200

    Default Response

    No content

    get
    /api/v1/mobius/node/backup
    200

    Default Response

    No content

    Backup

    Adding Your Licence

    License your MobiusFlow® instance

    All MobiusFlow® instances require a valid licence to run. Licences define the maximum number of MobiusFlow® objects that you can add to an instance. For more information about MobiusFlow® licences refer to the Licensing page.

    What You Will Need?

    1. A valid MobiusFlow® licence (licences can only be used on one device)

    Adding Your Licence to a BalenaCloud Device

    Licences are added to balenaCloud devices by setting a device variable. All required device variables are created automatically when you deploy MobiusFlow® to a fleet. For more information see Device Variables.

    Licences must be added by overriding a device's licence variable and NOT changing the fleet's variables.

    Navigate to your balenaCloud dashboard and login in

    Navigate to the correct fleet and device

    Select the Device Variables page. You will see a list of all of the device's variables with override buttons next to each variable

    Click the override button next to the MOBIUS_LICENCE variable

    In the popup delete the text <replace with your licence code> and enter your licence code

    Leave all other settings as their default values and click the Add button

    Your licence code will be shown in the Device Variables list (see for more information on all of the device variables shown in this list)

    MobiusFlow® will restart to install the licence

    Under some circumstances it may be necessary to enter a new licence code. In order to make the new licence code work follow the procedure above to enter a new code

    You will also need to tell MobiusFlow® to renew its licence by setting the Device Variable MOBIUS_LICENCE_RENEW to true

    Click the override button next to the MOBIUS_LICENCE_RENEW variable

    In the popup change the value from false to true

    Leave all other settings as their default values and click the Add button

    Wait for MobiusFlow® to restart, confirm that the new licence is working and reset the Device Variable MOBIUS_LICENCE_RENEW to false

    Click the override button next to the MOBIUS_LICENCE_RENEW variable

    In the popup change the value from true to false

    Leave all other settings as their default values and click the Add button

    MobiusFlow Overview

    The MobiusFlow software has been developed as an MQTT object bus which normalises all device data into standardised MobiusFlow objects which allow interoperability between all devices either real or virtual in the field or Cloud.

    MobiusFlow enables actuators, sensors & controllers to connect, control and communicate with each other and to the Cloud so that IoT solutions using scalable monitoring, visualisation and predictive analytics can provide valuable insights into your business and act upon them automatically.

    • A complete control and communications platform

    • Microservice based architecture

    • Secure, open protocol based on MQTT

    • Scalable to 1000s of devices

    • Platform and language independent

    • Does not depend on a network connection for local control

    • Provides full discovery of nodes, objects and resources in all directions

    • Pub / Sub change of value notifications

    • All sensor and actuator data is normalised from any source such as / / / / LoRaWAN / Analog / Digital etc.

    MobiusFlow has been designed from the ground up as a micro service based design with a simple but common set of API commands. All communication between micro services is performed using the MQTT protocol, ensuring that micro services can be written in any programming language and will run on any device capable of TCP/IP network communications. The only requirement for any MobiusFlow system is that it contains at least one Node. This Node consists of a MobiusFlow Hub which initiates and facilitates communication between micro services in a secure way. Micro services can run on the same device as the Hub, or on another device such as a temperature sensor, connected to the Hub via a connection capable of transmitting via TCP/IP (provision has been made for future expansion, by adding translation services, to allow micro services to communicate with the Hub over any transmission medium capable to transmitting binary data).

    Each Node is typically a stand-alone island which does not require any connection to any other device in order to perform local control. Nodes can be connected together via secure MobiusFlow Routers allowing the creation of a network of interconnected Nodes. When used in this configuration, Nodes can share data with each other and influence the control algorithms running on any connected Node.

    Vanilla MQTT has some limitations in its usefulness as a peer to peer messaging and control protocol. It is based around the Publish / Subscribe pattern which is ideal where multiple devices are sending data to a single end point for logging etc. MQTT can be used where devices or services need to have a two way peer to peer flow of communication but the different services need to be aware of each other at design time. MobiusFlow defines a protocol layer above MQTT which enables discovery of devices and services at runtime and then allows two way peer to peer communication to take place, ensuring that new devices and services can be added at any time without having any design time knowledge of the other devices and services in a system.

    MobiusFlow Connectors

    Overview of MobiusFlow Connectors

    MobiusFlow Connector

    The Connector collects data from sensors and sends data to actuators via standard wireless sensor protocols such as EnOcean and Workplace Occupancy, and sends this data securely to a MobiusFlow using an MQTT based Protocol.

    Once the data has been received by a MobiusFlow instance, it is decoded and the associated MobiusFlow object is updated with the latest sensor readings which can then be processed by the gateway.

    Architecture

    A full guide on configuring MobiusFlow for use with Connectors can be found here.

    Connector Options

    There are several hardware options for the MobiusFlow Connector software:

    MobiusFlow Manager

    MobiusFlow Manager is the management platform MobiusFlow customers can use to the self-manage their MobiusFlow instances.

    The full MobiusFlow Manager training course can be here.

    Discover

    API Discover calls

    The discover calls are used to learn about the present state of a given MobiusFlow instance

    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    ridstringRequired

    MobiusFlow Resource ID

    Example: {"value":"40"}Pattern: ^[0-9A-Fa-f]{2}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001/40
    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    Bodyobject[]

    Array of resources

    ridstringOptional
    Other propertiesanyOptional
    Responses
    201

    Ok response

    application/json
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Bodyobject[]
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Body
    patch
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    ridstringRequired

    MobiusFlow Resource ID

    Example: {"value":"40"}Pattern: ^[0-9A-Fa-f]{2}$
    Body
    patch
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Bodyobject[]
    patch
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    ridstringRequired

    MobiusFlow Resource ID

    Example: {"value":"40"}Pattern: ^[0-9A-Fa-f]{2}$
    Body
    patch
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Body
    delete
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringRequired

    Service ID

    spidstringRequired

    Service profile ID associated to the service

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    hoststringRequired

    Hub MQTT broker host location

    portnumberRequired

    Hub MQTT broker port

    localnumberRequired

    Local timeout in ms

    remotenumberRequired

    Remote timeout in ms

    Other propertiesanyOptional
    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringRequired

    Service ID

    spidstringRequired

    Service profile ID associated to the service

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    hoststringRequired

    Hub MQTT broker host location

    portnumberRequired

    Hub MQTT broker port

    localnumberRequired

    Local timeout in ms

    remotenumberRequired

    Remote timeout in ms

    Other propertiesanyOptional
    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    resultstringOptional

    Result

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    resultstringOptional

    Result

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020
    resultstringOptional

    Result

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Body

    New service information

    sidstringOptional

    Service ID

    Pattern: ^[0-9A-F]{3}$
    spidstringRequired

    Service profile ID

    Pattern: ^[0-9A-F]{4}$
    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    post
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Body

    Clone service information

    copiesnumberRequired

    Number of copies

    startstringRequired

    Starting service ID for 1st copy, subsequent copies will be incremented

    Pattern: ^[0-9A-F]{3}$
    patch
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Body

    New service ID information

    newSIDstringRequired

    New service ID

    Pattern: ^[0-9A-F]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    idstringRequired

    Service ID

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Run at start flag

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Body

    New service configuration

    namestringOptional

    Service name

    enabledbooleanOptional

    Service enabled flag

    runAtStartbooleanOptional

    Service run at start flag

    Other propertiesanyOptional
    put
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Bodyobject[]
    delete
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    idstringRequired

    Service ID

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Run at start flag

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Body

    Engine API Login credentials

    usernamestringRequired

    Username

    passwordstringRequired

    Password

    Responses
    200

    Ok response

    application/json

    Ok response

    tokenstringRequired

    API token

    refreshTokenstringRequired

    API refresh token

    tokenLifetimenumberRequired

    API token lifetime in seconds

    refreshTokenLifetimenumberRequired

    API refresh token lifetime in seconds

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Body

    Refresh token data

    refreshTokenstringRequired

    Refresh token

    Responses
    200

    Ok response

    application/json

    Ok response

    tokenstringRequired

    API token

    refreshTokenstringRequired

    API refresh token

    tokenLifetimenumberRequired

    API token lifetime in seconds

    refreshTokenLifetimenumberRequired

    API refresh token lifetime in seconds

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    Body

    New user data

    usernamestringRequired

    Username

    passwordstring · min: 8Required

    Password

    adminbooleanRequired

    Has admin permission

    flowsbooleanRequired

    Has flows editing permission

    configurebooleanRequired

    Has configuration editing permission

    subscribebooleanRequired

    Has subscription permission

    writebooleanRequired

    Has write permission

    readbooleanRequired

    Has read permission

    get
    Path parameters
    usernamestringRequired

    Username

    Responses
    200

    Ok response

    application/json

    Ok response

    _idstringRequired

    User ID

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    /api/v1/auth/user/{username}
    get
    Responses
    200

    Ok response

    application/json
    string[]Optional

    Ok response

    Example: ["admin","[email protected]","[email protected]"]
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    /api/v1/auth/users
    get
    Path parameters
    _idstringRequired

    User ID

    Responses
    200

    Role profile

    application/json

    Role profile

    adminbooleanRequired

    Has admin permission

    flowsbooleanRequired

    Has flows editing permission

    configurebooleanRequired

    Has configuration editing permission

    subscribebooleanRequired

    Has subscription permission

    writebooleanRequired

    Has write permission

    readbooleanRequired

    Has read permission

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    Path parameters
    _idstringRequired

    User ID

    Body

    New roles information

    adminbooleanRequired

    Has admin permission

    flowsbooleanRequired

    Has flows editing permission

    configurebooleanRequired

    Has configuration editing permission

    subscribebooleanRequired

    Has subscription permission

    writebooleanRequired

    Has write permission

    readbooleanRequired

    Has read permission

    patch
    Path parameters
    _idstringRequired

    User ID

    Body

    New password information

    passwordstring · min: 8Required

    New password

    Responses
    200

    Ok response

    application/json

    Ok response

    resultstringRequired

    Result

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    delete
    Path parameters
    _idstringRequired
    Responses
    200

    Default Response

    application/json
    resultstringRequired

    Result

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    delete
    /api/v1/auth/user/{_id}

    Updating or Replacing a Licence

    If you extend an expired licence or you purchase a larger licence you do not need to update the licence code

    Congratulations, you have deployed your first MobiusFlow® device on balenaCloud.

    Device Variables
    Device Variables for a device
    Add a licence code
    Licence entered
    OPC UA
    BACnet
    DALI
    EnOcean
    Official Connector
    Raspberry Pi
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001
    pidstringOptional

    Profile ID associated to the object

    insstringOptional

    Instance ID of the object

    profileNamestringOptional

    Profile name associated to the object

    descriptionstringOptional

    Object description

    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    familiesstring[]Optional

    Array of families

    isFromConfignumberOptional

    Object is from config, 0 for created but not configured, 1 for created from config

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins}
    get
    /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}/{rid}
    get
    /api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins}
    post
    /api/v1/mobius/object/{hid}/{sid}/{pid}

    Array of resources

    ridstringOptional
    Other propertiesanyOptional
    Responses
    201

    Ok response

    application/json
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins}

    Object cloning information

    copiesnumberRequired

    Number of copies to be created

    startstringOptional

    Starting instance ID of the 1st copy, subsequent copies will be incremented

    Pattern: ^[0-9A-F]{4}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringRequired

    Service ID

    spidstringRequired

    Service profile ID associated to the service

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    hoststringRequired

    Hub MQTT broker host location

    portnumberRequired

    Hub MQTT broker port

    localnumberRequired

    Local timeout in ms

    remotenumberRequired

    Remote timeout in ms

    Other propertiesanyOptional
    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    /api/v1/mobius/object/clone/{hid}/{sid}/{pid}/{ins}

    Resource information

    prioritynumberOptional

    Priority of the resource value

    valueany ofRequired

    Value of the resource

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001/40
    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}/{rid}

    Array of patched live resources

    rstringRequired

    Resource ID

    pnumberRequired

    Priority of the resource value

    vany ofRequired

    Value of the resource

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001
    pidstringOptional

    Profile ID associated to the object

    insstringOptional

    Instance ID of the object

    profileNamestringOptional

    Profile name associated to the object

    descriptionstringOptional

    Object description

    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    familiesstring[]Optional

    Array of families

    isFromConfignumberOptional

    Object is from config, 0 for created but not configured, 1 for created from config

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}

    Resource information

    prioritynumberRequired

    Priority of the resource value

    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001/40
    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    /api/v1/mobius/object/resource/clear/{hid}/{sid}/{pid}/{ins}/{rid}

    Object information

    insstringRequired

    Replacement object instance ID

    ridstringRequired

    Resource ID

    Other propertiesanyOptional
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    /api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins}
    delete
    /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins}

    Get live object

    Get live resource

    Get object configuration

    Add object

    Add object with specified instance ID

    Clone object

    Patch live resource

    Patch multiple live resources

    Clear live resource

    Update object in service

    Delete object

    get
    /api/v1/mobius/service/config/{hid}/{sid}
    post
    /api/v1/mobius/service/start/{hid}/{sid}
    post
    /api/v1/mobius/service/stop/{hid}/{sid}
    post
    /api/v1/mobius/service/reload/{hid}/{sid}
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    idstringRequired

    Service ID

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Run at start flag

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    /api/v1/mobius/service/{hid}
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    idstringRequired

    Service ID

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Run at start flag

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    /api/v1/mobius/service/clone/{hid}/{sid}
    patch
    /api/v1/mobius/service/config/sid/{hid}/{sid}
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringRequired

    Service ID

    spidstringRequired

    Service profile ID associated to the service

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    hoststringRequired

    Hub MQTT broker host location

    portnumberRequired

    Hub MQTT broker port

    localnumberRequired

    Local timeout in ms

    remotenumberRequired

    Remote timeout in ms

    Other propertiesanyOptional
    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    /api/v1/mobius/service/config/{hid}/{sid}

    Array of configured objects on service

    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    sidstringRequired

    Service ID

    spidstringRequired

    Service profile ID associated to the service

    namestringRequired

    Service name

    enabledbooleanRequired

    Service enabled flag

    runAtStartbooleanRequired

    Service run at start flag

    hoststringRequired

    Hub MQTT broker host location

    portnumberRequired

    Hub MQTT broker port

    localnumberRequired

    Local timeout in ms

    remotenumberRequired

    Remote timeout in ms

    Other propertiesanyOptional
    pidstringOptional

    Object PID

    pidstringRequired
    insstringRequired
    ridstringOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    put
    /api/v1/mobius/service/config/replaceAllObjects/{hid}/{sid}
    delete
    /api/v1/mobius/service/{hid}/{sid}

    Get service configuration

    Start service

    Stop service

    Reload service

    Add service

    Clone service

    Update service ID of a service

    Update service configuration

    Replace all objects within a service

    Delete service

    get
    /api/v1/mobius/node/config/{hid}
    get
    /api/v1/mobius/node/configtree/{hid}
    post
    /api/v1/mobius/node/resetpsks/{hid}
    get
    /api/v1/mobius/node/healthcheck/{hid}
    get
    /api/v1/mobius/node/servicestatus/{hid}

    Get node configuration

    Get node configuration tree

    Reset node pre-shared keys

    Get node health check

    Get status of all services on a node

    post
    /api/v1/auth/login
    post
    /api/v1/auth/refresh
    Responses
    200

    Ok response

    application/json

    Ok response

    _idstringRequired

    User ID

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    post
    /api/v1/auth/user
    get
    /api/v1/auth/user/roles/{_id}
    Responses
    200

    Ok response

    application/json

    Ok response

    adminbooleanRequired

    Has admin permission

    flowsbooleanRequired

    Has flows editing permission

    configurebooleanRequired

    Has configuration editing permission

    subscribebooleanRequired

    Has subscription permission

    writebooleanRequired

    Has write permission

    readbooleanRequired

    Has read permission

    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    patch
    /api/v1/auth/user/roles/{_id}
    patch
    /api/v1/auth/user/password/{_id}

    Login to engine API

    Refresh API tokens

    Add a new user

    Get user ID

    Get all users

    Get user roles

    Set user roles

    Set user password

    Delete a user

    GET /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001",
      "data": {
        "pid": "000D",
        "ins": "0001",
        "profileName": "enocean_A5-08-01",
        "description": "EnOcean light, temperature and occupancy sensor",
        "resources": [
          {
            "rid": "00",
            "type": "string",
            "name": "parentObject",
            "pv": "",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "",
              ""
            ],
            "settings": {
              "access": "rw",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "01",
            "type": "string",
            "name": "name",
            "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "02",
            "type": "datetime",
            "name": "objectLastUpdated",
            "pv": "1970-01-01T00:00:00.000Z",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "1970-01-01T00:00:00.000Z",
              "1970-01-01T00:00:00.000Z"
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "03",
            "type": "string",
            "name": "description",
            "pv": "",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "04",
            "type": "string",
            "name": "location",
            "pv": "",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "0A",
            "type": "string",
            "name": "eep",
            "pv": "A5-08-01",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "A5-08-01",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "0B",
            "type": "string",
            "name": "uid",
            "pv": "12345678",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "12345678",
              ""
            ],
            "settings": {
              "access": "r",
              "maxlen": 8,
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "0C",
            "type": "number",
            "name": "status",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "0D",
            "type": "number",
            "name": "dBm",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "units": "dBm"
            }
          },
          {
            "rid": "0E",
            "type": "bool",
            "name": "lrn",
            "pv": false,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              false,
              false
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "40",
            "type": "number",
            "name": "tmp",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "min": 0,
              "max": 51,
              "precision": 1,
              "units": "C"
            }
          },
          {
            "rid": "41",
            "type": "number",
            "name": "lux",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "min": 0,
              "max": 510,
              "precision": 1,
              "units": "lx"
            }
          },
          {
            "rid": "42",
            "type": "bool",
            "name": "pirs",
            "pv": false,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              false,
              false
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "43",
            "type": "bool",
            "name": "occupany",
            "pv": false,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              false,
              false
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "44",
            "type": "number",
            "name": "supplyVoltage",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "min": 0,
              "max": 5.1,
              "precision": 1,
              "units": "V"
            }
          }
        ],
        "families": [
          "EnOcean",
          "TemperatureSensor",
          "OccupancySensor",
          "LightSensor"
        ],
        "isFromConfig": 1
      }
    }
    GET /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001/40",
      "data": {
        "rid": "40",
        "type": "number",
        "name": "tmp",
        "pv": 0,
        "prar": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          0,
          0
        ],
        "settings": {
          "access": "r",
          "min": 0,
          "max": 51,
          "precision": 1,
          "units": "C"
        }
      }
    }
    GET /api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "pid": "000D",
        "ins": "0001",
        "rids": [
          {
            "rid": "01",
            "settings": {
              "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
            }
          },
          {
            "rid": "0B",
            "settings": {
              "pv": "12345678"
            }
          }
        ]
      }
    }
    POST /api/v1/mobius/object/{hid}/{sid}/{pid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 36
    
    [
      {
        "rid": "40",
        "settings": {
          "min": 30
        }
      }
    ]
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {},
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "pid": "000D",
                "ins": "0005",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 22
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0002",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0006",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "pid": "0010",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    POST /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 36
    
    [
      {
        "rid": "40",
        "settings": {
          "min": 30
        }
      }
    ]
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {},
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "pid": "000D",
                "ins": "0005",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 22
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0002",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0006",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "pid": "0010",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    POST /api/v1/mobius/object/clone/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 27
    
    {
      "copies": 1,
      "start": "000A"
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "ins": "0002",
                "pid": "000D",
                "uiname": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ],
                "timestamp": 1671618304292
              },
              {
                "ins": "0006",
                "pid": "000D",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "ins": "0001",
                "pid": "000D",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "ins": "000A",
                "pid": "000D",
                "uiname": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ],
                "timestamp": 1671618304292
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "ins": "0001",
                "pid": "0010",
                "uiname": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ],
                "timestamp": 1671618299023
              }
            ]
          }
        ],
        "custom": {}
      }
    }
    PATCH /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 26
    
    {
      "priority": 15,
      "value": 10
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001/40",
      "data": {
        "rid": "40",
        "type": "number",
        "name": "tmp",
        "pv": 10,
        "prar": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          10,
          0
        ],
        "settings": {
          "access": "r",
          "min": 0,
          "max": 51,
          "precision": 1,
          "units": "C"
        }
      }
    }
    PATCH /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 58
    
    [
      {
        "r": "00",
        "p": 15,
        "v": "Hello"
      },
      {
        "r": "40",
        "p": 15,
        "v": 43.9
      }
    ]
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001",
      "data": {
        "pid": "000D",
        "ins": "0001",
        "profileName": "enocean_A5-08-01",
        "description": "EnOcean light, temperature and occupancy sensor",
        "resources": [
          {
            "rid": "00",
            "type": "string",
            "name": "parentObject",
            "pv": "Hello",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "Hello",
              ""
            ],
            "settings": {
              "access": "rw",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "01",
            "type": "string",
            "name": "name",
            "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "02",
            "type": "datetime",
            "name": "objectLastUpdated",
            "pv": "2022-12-21T12:12:40.566Z",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "2022-12-21T12:12:40.566Z",
              "1970-01-01T00:00:00.000Z"
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "03",
            "type": "string",
            "name": "description",
            "pv": "",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "04",
            "type": "string",
            "name": "location",
            "pv": "",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "0A",
            "type": "string",
            "name": "eep",
            "pv": "A5-08-01",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "A5-08-01",
              ""
            ],
            "settings": {
              "access": "r",
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "0B",
            "type": "string",
            "name": "uid",
            "pv": "12345678",
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              "12345678",
              ""
            ],
            "settings": {
              "access": "r",
              "maxlen": 8,
              "tags": {
                "attribute": "true"
              }
            }
          },
          {
            "rid": "0C",
            "type": "number",
            "name": "status",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "0D",
            "type": "number",
            "name": "dBm",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "units": "dBm"
            }
          },
          {
            "rid": "0E",
            "type": "bool",
            "name": "lrn",
            "pv": false,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              false,
              false
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "40",
            "type": "number",
            "name": "tmp",
            "pv": 43.9,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              43.9,
              0
            ],
            "settings": {
              "access": "r",
              "min": 0,
              "max": 51,
              "precision": 1,
              "units": "C"
            }
          },
          {
            "rid": "41",
            "type": "number",
            "name": "lux",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "min": 0,
              "max": 510,
              "precision": 1,
              "units": "lx"
            }
          },
          {
            "rid": "42",
            "type": "bool",
            "name": "pirs",
            "pv": false,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              false,
              false
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "43",
            "type": "bool",
            "name": "occupany",
            "pv": false,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              false,
              false
            ],
            "settings": {
              "access": "r"
            }
          },
          {
            "rid": "44",
            "type": "number",
            "name": "supplyVoltage",
            "pv": 0,
            "prar": [
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              null,
              0,
              0
            ],
            "settings": {
              "access": "r",
              "min": 0,
              "max": 5.1,
              "precision": 1,
              "units": "V"
            }
          }
        ],
        "families": [
          "EnOcean",
          "TemperatureSensor",
          "OccupancySensor",
          "LightSensor"
        ],
        "isFromConfig": 1
      }
    }
    PATCH /api/v1/mobius/object/resource/clear/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    {
      "priority": 15
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001/40",
      "data": {
        "rid": "40",
        "type": "number",
        "name": "tmp",
        "pv": 0,
        "prar": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          0
        ],
        "settings": {
          "access": "r",
          "min": 0,
          "max": 51,
          "precision": 1,
          "units": "C"
        }
      }
    }
    PATCH /api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 58
    
    {
      "ins": "0005",
      "rids": [
        {
          "rid": "40",
          "settings": {
            "min": 22
          }
        }
      ]
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "pid": "000D",
        "ins": "0005",
        "rids": [
          {
            "rid": "40",
            "settings": {
              "min": 22
            }
          }
        ]
      }
    }
    DELETE /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {},
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "pid": "000D",
                "ins": "0002",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0006",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "pid": "0010",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    GET /api/v1/mobius/service/config/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {},
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "pid": "000D",
                "ins": "0002",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0006",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "000A",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "pid": "0010",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0201",
            "objects": [
              {
                "pid": "0201",
                "ins": "0001",
                "rids": []
              }
            ]
          }
        ]
      }
    }
    POST /api/v1/mobius/service/start/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "result": "OK"
      }
    }
    POST /api/v1/mobius/service/stop/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "result": "OK"
      }
    }
    POST /api/v1/mobius/service/reload/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020",
      "data": {
        "result": "OK"
      }
    }
    POST /api/v1/mobius/service/{hid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 91
    
    {
      "spid": "000E",
      "name": "New example nr-connector service",
      "enabled": false,
      "runAtStart": true
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "id": "0004/002",
          "name": "mobius-engine-api",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0012/012",
          "name": "mobius-ui-restapi",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0021/020",
          "name": "enocean devices",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "000E/021",
          "name": "Test",
          "enabled": false,
          "runAtStart": true
        },
        {
          "id": "000E/022",
          "name": "New example nr-connector service",
          "enabled": false,
          "runAtStart": true
        }
      ]
    }
    POST /api/v1/mobius/service/clone/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 26
    
    {
      "copies": 1,
      "start": "030"
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "id": "0004/002",
          "name": "mobius-engine-api",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0012/012",
          "name": "mobius-ui-restapi",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0021/020",
          "name": "enocean devices",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "000E/021",
          "name": "Test",
          "enabled": false,
          "runAtStart": true
        },
        {
          "id": "0021/030",
          "name": "Clone of 020 0",
          "enabled": true,
          "runAtStart": true
        }
      ]
    }
    PATCH /api/v1/mobius/service/config/sid/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 16
    
    {
      "newSID": "02A"
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "id": "0004/002",
          "name": "mobius-engine-api",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0012/012",
          "name": "mobius-ui-restapi",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0021/020",
          "name": "enocean devices",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "000E/02A",
          "name": "nr-connector",
          "enabled": true,
          "runAtStart": true
        }
      ]
    }
    PATCH /api/v1/mobius/service/config/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 56
    
    {
      "name": "nr-connector",
      "runAtStart": true,
      "enabled": true
    }
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "021",
        "spid": "000E",
        "name": "nr-connector",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {
          "host": "localhost",
          "port": 1890,
          "psk": "node-red"
        },
        "objects": []
      }
    }
    PUT /api/v1/mobius/service/config/replaceAllObjects/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 538
    
    [
      {
        "pid": "000D",
        "objects": [
          {
            "pid": "000D",
            "ins": "0002",
            "rids": [
              {
                "rid": "01",
                "settings": {
                  "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                }
              },
              {
                "rid": "0B",
                "settings": {
                  "pv": "11223344"
                }
              }
            ]
          },
          {
            "pid": "000D",
            "ins": "0006",
            "rids": [
              {
                "rid": "40",
                "settings": {
                  "min": 30
                }
              }
            ]
          },
          {
            "pid": "000D",
            "ins": "0001",
            "rids": [
              {
                "rid": "40",
                "settings": {
                  "min": 30
                }
              }
            ]
          }
        ]
      },
      {
        "pid": "0010",
        "objects": [
          {
            "pid": "0010",
            "ins": "0001",
            "rids": [
              {
                "rid": "01",
                "settings": {
                  "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                }
              },
              {
                "rid": "0B",
                "settings": {
                  "pv": "12121212"
                }
              }
            ]
          }
        ]
      }
    ]
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {},
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "pid": "000D",
                "ins": "0002",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0006",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "pid": "0010",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    DELETE /api/v1/mobius/service/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "sid": "020",
        "spid": "0021",
        "name": "enocean devices",
        "enabled": true,
        "runAtStart": true,
        "settings": {
          "mqtt": {
            "host": "mqtt://localhost",
            "port": 2016
          },
          "timeouts": {
            "local": 500,
            "remote": 5000
          }
        },
        "custom": {},
        "objects": [
          {
            "pid": "000D",
            "objects": [
              {
                "pid": "000D",
                "ins": "0002",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "11223344"
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0006",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              },
              {
                "pid": "000D",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "40",
                    "settings": {
                      "min": 30
                    }
                  }
                ]
              }
            ]
          },
          {
            "pid": "0010",
            "objects": [
              {
                "pid": "0010",
                "ins": "0001",
                "rids": [
                  {
                    "rid": "01",
                    "settings": {
                      "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                    }
                  },
                  {
                    "rid": "0B",
                    "settings": {
                      "pv": "12121212"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    GET /api/v1/mobius/node/config/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "id": "0004/002",
          "name": "mobius-engine-api",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0012/012",
          "name": "mobius-ui-restapi",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "0021/020",
          "name": "enocean devices",
          "enabled": true,
          "runAtStart": true
        },
        {
          "id": "000E/021",
          "name": "node-red connector",
          "enabled": true,
          "runAtStart": true
        }
      ]
    }
    GET /api/v1/mobius/node/configtree/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "sid": "002",
          "spid": "0004",
          "name": "mobius-engine-api",
          "enabled": true,
          "runAtStart": true,
          "settings": {
            "mqtt": {
              "host": "mqtt://localhost",
              "port": 2016
            },
            "timeouts": {
              "local": 10000,
              "remote": 5000
            }
          },
          "custom": {},
          "objects": []
        },
        {
          "sid": "012",
          "spid": "0012",
          "name": "mobius-ui-restapi",
          "enabled": true,
          "runAtStart": true,
          "settings": {
            "mqtt": {
              "host": "mqtt://localhost",
              "port": 2016
            },
            "timeouts": {
              "local": 10000,
              "remote": 5000
            }
          },
          "custom": {
            "resin-vpn": false
          },
          "objects": [
            {
              "pid": "0002",
              "objects": [
                {
                  "pid": "0002",
                  "ins": "0001",
                  "rids": []
                }
              ]
            }
          ]
        },
        {
          "sid": "020",
          "spid": "0021",
          "name": "enocean devices",
          "enabled": true,
          "runAtStart": true,
          "settings": {
            "mqtt": {
              "host": "mqtt://localhost",
              "port": 2016
            },
            "timeouts": {
              "local": 500,
              "remote": 5000
            }
          },
          "custom": {},
          "objects": [
            {
              "pid": "000D",
              "objects": [
                {
                  "pid": "000D",
                  "ins": "0001",
                  "rids": [
                    {
                      "rid": "01",
                      "settings": {
                        "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                      }
                    },
                    {
                      "rid": "0B",
                      "settings": {
                        "pv": "12345678"
                      }
                    }
                  ]
                },
                {
                  "pid": "000D",
                  "ins": "0002",
                  "rids": [
                    {
                      "rid": "01",
                      "settings": {
                        "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor"
                      }
                    },
                    {
                      "rid": "0B",
                      "settings": {
                        "pv": "11223344"
                      }
                    }
                  ]
                }
              ]
            },
            {
              "pid": "0010",
              "objects": [
                {
                  "pid": "0010",
                  "ins": "0001",
                  "rids": [
                    {
                      "rid": "01",
                      "settings": {
                        "pv": "EnOcean EEP A5-02-02 Temperature Sensor (-30C to 10C)"
                      }
                    },
                    {
                      "rid": "0B",
                      "settings": {
                        "pv": "12121212"
                      }
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "sid": "021",
          "spid": "000E",
          "name": "node-red connector",
          "enabled": true,
          "runAtStart": true,
          "settings": {
            "mqtt": {
              "host": "mqtt://localhost",
              "port": 2016
            },
            "timeouts": {
              "local": 500,
              "remote": 5000
            }
          },
          "custom": {
            "host": "localhost",
            "port": 1890,
            "psk": "node-red"
          },
          "objects": []
        }
      ]
    }
    POST /api/v1/mobius/node/resetpsks/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": {
        "result": "OK"
      }
    }
    GET /api/v1/mobius/node/healthcheck/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "sid": "002",
          "status": "OK",
          "name": "mobius-engine-api",
          "objectsInFaultCount": 0,
          "objectsInFault": []
        },
        {
          "sid": "012",
          "status": "OK",
          "name": "mobius-ui-restapi",
          "objectsInFaultCount": 0,
          "objectsInFault": []
        },
        {
          "sid": "020",
          "status": "OK",
          "name": "enocean devices",
          "objectsInFaultCount": 1,
          "objectsInFault": [
            {
              "uri": "000001/020/000B/0001",
              "lastUpdated": "1970-01-01T00:00:00.000Z",
              "lastUpdatedEpoch": 0,
              "name": "EnOcean EEP A5-08-01 Light Sensor - Hall",
              "profileName": "EnOcean EEP A5-08-01 Light Sensor"
            }
          ]
        }
      ]
    }
    GET /api/v1/mobius/node/servicestatus/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": null
    }
    GET /api/v1/mobius/node/backup HTTP/1.1
    Accept: */*
    
    POST /api/v1/auth/login HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 55
    
    {
      "username": "exampleUser",
      "password": "examplePassword"
    }
    {
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiIyYTZlMzQzNC1kZjI4LTQ1NDQtOTYzYS1mZTViMmQ1NTg0ZWIiLCJyb2xlcyI6MjU1LCJpYXQiOjE2NzMyODY1MjYsImV4cCI6MTY3MzI5MDEyNn0.eDnLoBQSp8mkI6C4rkgm1iBFL_dSPAWoYiXOtitaCAs",
      "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiIyYTZlMzQzNC1kZjI4LTQ1NDQtOTYzYS1mZTViMmQ1NTg0ZWIiLCJyZWZyZXNoVG9rZW4iOnRydWUsImlhdCI6MTY3MzI4NjUyNiwiZXhwIjoxNjczMzI5NzI2fQ.TsB2JUhjh8I8dvJrXxVNL4anJKUO5j_sS2EL3x4c5SE"
    }
    POST /api/v1/auth/refresh HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 234
    
    {
      "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiIyYTZlMzQzNC1kZjI4LTQ1NDQtOTYzYS1mZTViMmQ1NTg0ZWIiLCJyZWZyZXNoVG9rZW4iOnRydWUsImlhdCI6MTY3MTYxNzY2MiwiZXhwIjoxNjcxNjYwODYyfQ.Mwjbo13AQH-wyfuK_HI5sjwikUZSRboyHa6nkrkm-Xg"
    }
    {
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiIyYTZlMzQzNC1kZjI4LTQ1NDQtOTYzYS1mZTViMmQ1NTg0ZWIiLCJyb2xlcyI6MjU1LCJpYXQiOjE2NzMyODcyMDUsImV4cCI6MTY3MzI5MDgwNX0.T2D6l1AMMEbBJXshJjyyHjt1t7XUB5k35Vegusg2HZc",
      "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiIyYTZlMzQzNC1kZjI4LTQ1NDQtOTYzYS1mZTViMmQ1NTg0ZWIiLCJyZWZyZXNoVG9rZW4iOnRydWUsImlhdCI6MTY3MzI4NzIwNSwiZXhwIjoxNjczMzMwNDA1fQ.AJxGVcUr0raGWYYUDY8hxq9It_gd7byodocjKuzo35I"
    }
    POST /api/v1/auth/user HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 147
    
    {
      "username": "[email protected]",
      "password": "12345678",
      "roles": {
        "admin": false,
        "flows": true,
        "configure": false,
        "subscribe": true,
        "write": true,
        "read": true
      }
    }
    {
      "_id": "71abe4f9-c636-4b1c-950f-968459cea908"
    }
    71abe4f9-c636-4b1c-950f-968459cea908
    GET /api/v1/auth/user/roles/{_id} HTTP/1.1
    Accept: */*
    
    {
      "admin": false,
      "flows": true,
      "configure": false,
      "subscribe": true,
      "write": true,
      "read": true
    }
    PATCH /api/v1/auth/user/roles/{_id} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 97
    
    {
      "roles": {
        "admin": true,
        "flows": true,
        "configure": false,
        "subscribe": true,
        "write": true,
        "read": true
      }
    }
    {
      "roles": {
        "admin": true,
        "flows": true,
        "configure": false,
        "subscribe": true,
        "write": true,
        "read": true
      }
    }
    PATCH /api/v1/auth/user/password/{_id} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 19
    
    {
      "password": "text"
    }
    {
      "result": "text"
    }
    {
      "result": "OK"
    }
    GET /api/v1/auth/users HTTP/1.1
    Accept: */*
    
    [
      "admin",
      "[email protected]",
      "[email protected]"
    ]
    GET /api/v1/auth/user/{username} HTTP/1.1
    Accept: */*
    
    DELETE /api/v1/auth/user/{_id} HTTP/1.1
    Accept: */*
    
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001
    idstringOptional

    Service ID

    spidstringOptional

    Service profile ID

    registeredstringOptional

    Service registered

    statusstringOptional

    Service status

    lastConnectedstringOptional

    Service last connected time

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020
    datastring[]Required

    Response data

    Example: ["0001","000D","0010"]
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D
    datastring[]Required

    Response data

    Example: ["0001","0002"]
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001
    pidstringOptional

    Profile ID associated to the object

    insstringOptional

    Instance ID of the object

    profileNamestringOptional

    Profile name associated to the object

    descriptionstringOptional

    Object description

    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    familiesstring[]Optional

    Array of families

    isFromConfignumberOptional

    Object is from config, 0 for created but not configured, 1 for created from config

    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    404

    Not Found

    application/json

    Not Found

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    get
    Path parameters
    hidstringRequired

    MobiusFlow Hub ID

    Example: {"value":"000001"}Pattern: ^[0-9A-Fa-f]{6}$
    sidstringRequired

    MobiusFlow Service ID

    Example: {"value":"020"}Pattern: ^[0-9A-Fa-f]{3}$
    pidstringRequired

    MobiusFlow Object Profile ID

    Example: {"value":"014A"}Pattern: ^[0-9A-Fa-f]{4}$
    insstringRequired

    MobiusFlow Object Instance ID

    Example: {"value":"0001"}Pattern: ^[0-9A-Fa-f]{4}$
    ridstringRequired

    MobiusFlow Resource ID

    Example: {"value":"40"}Pattern: ^[0-9A-Fa-f]{2}$
    Responses
    200

    Ok response

    application/json

    Ok response

    tsstringRequired

    Timestamp of the response

    Example: 2022-12-21T10:25:54.585Z
    uristringRequired

    URI of the response

    Example: 000001/020/000D/0001/40
    ridstringOptional

    Resource ID

    typestringOptional

    Resource type

    namestringOptional

    Resource name

    pvany ofOptional

    Resource value

    stringOptional
    or
    numberOptional
    or
    booleanOptional
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    or
    nullOptional
    Other propertiesanyOptional
    400

    Bad Request

    application/json

    Bad Request

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    401

    Unauthorized

    application/json

    Unauthorized

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    408

    Request Timeout

    application/json

    Request Timeout

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired
    500

    Internal Server Error

    application/json

    Internal Server Error

    tsstringOptional
    statusCodenumberRequired
    errorstringRequired
    codenumberOptional
    messagestringRequired

    Configure Networks

    Configure the network interfaces for a balenaCloud device

    The configuration of the network interfaces of a MobiusFlow® balenaCloud device is handled by the manage microservice. All configuration is stored in a JSON file which can be updated by plugging in a properly configured USB memory stick or through the balenaCloud device terminal.

    Network Configuration File Structure

    As each device type has different configurations and names for the underlying network interfaces, the structure of the network configuration may differ depending on the device type you are using

    [
      {
        "connection": 
    
    [
      {
        "connection": {
          "enabled": true,
          "type": "ethernet",
          "id": "Wired connection 1",
          "interface-name": "eth0"
        },
        "ipv4": {
          "method": "auto",
          "address": "",
          "prefix": 24,
          "gateway": "",
          "dns": ""
        }
      },
      {
        "connection": {
          "enabled": false,
          "type": "wifi",
          "id": "WiFi connection 1",
          "interface-name": "wlan0"
        },
        "ipv4": {
          "method": "auto",
          "address": "",
          "prefix": 24,
          "gateway": "",
          "dns": ""
        },
        "wifi": {
          "ssid": ""
        },
        "wifi-security": {
          "psk": "",
          "auth-alg": "open",
          "key-mgmt": "wpa-psk"
        }
      },
      {
        "connection": {
          "enabled": false,
          "type": "hotspot",
          "id": "WiFi hotspot 1",
          "interface-name": "wlan0"
        },
        "wifi": {
          "ssid": "",
          "channel": 6
        },
        "wifi-security": {
          "psk": "",
          "key-mgmt": "wpa-psk"
        }
      }
    ]

    Editing the Network Configuration

    Using the balenaCloud Device Terminal

    Navigate to your balenaCloud dashboard and login in

    Navigate to the Device Summary page of the device you want to configure

    Open a terminal in the manage microservice

    Change to the /data/.mobius/manage directory and edit the networks.json file by running the following commands:

    This will open the network configuration file for editing using the vi editor

    Make any required changes and save the file

    Exit the terminal and restart the manage microservice by clicking on the restart icon next to the manage service

    Using a USB memory stick to update the network interfaces is useful when none of the network interfaces is configured to connect to the internet so it is not possible to use the balenaCloud device terminal. You will obviously need physical access to the device to use this method.

    Format the USB memory stick as FAT32

    Rename the USB memory to MOBIUSCONF

    Create a file on the USB memory stick called networks.json

    Open the file on your laptop or PC in your favourite text editor and paste in the correct JSON configuration from the examples above

    Make any required changes

    Save the file and unplug the USB memory stick from your laptop or PC

    Plug the USB memory stick into any of the USB ports on your device

    Reboot your device

    When the device reboots it will copy the networks.json onto the device and use the new configuration for its network interfaces (this will take a minute or two)

    You can then remove the USB memory stick and your device will continue to use the new network configuration.

    Installed Services

    What are the mobius, manage, and mongodb microservices?

    balenaCloud devices can run multiple microservices in separate Docker containers. Deploying MobiusFlow® to your device will create three microservices. You can start, stop and view logs for each service on the balenaCloud device summary page.

    MobiusFlow® Microservices

    mobius

    This microservice runs the MobiusFlow® application.

    manage

    Manages network interfaces. See Configure Networks for more information

    mongodb

    A full version of MongoDB which you can use to store / retrieve data in flows.

    The default settings are

    Setting
    Default Value

    Set Config Mode Password Page

    Set the configuration mode password

    The Config Mode Password is used to login to the configuration pages of the connector. The default password is mobiusflow

    You can change the password on this page

    If you forget your password you will have to the connector

    Set the config mode password

    Save Settings

    Click the Save button

    Click the Home button on the settings saved confirmation page to return to the Home page

    Database

    mobius

    Username

    mobius

    Password

    RmzsXQYReLHaCS5wWGjAPjtJ7VnTw4qL

    factory reset
    get
    /api/v1/mobius/discover/{hid}
    get
    /api/v1/mobius/discover/{hid}/{sid}
    get
    /api/v1/mobius/discover/{hid}/{sid}/{pid}
    get
    /api/v1/mobius/discover/{hid}/{sid}/{pid}/{ins}
    get
    /api/v1/mobius/discover/{hid}/{sid}/{pid}/{ins}/{rid}

    Discover MobiusFlow services on a given hub

    Discover MobiusFlow objects profiles on a given service

    Discover MobiusFlow objects of a given type

    Discover a MobiusFlow object

    Discover a MobiusFlow resource

    {
    "enabled": true,
    "type": "ethernet",
    "id": "Wired connection 1",
    "interface-name": "enp2s0"
    },
    "ipv4": {
    "method": "auto",
    "address": "",
    "prefix": 24,
    "gateway": "",
    "dns": ""
    }
    },
    {
    "connection": {
    "enabled": true,
    "type": "ethernet",
    "id": "Wired connection 2",
    "interface-name": "enp3s0"
    },
    "ipv4": {
    "method": "manual",
    "address": "192.168.1.100",
    "prefix": 24,
    "gateway": "",
    "dns": ""
    }
    },
    {
    "connection": {
    "enabled": false,
    "type": "wifi",
    "id": "WiFi connection 1",
    "interface-name": "wlp4s0"
    },
    "ipv4": {
    "method": "auto",
    "address": "",
    "prefix": 24,
    "gateway": "",
    "dns": ""
    },
    "wifi": {
    "ssid": ""
    },
    "wifi-security": {
    "psk": "",
    "auth-alg": "open",
    "key-mgmt": "wpa-psk"
    }
    },
    {
    "connection": {
    "enabled": false,
    "type": "hotspot",
    "id": "WiFi hotspot 1",
    "interface-name": "wlp4s0"
    },
    "wifi": {
    "ssid": "",
    "channel": 6
    },
    "wifi-security": {
    "psk": "",
    "key-mgmt": "wpa-psk"
    }
    },
    {
    "connection": {
    "enabled": true,
    "type": "gsm",
    "id": "GSM connection 1",
    "interface-name": "cdc-wdm0"
    },
    "gsm": {
    "apn": "arkessa.com",
    "username": "arkessa",
    "password": "arkessa"
    }
    }
    ]

    Be careful when changing the network interface you are using to connect the device to the internet as you could prevent the device from connecting to balenaCloud.

    Using a USB Memory Stick

    balenaCloud device manage terminal
    Edit networks.json file
    Restart the manage microservice
    GET /api/v1/mobius/discover/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001",
      "data": [
        {
          "id": "0004/002",
          "spid": "0004",
          "registered": "2022-12-21T09:27:33.406Z",
          "status": "online"
        },
        {
          "id": "0012/012",
          "spid": "0012",
          "registered": "2022-12-21T09:27:35.006Z",
          "status": "online"
        },
        {
          "id": "0021/020",
          "spid": "0021",
          "registered": "2022-12-21T10:24:51.695Z",
          "status": "online"
        }
      ]
    }
    GET /api/v1/mobius/discover/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020",
      "data": [
        "0001",
        "000D",
        "0010"
      ]
    }
    GET /api/v1/mobius/discover/{hid}/{sid}/{pid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D",
      "data": [
        "0001",
        "0002"
      ]
    }
    GET /api/v1/mobius/discover/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001",
      "data": [
        {
          "pid": "000D",
          "ins": "0001",
          "profileName": "enocean_A5-08-01",
          "description": "EnOcean light, temperature and occupancy sensor",
          "resources": [
            {
              "rid": "00",
              "type": "string",
              "name": "parentObject",
              "pv": "",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "",
                ""
              ],
              "settings": {
                "access": "rw",
                "tags": {
                  "attribute": "true"
                }
              }
            },
            {
              "rid": "01",
              "type": "string",
              "name": "name",
              "pv": "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "EnOcean EEP A5-08-01 Light, Temperature and Occupancy Sensor",
                ""
              ],
              "settings": {
                "access": "r",
                "tags": {
                  "attribute": "true"
                }
              }
            },
            {
              "rid": "02",
              "type": "datetime",
              "name": "objectLastUpdated",
              "pv": "1970-01-01T00:00:00.000Z",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "1970-01-01T00:00:00.000Z",
                "1970-01-01T00:00:00.000Z"
              ],
              "settings": {
                "access": "r"
              }
            },
            {
              "rid": "03",
              "type": "string",
              "name": "description",
              "pv": "",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "",
                ""
              ],
              "settings": {
                "access": "r",
                "tags": {
                  "attribute": "true"
                }
              }
            },
            {
              "rid": "04",
              "type": "string",
              "name": "location",
              "pv": "",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "",
                ""
              ],
              "settings": {
                "access": "r",
                "tags": {
                  "attribute": "true"
                }
              }
            },
            {
              "rid": "0A",
              "type": "string",
              "name": "eep",
              "pv": "A5-08-01",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "A5-08-01",
                ""
              ],
              "settings": {
                "access": "r",
                "tags": {
                  "attribute": "true"
                }
              }
            },
            {
              "rid": "0B",
              "type": "string",
              "name": "uid",
              "pv": "12345678",
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                "12345678",
                ""
              ],
              "settings": {
                "access": "r",
                "maxlen": 8,
                "tags": {
                  "attribute": "true"
                }
              }
            },
            {
              "rid": "0C",
              "type": "number",
              "name": "status",
              "pv": 0,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                0,
                0
              ],
              "settings": {
                "access": "r"
              }
            },
            {
              "rid": "0D",
              "type": "number",
              "name": "dBm",
              "pv": 0,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                0,
                0
              ],
              "settings": {
                "access": "r",
                "units": "dBm"
              }
            },
            {
              "rid": "0E",
              "type": "bool",
              "name": "lrn",
              "pv": false,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                false,
                false
              ],
              "settings": {
                "access": "r"
              }
            },
            {
              "rid": "40",
              "type": "number",
              "name": "tmp",
              "pv": 0,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                0,
                0
              ],
              "settings": {
                "access": "r",
                "min": 0,
                "max": 51,
                "precision": 1,
                "units": "C"
              }
            },
            {
              "rid": "41",
              "type": "number",
              "name": "lux",
              "pv": 0,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                0,
                0
              ],
              "settings": {
                "access": "r",
                "min": 0,
                "max": 510,
                "precision": 1,
                "units": "lx"
              }
            },
            {
              "rid": "42",
              "type": "bool",
              "name": "pirs",
              "pv": false,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                false,
                false
              ],
              "settings": {
                "access": "r"
              }
            },
            {
              "rid": "43",
              "type": "bool",
              "name": "occupany",
              "pv": false,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                false,
                false
              ],
              "settings": {
                "access": "r"
              }
            },
            {
              "rid": "44",
              "type": "number",
              "name": "supplyVoltage",
              "pv": 0,
              "prar": [
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                0,
                0
              ],
              "settings": {
                "access": "r",
                "min": 0,
                "max": 5.1,
                "precision": 1,
                "units": "V"
              }
            }
          ],
          "families": [
            "EnOcean",
            "TemperatureSensor",
            "OccupancySensor",
            "LightSensor"
          ],
          "isFromConfig": 1
        }
      ]
    }
    GET /api/v1/mobius/discover/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2022-12-21T10:25:54.585Z",
      "uri": "000001/020/000D/0001/40",
      "data": [
        {
          "rid": "40",
          "type": "number",
          "name": "tmp",
          "pv": 0,
          "prar": [
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            0,
            0
          ],
          "settings": {
            "access": "r",
            "min": 0,
            "max": 51,
            "precision": 1,
            "units": "C"
          }
        }
      ]
    }
    cd /data/.mobius/manage
    vi networks.json

    MobiusFlow Architecture

    Mobius system

    A typical MobiusFlow system consists of a single or multiple MobiusFlow nodes connected together via a TCP/IP network. Each node is capable of operating independently of the rest of the system, but nodes can interact with each other to form a complex system. All node interaction takes place through one or more brokers via a node’s router.In a multi-node system, the location of the broker is not important. It can reside on the same device as one of the nodes or on an independent device.

    Each node is classed as, and exhibits the behavior of, an edge computing device. In this context edge devices are not only field devices but could also be on the edge of a server or cloud server providing the server with connectivity to all of the true edge or field devices.

    Mobius nodes

    A Mobius node consists of a central Mobius hub, one or more Mobius services and optionally one or more Mobius routers.

    Services contain the service logic and an object data store. Connections to sensors, actuators and other communication interfaces such as Modbus or BACnet can be added depending on the service’s purpose and controlled through the service's logic.

    The object data store models the physical or virtual connections and provides a standardised method for services and other nodes to communicate and share data with each other through Mobius objects.

    All of the communications between services through the hub or nodes through routers and brokers is based on the protocol. The MobiusFlow protocol has been defined on top of this MQTT protocol providing a well-defined API enabling different physical devices and protocols to communicate with each other in a consistent way.

    Mobius nodes follow the architecture pattern, where each service is a stand-alone process capable of communication with other microservices creating a large application from small manageable pieces.

    Routers are used to cross node boundaries. They provide a secure mechanism for nodes to share data using the MobiusFlow protocol.

    The logical structure of a node is detailed below. This diagram shows the hierarchical relationship between all of the parts which make up a node and how objects contain resources, services contain objects and hubs connect to services and routers.

    The Mobius URI structure allows addressing any part of a node at any depth.

    A Mobius hub is the foundation of a node. At its heart, a Mobius hub is just an MQTT broker which manages and links Mobius services and Mobius routers. Hubs are responsible for ensuring that all services and routers are valid members of a node by verifying their pre-shared authentication key on connection.

    Each hub within a Mobius system is given a unique ID. This is a six digit hex number which forms the first part of the Mobius URI hierarchy. When referencing a hub, for example during a discovery process, this unique ID must be used (see ).

    When service or router connects to a hub, and has been validated, the hub provides it with a copy of the Mobius object profiles and pre-shared keys files, ensuring that all services and routers connected to the hub are able to communicate and understand one another.

    Mobius services are the engines which drive MobiusFlow. Each service is essentially a microservice performing a specific task and possibly acting as an interface to a piece of hardware or a 3rd party service such as Microsoft's Azure platform or the IBM Cloud.

    All services MUST implement the full MobiusFlow protocol to enable them to connect to hub and communicate with other services. In addition to implementing the MobiusFlow protocol, services can create Mobius objects to store and share data and can also contain service specific logic to perform the task that they are designed for. When creating services, try an keep them focused on one task and create additional services to perform other tasks. This ensures that services are reusable and Mobius systems can be configured to only contain the logic that they require.

    Each service within a Mobius node is given a unique ID. This is a three digit hex number which forms the second part of the Mobius URI hierarchy. When referencing a service, for example during a discovery process, this unique ID must be used (see ).

    Mobius routers control all MobiusFlow communication into and out of a node. This ensures that nodes are secure and allows nodes to discover each other within a MobiusFlow system.

    Routers are split into two parts, one side of the router communicates internally with its associated hub and all of the services within a node, while the other side of the router communicates externally through a 'no-mans' broker to other routers on other nodes. All external communication is done using MQTT over the protocol. This could be done over a secure or non-secure connection (ws:// or wss://).

    Routers are capable of routing messages between services belonging to different nodes, essentially allowing a service on one node to read, write and subscribe to change-of-value events on objects in another node.

    The key to the MobiusFlow system is Mobius objects. These objects typically model real-world objects and provide a mechanism for sharing data and storing state in a consistent way. Each object has a unique identifier or which can be discovered and used by any part of the MobiusFlow system.

    Mobius objects are predefined in an object profiles file which is passed to a services by the hub when a service connects.

    Each object within a Mobius node is given a unique ID. This ID consists of two parts and is made up of the object profile ID (PID) which describes the object's type, and the object's instance number (INS). The PID is a four digit hex number which forms the third part of the Mobius URI hierarchy and the INS is a four digit hex number which forms the fourth part of the Mobius URI hierarchy. When referencing an object, for example during a discovery process, this unique ID must be used (see ).

    Mobius objects contain one or more resources. It is these resources which are used to define objects that mimic or represent real-world objects. An example of a single object is a room temperature sensor. This object may have resources which define the sensor’s name, location, asset reference, engineering units, set point and actual measured value.

    Each resource is capable of storing a single value which can currently be of type Boolean, Number, String, DateTime or TimeSpan. Resources also store meta-data about the value. The actual meta-data depends on the value type chosen. Resources can be read only or read/write. Read only resources have their values set when they are created.

    Each resource within an object is given a unique ID. This is a two digit hex number which forms the fifth and final part of the Mobius URI hierarchy. When referencing a resource, for example during a read, this unique ID must be used (see ).

    Resources store their values in a priority array. This priority array works in a similar manner to a priority array. The array has 16 possible locations with location 1 being the highest priority and location 16 being the lowest priority.

    When reading the value of a resource the actual value is returned in the PV(present value) property. The PV is always equal to the value of the highest active (non null) priority in the resource's priority array.

    MobiusFlow Uniform Resource Identifiers (URIs)

    Within a MobiusFlow system all hubs, services, objects and resources are identified by a unique address known as a Uniform Resource Identifier or URI. These URIs are hierarchical so given the URI for a Mobius resource it is possible to identify which object the resource belongs to, what the object type is, which service the object belongs to and which Mobius node the service is running on.

    Mobius URI Definition

    An object’s URI (or name) is defined in 4 parts, namely the hub ID (HID), service ID (SID), object profile ID (PID) and instance number (INS). A fifth part is added when accessing a specific resource, the resource ID (RID).

    Each part of an object’s URI is a uppercase string of a defined length (as shown in the table below). The URI’s parts are separated with a forward slash (/).

    A full URI is typically defined as HID/SID/PID/INS/RID.

    It is possible to address any part of the system by only using the required parts of the URI. e.g. to address a service only the first two parts of the URI are used HID/SID and to address an object only the first four parts are used HID/SID/PID/INS.

    An example of an object URI for an object of instance 1, profile 3A, created by service 1F connected to hub 1 is:

    000001/01F/003A/0001

    and if addressing resource 40 on that object the full URI would be:

    000001/01F/003A/0001/40

    Under certain conditions, such as subscribing to a resource’s change of value event, it is possible to use wildcards in the URI. These wildcards are described in the table below and follow the MQTT standard.

    Services

    Managing MobiusFlow Services

    MobiusFlow Services are the starting point for any configuration. They are typically device drivers for a specific protocol or provide protocol interfaces such as an MQTT broker.

    The main services page shows an overview and status of each service that has been added to the configuration. You can interact with services in a number of ways, including configuring a service, starting and stopping a service, or adding and configuring objects belonging to a service.

    MobiusFlow includes a number of pre-configured that you may or may not be able to interact with in the normal way. These include the Engine API and Historian services

    The main services page shows an overview of all services that have been added to an instance. Each service is represented by a card which provides status information and allows you to interact with the service.

    As new services are added cards will appear on this this page. The service list is also visible in the main menu below the Services menu item.

    Service Library

    The service library is a list of all possible services that can be added to MobiusFlow. You can show and hide the library by clicking on the button in the top left of the page.

    For more information on adding services please read the article.

    Service cards show a lot of information about a service and allow you to interact with a service.

    The service ID is a three digit hexadecimal number and is shown in the middle of the coloured service status circle in the top left corner of the card.

    The service name is shown at the top of the main body of the card. The name can be set in the service settings and defaults to the service type.

    The service status is shown in two places on the card.

    The coloured circle in the top left corner gives a quick indication of the health of a service. The indicator colours are as follows:

    Colour
    Meaning

    In addition to the quick status indicator, detailed status information is shown in the main body of the card beneath the service name. If a service is in error, the error is shown here.

    At the bottom left of the main body of the card is a timestamp showing the last time a service interacted with the MobiusFlow instance.

    The service type is shown in the top right corner of the main body of the card.

    In addition the internal Service Profile ID (SPID) which also indicates the service type is shown in the bottom right of the main body of the card

    With the exception of system services, each service card has a toolbar in the top right. Hovering over the card will highlight the toolbar. The six buttons from left to right are:

    Button
    Action

    Accessing the belonging to a service can be done in two ways. You can click on the main body of a service card or click on the service in the main menu.

    Technical Training 1

    Training material used in conjunction or reference following a standard MobiusFlow training session 1.

    This section outlines the major technologies reference in this training. Learning about this technologies is recommended.

    MQTT (Message Queuing Telemetry Transport) is a lightweight and efficient publish-subscribe messaging protocol, commonly used in IoT (Internet of Things) applications.

    MQTT is widely used for data transport throughout the MobiusFlow software.

    JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy for humans to read and write, and easy for machines to parse and generate.

    Learn how JSON works .

    3

    01F

    The microservice ID. This must be unique for all services on a single node.

    PID

    4

    003A

    The object's profile ID. This describes the objects type. Object profiles determine what resources an object has available.

    INS

    4

    0001

    The object's instance number. This is unique for each object of a specific type belonging to a service.

    RID

    2

    40

    The resource ID

    URI Section

    Length

    Example

    Description

    HID

    6

    000001

    The Mobius Hub or node ID. This should be unique within a MobiusFlow system.

    Wildcard

    Meaning

    Example

    +

    Any value in this location

    000001/+/003A/+/40

    #

    Any value in this location and all subsequent locations

    Mobius URI Wildcards

    hexadecimal

    SID

    000001/01F/#

    Logical structure of a node

    Hubs

    Services

    Routers

    Mobius objects

    Object resources

    Present value and the priority array

    MQTT
    microservice
    MobiusFlow Uniform Resource Identifiers
    MobiusFlow Uniform Resource Identifiers
    WebSocket
    Mobius URI
    MobiusFlow Uniform Resource Identifiers
    MobiusFlow Uniform Resource Identifiers
    BACnet
    MobiusFlow node, logical structure

    Running MobiusFlow via Docker

    MobiusFlow has been containerised and is run via docker.

    Mobius v1.X.X

    Below is an example docker-compose.yml file you could use when running MobiusFlow. In this example, an online version of MobiusFlow 1.19.1 is used. Note that, as well as the MobiusFlow service (labelled simply 'mobius'), the file also containers a reference to an nginx and mongodb containers.

    The nginx container is used for port mapping, and mongodb container used as a database. Neither of these are required to run MobiusFlow.

    This file can also be downloaded here:

    2KB
    docker-compose.yml
    Open

    Licensing

    It is important to include the correct licensing information within the environment variables of your docker-compose.yml file.

    See the main article on licensing for a full explanation of what is required for online and offline licensing as well updating a given licence.

    {null,null,null,null,null,null,null,null,null,null,null,null,null,null,12,null} -> PV = 12 (priority 15)
    {null,null,null,null,null,null,null,null,56,null,null,null,null,null,12,null} -> PV = 56 (priority 9)
    {null,null,78.5,null,null,null,null,null,56,null,null,null,null,null,12,null} -> PV = 78.5 (priority 3)
    version: "3.8"
    
    volumes:
      mobius-data:
      mobius-licence:
      mongodb:
    
    networks:
      frontend:
      backend:
    
    services:
      mobius:
        platform: linux/amd64
        build: ./dist
        image: local/mobiusflow-docker:1.19.1_1.19.1
        container_name: mobiusflow
        privileged: false
        restart: always
        environment:
          - MOBIUS_HUB_RESET_PSKS=true
          - MOBIUS_ENABLE_CONFIG_UI=true
          - MOBIUS_HUB_ID=000001
          - MOBIUS_LOCAL_TIMEOUT=10000
          - MOBIUS_LOG_SERVICE_STATUS=
          - MOBIUS_LICENCE=38782095-410e7ab5-c3c36a84-dd39683f-c5a8062b-78f846c2-52588c49-fc8eecf4
          # - MOBIUS_LICENCE_KEY=
          # - MOBIUS_LICENCE_TOKEN=
          # - MOBIUS_LICENCE_RESET=
          - MOBIUS_ENGINE_API_PORT=8443
          - MOBIUS_ENGINE_API_AUTH_PROVIDER=local
        volumes:
          - mobius-data:/data
          - mobius-licence:/.licence
        networks:
          - backend
        logging:
          driver: "json-file"
          options:
            max-size: "10m"
            max-file: "10"
      nginx:
        image: ghcr.io/mobiusflow/nginx-cloud:1.1.0
        container_name: nginx
        privileged: false
        restart: always
        environment:
          - NGINX_UI_CONTAINER=mobius
        ports:
          # these ports are for use with the nginx TLS terminator use in mobius-cloud-install
          - 8080:8080
          - 8443:8443
          - 1883:1883
          - 30814:30815
          - 30817:30817
        networks:
          - frontend
          - backend
        logging:
          driver: "json-file"
          options:
            max-size: "10m"
            max-file: "10"
      mongodb:
        image: bitnami/mongodb:latest
        container_name: mongodb
        restart: always
        environment:
          - MONGODB_ROOT_PASSWORD=r5DybE57qug3WaHebeUy2bAvvVhKXUWHD
          - MONGODB_USERNAME=mobius
          - MONGODB_PASSWORD=RmzsXQYReLHaCS5wWGjAPjtJ7VnTw4qL
          - MONGODB_DATABASE=mobius
        volumes:
          - mongodb:/bitnami/mongodb
        networks:
          - backend
        logging:
          driver: none

    Service is running an OK

    Blue

    Service is starting

    Make a copy of a service including all of its objects and settings

    Delete a service and all of its objects

    Grey

    Service is disabled and cannot be started

    Red

    Service is enabled but not started

    Amber

    Service is running but has an error

    Green

    Start service

    Start a service that is enabled but stopped

    Stop service

    Stop a service that is running

    Hot reload service

    Update a service's objects after a change without stopping the service

    Service settings

    Service Cards

    Service ID (SID)

    Service Name

    Service Status

    Quick Status Indicator

    Detailed Status Information

    Last Seen

    Service Type

    Service Toolbar

    Accessing Service Objects

    You cannot access the objects page for System Services.

    Adding Services
    Objects
    System Services

    Access the service settings dialog

    A basic knowledge of JSON is required when using the Flows (logic engine) within MobiusFlow.

    EnOcean is a short distance wireless communication protocol used widely within the IoT space. Each EnOcean device has a unique identifier (UID) which is used to identify the sender of all EnOcean wireless telegrams.

    Diagram of EnOcean devices and a MobiusFlow connector (EnOcean Transceiver / MQTT Converter)

    During this training, EnOcean will be used as an exemplar IoT technology to demonstrate MobiusFlow from the device level.

    A MobiusFlow instance runs a central MobiusFlow Hub. Services, each of which have a function within the overall solution, reside on the hub, and use it as a relay to communicate information.

    MobiusFlow Hub / Service / Object hierarchy

    A MobiusFlow object often represents a virtual equivalent of a real-world device, however can represent non-physical entities such as calculated data.

    Some services can have MobiusFlow objects reside on them, often when the service needs to directly interact with those objects in some way. For example, objects representing EnOcean devices will always reside on an EnOcean devices service.

    A MobiusFlow object contains many resources, each being its own individual data stream representing something about that object.

    MobiusFlow Object / Resource hierarchy

    Below shows a screenshot from the MobiusFlow software of the list of resources associated to an EnOcean Temperature / Humidity / C02 sensor.

    A point is a chargeable resource. Notice in the above screenshot, the points column is only populated for Temperature, Humidity and CO2.

    Also notice how the MobiusFlow software calculates your total point usage and displays this at the bottom right hand corner.

    All parts of the MobiusFlow hierarchy are assigned a unique URI with the following structure:

    HID/SID/PID/INS/RID

    Explanation
    Format

    HID

    Hub ID

    6-Digit Hex

    SID

    Service ID

    3-Digit Hex

    Service

    Full example URI of a service:

    000001/020

    Representing service 020 on hub 000001.

    Object

    Full example URI of an object:

    000001/020/0028/0001

    Representing instance 0001 of object type (profile) 0028 on service 020 on hub 000001.

    Resource

    Full example URI of a resource:

    000001/020/0028/0001/40

    Representing resource 40 on instance 0001 of object type (profile) 0028 on service 020 on hub 000001.

    Conclusion

    Using the URI system, it is therefore possible to reference any component of a given MobiusFlow configuration.

    This aims to show how data taken from EnOcean sensors at a hardware level, is brought into and through the MobiusFlow system, and then presented in the form of a dashboard.

    The following shows a colorless project schematic representing lack of implementation. As the project is implemented, this diagram will be colored in so progress can easily shown.

    Service
    Explanation of requirement

    MQTT Broker

    To allow MobiusFlow connectors to connect to and send data to

    Connector Service

    To collect incoming messages from MobiusFlow connectors and bring the data into the MobiusFlow Hub

    EnOcean Devices Service

    To decode raw EnOcean messages from the MobiusFlow hub and populate this service's child MobiusFlow objects with human-readable data.

    Add and start MQTT Broker service:

    Add connectors service, add a connector to the service, and finally start the service.

    Add and start service:

    Add a MobiusFlow connector object to the connectors service and configure:

    Add EnOcean Devices service, add EnOcean device objects to the service, and finally start the service.

    For full information on how to configure a MobiusFlow connector see here.

    The status of all service can viewed. This is a helpful insight into the current state of the solution as well as aiding with diagnostics.

    The data of any live object can viewed by navigating to that object and then clicking on resources.

    Connecting the flows to the MobiusFlow engine, as well as the baseline principles of pulling into the flows is covered here.

    In this example, the live state of the buttons on a 4-Rocker EnOcean switch is shown on a basic dashboard.

    Completed project schematic

    Using dashboard in the way illustrated can be as simple or as complex as required. Display widgets include graphs, charts and tables, as well input widgets such as switches, buttons, drop-downs and text inputs. Full documentation of the Flows dashboard can be found here.

    Technologies Referenced

    MQTT

    JSON

    here
    MQTT Diagram

    EnOcean

    MobiusFlow Overview

    Structure

    Points / Resources

    URIs

    Example URIs

    Configuration Example

    Example Overview

    Project Schematic

    Note that the EnOcean devices have been dropped from the diagram for simplicity

    Explanation of Services

    MobiusFlow Configuration

    MQTT Broker

    The MQTT Broker service has been added, configured and started.

    Connector Service

    The Connector service has been added, configured and started.

    EnOcean Devices Service

    The EnOcean devices service has been added, configured and started.

    Connecting Hardware

    MobiusFlow connector is connected.

    Service Status and Data

    Flows

    Dashboard

    spinner
    spinner

    Connection Details and LED Indicators

    You have three options to power the connector

    Power Option
    Details
    Clone service
    Delete service

    USB

    5V 500mA via micro USB

    You can connect to your network via wired Ethernet or 2.4GHz WiFi

    The image and table below describe the connections and LED indicators on the front panel of the connector.

    Item
    Description
    Comments

    1

    Ethernet port and PoE Supply

    2

    5 to 24vdc screw terminals

    The product label is on the bottom of the connector. It shows the part number, software version and serial number of the product.

    PoE

    Power over Ethernet (30 watts)

    DC Supply via screw terminals

    5 to 24Vdc 500mA

    Power Options

    Network Options

    Front Panel

    Product Label

    The serial number is required when configuring both the connector and your MobiusFlow® instance. Make sure you take a note of the serial number before starting

    PID

    Profile ID (A MobiusFlow profile can be thought of as an object type)

    4-Digit Hex

    INS

    Instance ID (The ID of that object instance)

    4-Digit Hex

    RID

    Resource ID

    2-Digit Hex

    3

    USB power

    4

    Configuration button

    Push and hold to enter config mode or factory reset

    5

    Power OK indicator

    Connector is powered

    6

    5 to 24vdc power OK

    7

    USB power OK

    8

    PoE power OK

    9

    MobiusFlow® connected

    Connected to MobiusFlow® gateway

    10

    Network connected (upstream)

    Network connection established

    11

    Module present in slot 1

    12

    Module 1 activity

    Flashes when module 1 sends or receives data

    13

    Module present in slot 2

    14

    Module 2 activity

    Flashes when module 2 sends or receives data

    spinner
    spinner
    spinner
    spinner
    spinner

    MobiusFlow Cloud Hosted Environment

    Reference material for the environment in which MobiusFlow Cloud Instances exist

    MobiusFlow with LoRaWAN Stack

    It is optional to include the LoRaWAN Stack when specifying the hosting type on instance creation. This Stack will grant the ability to use the MobiusFlow LoRaWAN LNS.

    If included, an instance of Chirpstack and it associated infrastructure will be hosted in the background. Accessing this is not necessary to use the LNS, however it is accessible if required. Full details can be found within the LNS Service documentation.

    Port Mappings (Simple)

    The table below shows a simple overview illustrating how the ports are mapped. This is a simple overview suitable for most users.

    Exposed Port
    Internal
    Usage
    Version

    Different parts of the MobiusFlow solution run in different docker containers. These communicate via docker routing. Docker routing allows container names to be resolved in the Host OS, for example, to refer to the Mobius Engine API from the Host OS or a container that is not the mobius container, one could use mobius:8442 (container name followed by Host OS Port).

    This means that, if communication between containers is required, the Host OS port and container is required. As such, these are included in the advanced port mappings table below.

    The table below gives a full description of the port mappings a MobiusFlow Cloud hosted environment is subject to.

    Exposed Port
    Host OS Port
    Container Name
    Internal
    Usage
    Version

    Configuring Raspberry Pi Connector

    Page covers how to configure a Raspberry Pi Connector

    If the Connector is hosted via BalenaCloud and has an internet connection, the configuration can be accessed anywhere via the BalenaCloud Public Device URL.

    If the connector is hosted by MobiusFlow, please contact support to receive the Public Device URL.

    The BalenaCloud Public Device URL can be found by Navigating to the connector device on the BalenaCloud fleet.

    By default, the MobiusFlow connector will broadcast a WiFi access point, the name of which matches the connector's serial number (in the form of MF_XXXXX). Connect to this access point on a computer or mobile device. Then the configuration window is accessible by browsing to 10.42.0.1.

    If the connector is connected to a local network via Ethernet or WiFi (with a known IP address) and you're able to also connect to this network using a computer or mobile device, then simple browse to the local IP of the connector.

    spinner

    8883

    1883

    Suggested use for MQTT Broker. If the port is set to 1883 within the service, it will be accessible in the outside via 8883.

    All

    30815

    30815

    Free

    All

    30817

    30817

    Free

    All

    8081

    8082

    Chirpstack UI

    MobiusFlow with LoRaWAN Stack

    1700

    1700

    EU868 Chirpstack LoRaWAN Gateway Bridge

    MobiusFlow with LoRaWAN Stack

    1701

    1700

    US915_0 Chirpstack LoRaWAN Gateway Bridge

    MobiusFlow with LoRaWAN Stack

    1702

    1700

    US915_1 Chirpstack LoRaWAN Gateway Bridge

    MobiusFlow with LoRaWAN Stack

    All

    8080

    8080

    toolbox

    8080

    MobiusFlow UI (Toolbox)

    All

    1880

    1879

    mobius

    1880

    Flows access

    All

    8883

    1883

    mobius

    1883

    Free - Normally MF MQTT Broker

    All

    30815

    30814

    mobius

    30815

    Free

    All

    30817

    30816

    mobius

    30817

    Free

    All

    8081

    8082

    chirpstack

    8082

    Chirpstack UI

    MobiusFlow with LoRaWAN Stack Only

    /

    1884

    mosquitto

    1884

    Chirpstack MQTT broker

    MobiusFlow with LoRaWAN Stack Only

    /

    8090

    chirpstack-rest-api

    8090

    Chripstack Rest API

    MobiusFlow with LoRaWAN Stack Only

    1700

    1700

    chirpstack-gateway-bridge-eu868

    1700

    EU868 Chirpstack LoRaWAN Gateway Bridge

    MobiusFlow with LoRaWAN Stack Only

    1701

    1701

    chirpstack-gateway-bridge-us915_0

    1700

    US915_0 Chirpstack LoRaWAN Gateway Bridge

    MobiusFlow with LoRaWAN Stack Only

    1702

    1702

    chirpstack-gateway-bridge-us915_1

    1700

    US915_1 Chirpstack LoRaWAN Gateway Bridge

    MobiusFlow with LoRaWAN Stack Only

    8443

    8443

    Mobius Engine API

    All

    8080

    8080

    MobiusFlow UI (Toolbox)

    All

    1880

    1880

    Flows access

    8443

    8442

    mobius

    8443

    Port Mappings (Advance)

    Docker & Docker Routing

    Full Mappings

    All

    Mobius Engine API

    When browsed to the configuration window of the connector, a login screen is presented.
    Connector configuration login Page

    The default password of all new MobiusFlow connectors is:

    mobiusflow

    Note that, if the connector is not new, this login password may have been changed.

    When on the the home page, the current status of the connector is shown. This includes:

    Property
    Notes

    Serial Number

    Required in the MobiusFlow connectors service. Note that this is copyable using the copy button displayed next to the number is itself

    Ethernet Connection Status

    The IP address will be displayed if connected

    WiFI Connection Status

    The IP address will be displayed if connected

    On-Board WiFi Hotspot (Labelled WiFi AP)

    Connector configuration home page

    The main menu also allows navigation to the connectors configuration pages. These includes those for Network Configuration, MQTT Configuration, Certification Configuration, and the Change Password page (allows the connector configuration password to be changed).

    It is critical that the MobiusFlow connector's network situation is such that it can access the target MobiusFlow instance over the network. This may be over the internet or simply over a local network.

    In either situation, the connector must be connected to the network and the configure network page allows for this.

    The connection type allows choosing between a Wired or WiFi connection.

    If using a Wired connection, ensure the Raspberry Pi is plugged in via Ethernet.

    Connector configuration networks page, in wired network mode

    If using WiFi mode, the WiFi SSID and corresponding password must be populated.

    Connector configuration networks page, in WiFi network mode

    The TCP/IP settings allow switching between DHCP and Static IP allocation. Unless there are specific reasons to set the connector on a static IP address, using DHCP is recommended.

    Connector configuration networks page, using DHCP

    If using the connector in Static mode, the Subnet Mask, Default Gateway and DNS 1 can be set. If it is not clear what to use here, use the default settings as shown below.

    Note that, the default gateway is not required however if the connector required access to the internet, the local IP address of the internet providing gateway (Network router / modem) must be populated here. This is often in the form XXX.XXX.XXX.1 or XXX.XXX.XXX.0 .

    Connector configuration networks page, using static IP

    Setting the connector up to be a WiFi access point is useful for two reasons.

    Firstly, it allows you to connect to it, allowing for easy wireless access to its configuration page. Secondly, if this connector has internet access via ethernet, it can act as an internet enabled hotspot to connect WiFi device to, in-turn giving them internet access.

    Connector configuration networks page, with AP Enabled

    If the WiFi access point is enabled, a WiFi SSID and Password must be set. It is recommended the default SSID is used (This matches the the connectors Serial Number)

    To save the changes click the save button. If there are an issues with the configuration, such as an invalid input in one of the fields, the form will show this and the changes will not be saved. If the settings were saved correctly, a pop up will show this after the save button has been clicked.

    Connectors use MQTT to communicate with MobiusFlow. As such, the Configure MQTT page allows the connector to be pointed at a specific MQTT broker. In almost all cases, the broker will be running the MobiusFlow instance itself.

    Before setting up the connector's MQTT configuration, ensure you first set up the MobiusFlow instance ready for this connection. A guide on how to do this can be found here.

    The configuration window shows the key 6 properties which must configured to allow an authorised connection to the MQTT broker.

    Connector configuration MQTT page

    Property
    Explanation

    Address

    The IP location of the MQTT broker. This may be a local IP address, an internet IP address or a DNS name. Do not include any protocol prefix (such as mqtt:// or https://)

    Port

    The port the MQTT broker is running on. If using the MQTT broker within MobiusFlow, this port number is set and shown within the service settings within the MQTT broker service within MobiusFlow. This is often 1883. Note that, if the MobiusFlow instance is hosted in the MobiusFlow cloud, port 1883 is externally exposed on 8883 (i.e. use 8883 even if MobiusFlow shows 1883)

    Username

    The username of any MQTT user set up on the MQTT broker (if using the broker within MobiusFlow, this can be set up within the MQTT broker service settings within MobiusFlow)

    To save the changes click the save button. If there are an issue with the configuration, such as an invalid input in one of the fields, the form will show this and the changes will not be saved. If the settings were saved correctly, a pop up will show this after the save button has been clicked.

    Once the changes have been made locally, to implement the changes within the connector, click the Reconfigure and Reboot button.

    Connector configuration Home page

    This will cause the connector to reboot. As such, the configuration window's connection to the connector will be lost. This may automatically be restored once the connector reboots, but this may not be the case if the connector's configuration has changed such that it is no longer accessible over the network.

    Accessing Configuration Page

    Via Balena Fleet

    MobiusFlow Hosted

    Self Hosted

    Via Raspberry Pi Access Point

    Via Local Network

    Login & Home

    Login

    Home Page

    Configure Network

    Connection Type

    Note that: In WiFi mode, the Wired network interface will remain enabled in the background. This acts as a secondary fall back interface, useful for accessing the connector the WiFi has failed to connect.

    Note that: If using in WiFi mode, using the Connector as WiFi access point is no longer possible. This is because the Raspberry Pi only contains a single WiFi adapter and therefore it can only be used to either connect to WiFi or as an access point.

    TCP/IP Settings

    WiFi Access Point

    Note that: If using in WiFi mode, using the Connector as WiFi access point is no longer possible. This is because the Raspberry Pi only contains a single WiFi adapter and therefore it can only be used to either connect to WiFi or as an access point.

    Saving Changes

    Note that, when changes are saved here, they're only being saved to the local changes within the browser window. To realise the changes in the connector, the Reconfigure and Reboot button must be clicked on the main menu

    Configure MQTT

    Overview

    Configuration Window

    Explanation of Properties

    Saving Changes

    Note that, when changes are saved here, they're only being saved to the local changes within the browser window. To realise the changes in the connector, the Reconfigure and Reboot button must be clicked on the main menu

    Realising Changes

    Will show a green tick if the On-Board WiFi Access point is enabled

    MQTT Connected

    Will show a green tick to indicate the connector is has connected to MobiusFlow

    Module 1 / Module 2

    Will show which types of transceivers are physically connected to the Raspberry Pi

    Password

    The password of any MQTT user set up on the MQTT broker (if using the broker within MobiusFlow, this can be set up within the MQTT broker service settings within MobiusFlow)

    PSK

    The pre-shared key of the connector. This can be anything however it must match the pre-shared key set up within the target connector object within the connectors service within the MobiusFlow instance.

    Use TLS

    A true / false property determining if the connection will attempt to use MQTT of TLS. This depends on how MobiusFlow is hosted and where the connector is accessing it from. Most set ups which involving accessing MobiusFlow over the internet will use TLS. If using an instance of MobiusFlow hosted via the MobiusFlow cloud, always enable TLS.

    Get profiles

    get

    Retrieve a list of profiles for a specific hub ID optionally filtered by profile IDs

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID of the profiles

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Query parameters
    pidsstringOptional

    JSON array of profile IDs to retrieve e.g. pids=["0001","01FF","00A0"] or all profiles if not specified

    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    const: profileOptional
    or
    const: instanceOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    const: profileOptional
    or
    const: instanceOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/historian/v3/profile/{hid}

    Get profile PIDs

    get

    Retrieve a list of all profile PIDs for a specific hub ID

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID of the profiles

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    datastring[]Required

    Array of profile IDs

    Example: ["0001","01FF","00A0"]
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/historian/v3/profile/{hid}/pids

    Get objects

    get
    Query parameters
    uristringOptional

    Object URI to retrieve or all objects if not specified. The URI can include MQTT like wildcards (URL encoded + or #) e.g. uri=000001/%2b/0001/%23

    Responses
    200

    Default Response

    application/json

    Array of Objects

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    Object URI

    hidstringRequired

    Object HID

    sidstringRequired

    Object SID

    pidstringRequired

    Object PID

    insstringRequired

    Object Ins

    namestringRequired

    Object Name

    descriptionstringRequired

    Object Description

    locationstringRequired

    Object Location

    tagsany ofOptional

    Object Tags

    valuestringOptional
    fromany ofRequired
    const: profileOptional
    or
    const: instanceOptional
    or
    nullOptional
    ridsany ofOptional

    Object RIDs

    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    const: profileOptional
    or
    const: instanceOptional
    or
    nullOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/historian/v3/object/

    Get raw telemetry data

    get
    Path parameters
    hidstringRequired

    Object HID

    sidstringRequired

    Object SID

    pidstringRequired

    Object PID

    insstringRequired

    Object INS

    ridstringRequired

    Object RID

    Query parameters
    startstringRequired

    Start date and time for telemetry data

    endstringRequired

    End date and time for telemetry data

    limitnumberOptional

    Limit the number of telemetry data points returned

    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    tsstringRequired
    valueany ofRequired
    stringOptional
    or
    numberOptional
    or
    booleanOptional
    typestringRequired

    Telemetry value

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/historian/v3/telemetry/raw/{hid}/{sid}/{pid}/{ins}/{rid}

    Get numeric telemetry data

    get
    Path parameters
    hidstringRequired

    Object HID

    sidstringRequired

    Object SID

    pidstringRequired

    Object PID

    insstringRequired

    Object INS

    ridstringRequired

    Object RID

    Query parameters
    intervalnumberRequired

    Interval in seconds for downsampling

    startstringRequired

    Start date and time for telemetry data

    endstringRequired

    End date and time for telemetry data

    includeMinstringOptional

    Include minimum value in the response

    includeMaxstringOptional

    Include maximum value in the response

    offsetstring · enumOptional

    Offset for within the interval for sampling values

    Possible values:
    limitnumberOptional

    Limit the number of telemetry data points returned. This will always be the most recent data points

    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    tsstringRequired
    valuenumberRequired

    Average telemetry value for the interval

    minnumberOptional

    Minimum telemetry value for the interval

    maxnumberOptional

    Maximum telemetry value for the interval

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/historian/v3/telemetry/numeric/{hid}/{sid}/{pid}/{ins}/{rid}

    Get boolean telemetry data

    get
    Path parameters
    hidstringRequired

    Object HID

    sidstringRequired

    Object SID

    pidstringRequired

    Object PID

    insstringRequired

    Object INS

    ridstringRequired

    Object RID

    Query parameters
    intervalnumberRequired

    Interval in seconds for downsampling

    startstringRequired

    Start date and time for telemetry data

    endstringRequired

    End date and time for telemetry data

    offsetstring · enumOptional

    Offset for within the interval for sampling values

    Possible values:
    limitnumberOptional

    Limit the number of telemetry data points returned. This will always be the most recent data points

    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    tsstringRequired
    valuebooleanRequired

    Average telemetry value for the interval

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/historian/v3/telemetry/boolean/{hid}/{sid}/{pid}/{ins}/{rid}

    Get telemetry data for multiple resources of an object

    post
    Path parameters
    hidstringRequired

    Object HID

    sidstringRequired

    Object SID

    pidstringRequired

    Object PID

    insstringRequired

    Object INS

    Query parameters
    intervalnumberRequired

    Interval in seconds for downsampling

    startstringRequired

    Start date and time for telemetry data

    endstringRequired

    End date and time for telemetry data

    includeMinstringOptional

    Include minimum value in the response

    includeMaxstringOptional

    Include maximum value in the response

    offsetstring · enumOptional

    Offset for within the interval for sampling values

    Possible values:
    limitnumberOptional

    Limit the number of telemetry data points returned. This will always be the most recent data points

    includeNamestringOptional

    Include resource name in the response

    Body
    ridsstring[]Required

    Array of RIDs to get telemetry data for

    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    tsstringRequired
    ridstringRequired

    Resource ID

    namestringOptional

    Resource Name

    valueany ofRequired

    Average telemetry value for the interval

    numberOptional
    or
    booleanOptional
    minnumberOptional

    Minimum telemetry value for the interval

    maxnumberOptional

    Maximum telemetry value for the interval

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/historian/v3/telemetry/object/{hid}/{sid}/{pid}/{ins}
    GET /api/historian/v3/profile/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        {
          "header": {
            "pid": "002F",
            "profileName": "text",
            "description": "text",
            "uiname": "text",
            "group": "text",
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "text"
              }
            }
          },
          "resources": [
            {
              "rid": "40",
              "name": "text",
              "type": "bool",
              "uiname": "text",
              "attribute": true,
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "text"
                }
              }
            }
          ]
        }
      ]
    }
    GET /api/historian/v3/profile/{hid}/pids HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        "0001",
        "01FF",
        "00A0"
      ]
    }
    GET /api/historian/v3/object/ HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        {
          "uri": "text",
          "hid": "text",
          "sid": "text",
          "pid": "text",
          "ins": "text",
          "name": "text",
          "description": "text",
          "location": "text",
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "text"
            }
          },
          "rids": [
            {
              "rid": "40",
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "text"
                }
              }
            }
          ]
        }
      ]
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        {
          "ts": "text",
          "value": 1,
          "min": 1,
          "max": 1
        }
      ]
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        {
          "ts": "text",
          "value": true
        }
      ]
    }
    POST /api/historian/v3/telemetry/object/{hid}/{sid}/{pid}/{ins}?interval=1&start=text&end=text HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 17
    
    {
      "rids": [
        "text"
      ]
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        {
          "ts": "text",
          "resources": [
            {
              "rid": "text",
              "name": "text",
              "value": 1,
              "min": 1,
              "max": 1
            }
          ]
        }
      ]
    }
    GET /api/historian/v3/telemetry/raw/{hid}/{sid}/{pid}/{ins}/{rid}?start=text&end=text HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "data": [
        {
          "ts": "text",
          "value": "text",
          "type": "text"
        }
      ]
    }
    GET /api/historian/v3/telemetry/boolean/{hid}/{sid}/{pid}/{ins}/{rid}?interval=1&start=text&end=text HTTP/1.1
    Accept: */*
    
    GET /api/historian/v3/telemetry/numeric/{hid}/{sid}/{pid}/{ins}/{rid}?interval=1&start=text&end=text HTTP/1.1
    Accept: */*
    

    Add a MobiusFlow service to a node

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Body
    sidstring · min: 3 · max: 3Required

    The SID of the service. If this SID is already used the next available one will be used

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    The servive profile ID of the service

    Example: 000APattern: \b[0-9A-F]{4}$\b
    namestringOptional

    The name of the service

    enabledbooleanOptional

    Is the service is enabled?

    runAtStartbooleanOptional

    Should the service should run at start?

    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/service/{hid}

    Clone a MobiusFlow service in a node

    post

    Clone a service one or more times. The new service SIDs will be sequential (skipping any existing service SIDs) from the start SID or 020 if not provided.

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Body
    copiesnumberRequired

    The number of copies to make

    startstring · min: 3 · max: 3Optional

    The SID of the first clone

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/service/clone/{hid}/{sid}

    Delete a MobiusFlow service from a node

    delete
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    idstring · min: 8 · max: 8Required
    namestringRequired
    enabledbooleanRequired
    runAtStartbooleanRequired
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    delete
    /api/engine/v3/service/{hid}/{sid}

    Start a MobiusFlow service

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/service/start/{hid}/{sid}

    Stop a MobiusFlow service

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/service/stop/{hid}/{sid}

    Hot reload a MobiusFlow service

    post

    Refresh all objects from a service configuration

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/service/reload/{hid}/{sid}

    Get a MobiusFlow service's configuration

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    namestringRequired

    Service name

    enabledbooleanRequired

    Is the service enabled?

    runAtStartbooleanRequired

    Should the service run at start?

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    localnumberRequired
    remotenumberRequired
    enabledbooleanRequired
    intervalnumber · min: 1Required
    levelstring · enumRequired

    Log level

    Possible values:
    levelstring · enumRequired

    Log level

    Possible values:
    Other propertiesanyOptional
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/service/config/{hid}/{sid}

    Update a MobiusFlow service's configuration

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Body
    namestringOptional

    The name of the service

    enabledbooleanOptional

    Is the service is enabled?

    runAtStartbooleanOptional

    Should the service should run at start?

    Other propertiesanyOptional
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    namestringRequired

    Service name

    enabledbooleanRequired

    Is the service enabled?

    runAtStartbooleanRequired

    Should the service run at start?

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    localnumberRequired
    remotenumberRequired
    enabledbooleanRequired
    intervalnumber · min: 1Required
    levelstring · enumRequired

    Log level

    Possible values:
    levelstring · enumRequired

    Log level

    Possible values:
    Other propertiesanyOptional
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/service/config/{hid}/{sid}

    Update a MobiusFlow service's SID

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Body

    The new SID

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    namestringRequired

    Service name

    enabledbooleanRequired

    Is the service enabled?

    runAtStartbooleanRequired

    Should the service run at start?

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    localnumberRequired
    remotenumberRequired
    enabledbooleanRequired
    intervalnumber · min: 1Required
    levelstring · enumRequired

    Log level

    Possible values:
    levelstring · enumRequired

    Log level

    Possible values:
    Other propertiesanyOptional
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/service/config/sid/{hid}/{sid}

    Replace all objects in a MobiusFlow service's configuration

    put
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Body
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    namestringRequired

    Service name

    enabledbooleanRequired

    Is the service enabled?

    runAtStartbooleanRequired

    Should the service run at start?

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    localnumberRequired
    remotenumberRequired
    enabledbooleanRequired
    intervalnumber · min: 1Required
    levelstring · enumRequired

    Log level

    Possible values:
    levelstring · enumRequired

    Log level

    Possible values:
    Other propertiesanyOptional
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    put
    /api/engine/v3/service/config/replace-all-objects/{hid}/{sid}

    Get the logging level of a MobiusFlow service

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    spokestring · enumRequired

    Log level

    Possible values:
    servicestring · enumRequired

    Log level

    Possible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/service/config/log-levels/{hid}/{sid}

    Set the logging level of a MobiusFlow service

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Body

    The new logging levels for the service and spoke

    spokestring · enumRequired

    Log level

    Possible values:
    servicestring · enumRequired

    Log level

    Possible values:
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/service/config/log-levels/{hid}/{sid}

    Get the persistence settings of a MobiusFlow service

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    enabledbooleanRequired

    Is persistence enabled for the service?

    intervalnumber · min: 1Required

    The persistence interval in seconds

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/service/config/persistence/{hid}/{sid}

    Set the persistence settings of a MobiusFlow service

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Body

    The new persistence settings for the service

    enabledbooleanRequired

    Is persistence enabled for the service?

    intervalnumber · min: 1Required

    The persistence interval in seconds

    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/service/config/persistence/{hid}/{sid}

    Persist all objects in a MobiusFlow service

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/service/persist-objects/{hid}/{sid}

    Get service profiles

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Query parameters
    spidstring · min: 4 · max: 4Optional

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    namestringRequired
    cwdstringRequired
    scriptstringRequired
    isConfigurablebooleanRequired
    isControllablebooleanRequired
    descriptionstringRequired
    iconstringOptional
    allowedObjectFamaliesstring[]Optional
    Other propertiesanyOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/profile/service/{hid}

    Get object profile templates

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Query parameters
    pidstring · min: 4 · max: 4Optional

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    languagestring · enumRequiredPossible values:
    funcstringRequired
    languagestring · enumRequiredPossible values:
    funcstringRequired
    uiLayoutstringOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/profile/object/template/{hid}

    Get object profiles

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    languagestring · enumRequiredPossible values:
    funcstringRequired
    languagestring · enumRequiredPossible values:
    funcstringRequired
    uiLayoutstringOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/profile/object/{hid}

    Create an object profile

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Body
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    languagestring · enumRequiredPossible values:
    funcstringRequired
    languagestring · enumRequiredPossible values:
    funcstringRequired
    uiLayoutstringOptional
    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/profile/object/{hid}

    Update an object profile

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Body
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    languagestring · enumRequiredPossible values:
    funcstringRequired
    languagestring · enumRequiredPossible values:
    funcstringRequired
    uiLayoutstringOptional
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    languagestring · enumRequiredPossible values:
    funcstringRequired
    languagestring · enumRequiredPossible values:
    funcstringRequired
    uiLayoutstringOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/profile/object/{hid}

    Get object profile

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    profileNamestring · min: 6RequiredPattern: ^[a-zA-Z0-9&/_-]*$
    descriptionstringOptional
    uinamestring · min: 4Required
    groupstringOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    namestringRequired
    typestring · enumRequiredPossible values:
    uinamestringRequired
    attributebooleanOptional

    If true this resource is considered an object attribute, otherwise it is considered as telemetry data

    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    languagestring · enumRequiredPossible values:
    funcstringRequired
    languagestring · enumRequiredPossible values:
    funcstringRequired
    uiLayoutstringOptional
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/profile/object/{hid}/{pid}

    Delete an object profile

    delete
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    delete
    /api/engine/v3/profile/object/{hid}/{pid}

    Get used object profiles

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    datastring[]Required
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/profile/object/used/{hid}

    Restart the MobiusFlow hub

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/node/restart/{hid}

    Get the MobiusFlow hub ID

    get
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    datastring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/node/config/hid

    Change the MobiusFlow hub ID

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Body
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/node/config/hid/{hid}

    Get the MobiusFlow hub broker statistics

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    lastUpdatedstringRequired
    upTimenumberRequired
    clientCountnumberRequired
    clientCountMaxnumberRequired
    messageCountnumberRequired
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/node/brokerstats/{hid}

    Perform a full backup of MobiusFlow data

    get
    Path parameters
    hidstringRequired
    Responses
    200

    Default Response

    No content

    get
    /api/engine/v3/node/backup/full/{hid}
    GET /api/engine/v3/node/backup/full/{hid} HTTP/1.1
    Accept: */*
    
    200

    Default Response

    No content

    Perform a full restore of MobiusFlow data

    post
    Path parameters
    hidstringRequired
    Responses
    200

    Default Response

    No content

    post
    /api/engine/v3/node/restore/full/{hid}
    POST /api/engine/v3/node/restore/full/{hid} HTTP/1.1
    Accept: */*
    
    200

    Default Response

    No content

    Restart one or more containers

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Bodystring[]
    string[]Optional
    Responses
    200

    Default Response

    application/json

    Success response

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/node/restartcontainers/{hid}

    Add a MobiusFlow object

    post

    The first available instance will be used

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    Body

    The object to add to the service

    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/object/{hid}/{sid}/{pid}

    Read a MobiusFlow object

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    profileNamestringRequired
    descriptionstringRequired
    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    isFromConfigbooleanOptional

    Is this object from the configuration or an object created live by the service?

    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/object/{hid}/{sid}/{pid}/{ins}

    Add a MobiusFlow object

    post

    If the instance is already in use an error will be returned

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Body

    The object to add to the service

    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/object/{hid}/{sid}/{pid}/{ins}

    Delete a MobiusFlow object

    delete
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    namestringRequired

    Service name

    enabledbooleanRequired

    Is the service enabled?

    runAtStartbooleanRequired

    Should the service run at start?

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    localnumberRequired
    remotenumberRequired
    enabledbooleanRequired
    intervalnumber · min: 1Required
    levelstring · enumRequired

    Log level

    Possible values:
    levelstring · enumRequired

    Log level

    Possible values:
    Other propertiesanyOptional
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    delete
    /api/engine/v3/object/{hid}/{sid}/{pid}/{ins}

    Clone a MobiusFlow object

    post

    Clone an object one or more times. The new object INSs will be sequential (skipping any existing object INSs) from the start INS or 0001 if not provided.

    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Body
    copiesnumberRequired

    The number of copies to make

    startstring · min: 4 · max: 4Optional

    The INS of the first clone

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/object/clone/{hid}/{sid}/{pid}/{ins}

    Update a MobiusFlow object's INS

    post
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Body

    The new INS

    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    namestringRequired

    Service name

    enabledbooleanRequired

    Is the service enabled?

    runAtStartbooleanRequired

    Should the service run at start?

    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    localnumberRequired
    remotenumberRequired
    enabledbooleanRequired
    intervalnumber · min: 1Required
    levelstring · enumRequired

    Log level

    Possible values:
    levelstring · enumRequired

    Log level

    Possible values:
    Other propertiesanyOptional
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/object/config/ins/{hid}/{sid}/{pid}/{ins}

    Get a MobiusFlow objects's configuration

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/object/config/{hid}/{sid}/{pid}/{ins}

    Update a MobiusFlow object's configuration

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Body

    The object to add to the service

    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    configIsDirtybooleanOptional
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/object/config/{hid}/{sid}/{pid}/{ins}

    Read a MobiusFlow object resource

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/object/resource/{hid}/{sid}/{pid}/{ins}/{rid}

    Write a value to a MobiusFlow object resource

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Body
    valueany ofRequired

    The value to write to the resource

    Example: 42
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    priorityinteger · min: 1 · max: 15Optional

    The priority to write to. Defaults to priority 15

    Example: 12
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/object/resource/{hid}/{sid}/{pid}/{ins}/{rid}

    Write values to multiple MobiusFlow object resources at once

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Body

    An array of objects containing the value and priority to write to each resource

    rstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    pinteger · min: 1 · max: 15Required

    A MobiusFlow resource priority

    vany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    profileNamestringRequired
    descriptionstringRequired
    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    isFromConfigbooleanOptional

    Is this object from the configuration or an object created live by the service?

    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/object/resource/{hid}/{sid}/{pid}/{ins}

    Clear the value of a MobiusFlow object resource priority

    patch
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Body
    priorityinteger · min: 1 · max: 15Required

    The priority to clear

    Example: 12
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    patch
    /api/engine/v3/object/resource/clear/{hid}/{sid}/{pid}/{ins}/{rid}

    Login to a MobiusFlow Engine API

    post
    Body
    usernamestringRequired
    passwordstringRequired
    Responses
    200

    Default Response

    No content

    401

    Default Response

    application/json
    messagestringRequired
    404

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    post
    /api/engine/v3/auth/login
    POST /api/engine/v3/auth/login HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 37
    
    {
      "username": "text",
      "password": "text"
    }

    No content

    Logout of a MobiusFlow Engine API session

    post
    Header parameters
    authorizationstringRequired
    Responses
    200

    Default Response

    application/json
    string · enum · nullableOptionalPossible values:
    500

    Default Response

    application/json
    errorstringRequired
    post
    /api/engine/v3/auth/logout
    POST /api/engine/v3/auth/logout HTTP/1.1
    authorization: text
    Accept: */*
    

    No content

    Validate a MobiusFlow Engine API session token

    post
    Body
    sessionTokenstringRequired
    Responses
    200

    Default Response

    No content

    401

    Default Response

    application/json
    messagestringRequired
    404

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    post
    /api/engine/v3/auth/validate-session
    POST /api/engine/v3/auth/validate-session HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 23
    
    {
      "sessionToken": "text"
    }

    No content

    Authorize an action against a MobiusFlow Engine API session token

    post
    Header parameters
    authorizationstringRequired
    Body
    actionstringRequired
    Responses
    200

    Default Response

    application/json
    authorizedbooleanRequired
    500

    Default Response

    application/json
    errorstringRequired
    post
    /api/engine/v3/auth/authorize-action
    POST /api/engine/v3/auth/authorize-action HTTP/1.1
    authorization: text
    Content-Type: application/json
    Accept: */*
    Content-Length: 17
    
    {
      "action": "text"
    }

    Discover MobiusFlow services on a hub

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    spidstring · min: 4 · max: 4Required

    Service Profile ID (SPID)

    Example: 000APattern: \b[0-9A-F]{4}$\b
    namestringRequired
    enabledbooleanRequired
    runAtStartbooleanRequired
    lastConnectedstringRequired
    lastDisconnectedstringRequired
    lastSeenstringRequired
    statusstring · enumRequiredPossible values:
    serviceStatusstring · enumRequiredPossible values:
    serviceStatusTextstringRequired
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/discover/{hid}

    Discover object profiles used by a MobiusFlow service

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    datastring[]Required

    An array of discovered profile IDs

    Example: ["002B","004A"]
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/discover/{hid}/{sid}

    Discover object instances for an object profile

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    datastring[]Required

    An array of discovered instance IDs

    Example: ["002B","004A"]
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/discover/{hid}/{sid}/{pid}

    Discover an object used by a MobiusFlow service

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    profileNamestringRequired
    descriptionstringRequired
    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    isFromConfigbooleanOptional

    Is this object from the configuration or an object created live by the service?

    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/discover/{hid}/{sid}/{pid}/{ins}

    Discover a resource belonging to an object used by a MobiusFlow service

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    ridstringRequired

    Resource ID (RID)

    Example: 40Pattern: \b(?:[0-9A-F]{4}|[0-9A-F]{2})\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/discover/{hid}/{sid}/{pid}/{ins}/{rid}

    Discover objects in a MobiusFlow service

    get
    Path parameters
    hidstring · min: 6 · max: 6Required

    Hub ID (HID)

    Example: 000001Pattern: \b^[0-9A-F]{6}$\b
    sidstring · min: 3 · max: 3Required

    Service ID (SID)

    Example: 020Pattern: \b[0-9A-F]{3}$\b
    Responses
    200

    Default Response

    application/json
    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    uristringRequired

    URI of the response

    pidstring · min: 4 · max: 4Required

    Object Profile ID (PID)

    Example: 002FPattern: \b[0-9A-F]{4}$\b
    insstring · min: 4 · max: 4Required

    Object Instance (INS)

    Example: 0001Pattern: \b[0-9A-F]{4}$\b
    profileNamestringRequired
    descriptionstringRequired
    ridstringRequired

    Resource ID

    Example: 40
    typestring · enumRequiredPossible values:
    pvany ofRequired

    A MobiusFlow resource value

    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    booleanOptional
    or
    numberOptional
    or
    stringOptional
    or
    string · enum · nullableOptionalPossible values:
    namestringRequired
    Other propertiesanyOptional
    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    isFromConfigbooleanOptional

    Is this object from the configuration or an object created live by the service?

    valuestringOptional
    fromany ofRequired
    string · enumOptionalPossible values:
    or
    string · enumOptionalPossible values:
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    get
    /api/engine/v3/discover/{hid}/{sid}/allobjects

    Get a list of MobiusFlow Engine API users

    get
    Responses
    200

    Default Response

    application/json
    idstringRequired
    usernamestringRequired
    emailstringOptional
    isActivebooleanRequired
    itemsstring · enumOptionalPossible values:
    400

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    get
    /api/engine/v3/user/
    GET /api/engine/v3/user/ HTTP/1.1
    Accept: */*
    
    [
      {
        "id": "text",
        "username": "text",
        "email": "text",
        "isActive": true,
        "roles": [
          "Administrator"
        ]
      }
    ]

    Add a new MobiusFlow Engine API user

    post
    Body
    usernamestringRequired
    passwordstringRequired
    itemsstring · enumOptionalPossible values:
    emailstring · emailOptionalPattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
    Responses
    201

    Default Response

    application/json
    400

    Default Response

    application/json
    messagestringRequired
    409

    Default Response

    application/json
    500

    Default Response

    application/json
    errorstringRequired
    post
    /api/engine/v3/user/

    Delete a MobiusFlow Engine API user

    delete
    Path parameters
    idstringRequired

    The id of the user to delete

    Responses
    200

    Default Response

    application/json
    messagestringRequired
    404

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    delete
    /api/engine/v3/user/{id}
    DELETE /api/engine/v3/user/{id} HTTP/1.1
    Accept: */*
    

    Update the password of a MobiusFlow Engine API user

    patch
    Path parameters
    idstringRequired

    The id of the user to update

    Body
    passwordstringRequired

    The new password of the user

    Responses
    200

    Default Response

    application/json
    messagestringRequired
    400

    Default Response

    application/json
    messagestringRequired
    403

    Default Response

    application/json
    404

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    patch
    /api/engine/v3/user/password/{id}

    Update the active status of a MobiusFlow Engine API user

    patch
    Path parameters
    idstringRequired

    The id of the user to update

    Body
    activebooleanRequired

    The new active status of the user

    Responses
    200

    Default Response

    application/json
    messagestringRequired
    400

    Default Response

    application/json
    messagestringRequired
    403

    Default Response

    application/json
    404

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    patch
    /api/engine/v3/user/active/{id}

    Update the role of a MobiusFlow Engine API user

    patch
    Path parameters
    idstringRequired

    The id of the user to update

    Body
    rolestring · enumRequired

    The new role of the user

    Possible values:
    Responses
    200

    Default Response

    application/json
    messagestringRequired
    400

    Default Response

    application/json
    messagestringRequired
    403

    Default Response

    application/json
    404

    Default Response

    application/json
    messagestringRequired
    500

    Default Response

    application/json
    errorstringRequired
    patch
    /api/engine/v3/user/role/{id}

    Send a BCMD command

    post
    Path parameters
    cidstring · enumRequired

    Command ID

    Example: ENOCEAN_RADIO_ERP1Possible values:
    Body
    anyOptional

    BCMD payload

    Responses
    200

    Default Response

    application/json

    BCMD sent successfully

    messagestringRequired

    Response message

    Example: BCMD sent
    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/command/bcmd/{cid}

    Send a DCMD command

    post
    Path parameters
    cidstringRequired

    Command ID

    Example: DCMD_GENERIC
    Body
    uristringRequired

    Target service URI

    Example: 000001/020
    commandDataanyRequired

    Command data to send

    Example: {"key":"value"}
    Responses
    200

    Default Response

    application/json
    anyOptional

    DCMD response

    400

    Default Response

    application/json

    Bad Request

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 400
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    401

    Default Response

    application/json

    Unauthorized

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 401
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    403

    Default Response

    application/json
    404

    Default Response

    application/json

    Not Found

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 404
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    408

    Default Response

    application/json

    Request Timeout

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 408
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    409

    Default Response

    application/json
    422

    Default Response

    application/json
    500

    Default Response

    application/json

    Internal Server Error

    tsstringRequired

    Timestamp of the response

    Example: 2025-01-01T00:00:00.000Z
    statusCodenumberRequired

    HTTP status code

    Example: 500
    errorCodestringRequired

    Error code

    messagestringRequired

    Error message

    detailanyOptional

    Error details (optional)

    post
    /api/engine/v3/command/dcmd/{cid}

    No content

    POST /api/engine/v3/service/{hid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 74
    
    {
      "sid": "020",
      "spid": "000A",
      "name": "text",
      "enabled": true,
      "runAtStart": true
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "id": "text",
          "name": "text",
          "enabled": true,
          "runAtStart": true
        }
      ]
    }
    POST /api/engine/v3/service/clone/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 26
    
    {
      "copies": 1,
      "start": "020"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "id": "text",
          "name": "text",
          "enabled": true,
          "runAtStart": true
        }
      ]
    }
    DELETE /api/engine/v3/service/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "id": "text",
          "name": "text",
          "enabled": true,
          "runAtStart": true
        }
      ]
    }
    POST /api/engine/v3/service/start/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    POST /api/engine/v3/service/stop/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    POST /api/engine/v3/service/reload/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    GET /api/engine/v3/service/config/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    PATCH /api/engine/v3/service/config/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 96
    
    {
      "name": "text",
      "enabled": true,
      "runAtStart": true,
      "custom": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    PATCH /api/engine/v3/service/config/sid/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 13
    
    {
      "sid": "020"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    PUT /api/engine/v3/service/config/replace-all-objects/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 272
    
    {
      "objects": [
        {
          "pid": "002F",
          "ins": "0001",
          "configIsDirty": true,
          "rids": [
            {
              "rid": "40",
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ],
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ]
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    GET /api/engine/v3/service/config/log-levels/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "spoke": "trace",
        "service": "trace"
      }
    }
    PATCH /api/engine/v3/service/config/log-levels/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 35
    
    {
      "spoke": "trace",
      "service": "trace"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    GET /api/engine/v3/service/config/persistence/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "enabled": true,
        "interval": 1
      }
    }
    PATCH /api/engine/v3/service/config/persistence/{hid}/{sid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 29
    
    {
      "enabled": true,
      "interval": 1
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    POST /api/engine/v3/service/persist-objects/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    GET /api/engine/v3/profile/service/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "spid": "000A",
          "name": "text",
          "cwd": "text",
          "script": "text",
          "isConfigurable": true,
          "isControllable": true,
          "description": "text",
          "icon": "text",
          "allowedObjectFamalies": [
            "text"
          ],
          "uiLayout": {
            "fields": [
              {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              }
            ]
          }
        }
      ]
    }
    GET /api/engine/v3/profile/object/template/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "header": {
            "pid": "002F",
            "profileName": "text",
            "description": "text",
            "uiname": "text",
            "group": "text",
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          },
          "resources": [
            {
              "rid": "40",
              "name": "text",
              "type": "bool",
              "uiname": "text",
              "attribute": true,
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ],
          "preprocessor": {
            "language": "ts",
            "func": "text"
          },
          "codec": {
            "language": "ts",
            "func": "text"
          },
          "uiLayout": "text"
        }
      ]
    }
    GET /api/engine/v3/profile/object/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "header": {
            "pid": "002F",
            "profileName": "text",
            "description": "text",
            "uiname": "text",
            "group": "text",
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          },
          "resources": [
            {
              "rid": "40",
              "name": "text",
              "type": "bool",
              "uiname": "text",
              "attribute": true,
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ],
          "preprocessor": {
            "language": "ts",
            "func": "text"
          },
          "codec": {
            "language": "ts",
            "func": "text"
          },
          "uiLayout": "text"
        }
      ]
    }
    POST /api/engine/v3/profile/object/{hid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 479
    
    {
      "header": {
        "pid": "002F",
        "profileName": "text",
        "description": "text",
        "uiname": "text",
        "group": "text",
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      },
      "resources": [
        {
          "rid": "40",
          "name": "text",
          "type": "bool",
          "uiname": "text",
          "attribute": true,
          "settings": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ],
      "preprocessor": {
        "language": "ts",
        "func": "text"
      },
      "codec": {
        "language": "ts",
        "func": "text"
      },
      "uiLayout": "text"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "header": {
          "pid": "002F",
          "profileName": "text",
          "description": "text",
          "uiname": "text",
          "group": "text",
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        },
        "resources": [
          {
            "rid": "40",
            "name": "text",
            "type": "bool",
            "uiname": "text",
            "attribute": true,
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "preprocessor": {
          "language": "ts",
          "func": "text"
        },
        "codec": {
          "language": "ts",
          "func": "text"
        },
        "uiLayout": "text"
      }
    }
    PATCH /api/engine/v3/profile/object/{hid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 479
    
    {
      "header": {
        "pid": "002F",
        "profileName": "text",
        "description": "text",
        "uiname": "text",
        "group": "text",
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      },
      "resources": [
        {
          "rid": "40",
          "name": "text",
          "type": "bool",
          "uiname": "text",
          "attribute": true,
          "settings": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ],
      "preprocessor": {
        "language": "ts",
        "func": "text"
      },
      "codec": {
        "language": "ts",
        "func": "text"
      },
      "uiLayout": "text"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "header": {
          "pid": "002F",
          "profileName": "text",
          "description": "text",
          "uiname": "text",
          "group": "text",
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        },
        "resources": [
          {
            "rid": "40",
            "name": "text",
            "type": "bool",
            "uiname": "text",
            "attribute": true,
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "preprocessor": {
          "language": "ts",
          "func": "text"
        },
        "codec": {
          "language": "ts",
          "func": "text"
        },
        "uiLayout": "text"
      }
    }
    GET /api/engine/v3/profile/object/{hid}/{pid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "header": {
          "pid": "002F",
          "profileName": "text",
          "description": "text",
          "uiname": "text",
          "group": "text",
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        },
        "resources": [
          {
            "rid": "40",
            "name": "text",
            "type": "bool",
            "uiname": "text",
            "attribute": true,
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "preprocessor": {
          "language": "ts",
          "func": "text"
        },
        "codec": {
          "language": "ts",
          "func": "text"
        },
        "uiLayout": "text"
      }
    }
    DELETE /api/engine/v3/profile/object/{hid}/{pid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    GET /api/engine/v3/profile/object/used/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        "text"
      ]
    }
    POST /api/engine/v3/node/restart/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    GET /api/engine/v3/node/config/hid HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": "000001"
    }
    POST /api/engine/v3/node/config/hid/{hid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 16
    
    {
      "hid": "000001"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    GET /api/engine/v3/node/brokerstats/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "lastUpdated": "text",
        "upTime": 1,
        "clientCount": 1,
        "clientCountMax": 1,
        "messageCount": 1
      }
    }
    POST /api/engine/v3/node/restartcontainers/{hid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 8
    
    [
      "text"
    ]
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text"
    }
    {
      "authorized": true
    }
    GET /api/engine/v3/discover/{hid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "hid": "000001",
          "sid": "020",
          "spid": "F021",
          "name": "Floor 1 Sensors",
          "enabled": true,
          "runAtStart": true,
          "lastConnected": "2025-03-13T09:09:01.631Z",
          "lastDisconnected": "1970-01-01T00:00:00.000Z",
          "lastSeen": "2025-03-13T09:09:06.707Z",
          "status": "running",
          "serviceStatus": "OK",
          "serviceStatusText": "Service is running"
        }
      ]
    }
    GET /api/engine/v3/discover/{hid}/{sid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        "002B",
        "004A"
      ]
    }
    GET /api/engine/v3/discover/{hid}/{sid}/{pid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        "002B",
        "004A"
      ]
    }
    GET /api/engine/v3/discover/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "pid": "002F",
          "ins": "0001",
          "profileName": "text",
          "description": "text",
          "resources": [
            {
              "rid": "40",
              "type": "bool",
              "pv": true,
              "prar": [
                true
              ],
              "name": "text",
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ],
          "isFromConfig": true,
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ]
    }
    GET /api/engine/v3/discover/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "rid": "40",
          "type": "bool",
          "pv": true,
          "prar": [
            true
          ],
          "name": "text",
          "settings": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ]
    }
    GET /api/engine/v3/discover/{hid}/{sid}/allobjects HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": [
        {
          "pid": "002F",
          "ins": "0001",
          "profileName": "text",
          "description": "text",
          "resources": [
            {
              "rid": "40",
              "type": "bool",
              "pv": true,
              "prar": [
                true
              ],
              "name": "text",
              "settings": {
                "ANY_ADDITIONAL_PROPERTY": "anything"
              },
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ],
          "isFromConfig": true,
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ]
    }
    POST /api/engine/v3/user/ HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 88
    
    {
      "username": "text",
      "password": "text",
      "roles": [
        "Administrator"
      ],
      "email": "[email protected]"
    }
    {
      "id": "text",
      "username": "text",
      "email": "text",
      "isActive": true,
      "roles": [
        "Administrator"
      ]
    }
    {
      "message": "text"
    }
    PATCH /api/engine/v3/user/password/{id} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 19
    
    {
      "password": "text"
    }
    {
      "message": "text"
    }
    PATCH /api/engine/v3/user/active/{id} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    {
      "active": true
    }
    {
      "message": "text"
    }
    PATCH /api/engine/v3/user/role/{id} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 24
    
    {
      "role": "Administrator"
    }
    {
      "message": "text"
    }
    POST /api/engine/v3/command/bcmd/{cid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    
    {
      "message": "BCMD sent"
    }
    POST /api/engine/v3/command/dcmd/{cid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 50
    
    {
      "uri": "000001/020",
      "commandData": {
        "key": "value"
      }
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "pid": "002F",
        "ins": "0001",
        "configIsDirty": true,
        "rids": [
          {
            "rid": "40",
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    POST /api/engine/v3/object/{hid}/{sid}/{pid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 232
    
    {
      "configIsDirty": true,
      "rids": [
        {
          "rid": "40",
          "settings": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ],
      "tags": {
        "ANY_ADDITIONAL_PROPERTY": {
          "value": "text",
          "from": "profile"
        }
      }
    }
    GET /api/engine/v3/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "pid": "002F",
        "ins": "0001",
        "profileName": "text",
        "description": "text",
        "resources": [
          {
            "rid": "40",
            "type": "bool",
            "pv": true,
            "prar": [
              true
            ],
            "name": "text",
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "isFromConfig": true,
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    POST /api/engine/v3/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 232
    
    {
      "configIsDirty": true,
      "rids": [
        {
          "rid": "40",
          "settings": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ],
      "tags": {
        "ANY_ADDITIONAL_PROPERTY": {
          "value": "text",
          "from": "profile"
        }
      }
    }
    DELETE /api/engine/v3/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    POST /api/engine/v3/object/clone/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 27
    
    {
      "copies": 1,
      "start": "0001"
    }
    POST /api/engine/v3/object/config/ins/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 14
    
    {
      "ins": "0001"
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }
    GET /api/engine/v3/object/config/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "pid": "002F",
        "ins": "0001",
        "configIsDirty": true,
        "rids": [
          {
            "rid": "40",
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    PATCH /api/engine/v3/object/config/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 232
    
    {
      "configIsDirty": true,
      "rids": [
        {
          "rid": "40",
          "settings": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "tags": {
            "ANY_ADDITIONAL_PROPERTY": {
              "value": "text",
              "from": "profile"
            }
          }
        }
      ],
      "tags": {
        "ANY_ADDITIONAL_PROPERTY": {
          "value": "text",
          "from": "profile"
        }
      }
    }
    GET /api/engine/v3/object/resource/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Accept: */*
    
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "rid": "40",
        "type": "bool",
        "pv": true,
        "prar": [
          true
        ],
        "name": "text",
        "settings": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        },
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    PATCH /api/engine/v3/object/resource/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 26
    
    {
      "value": 42,
      "priority": 12
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "rid": "40",
        "type": "bool",
        "pv": true,
        "prar": [
          true
        ],
        "name": "text",
        "settings": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        },
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    PATCH /api/engine/v3/object/resource/{hid}/{sid}/{pid}/{ins} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 63
    
    {
      "updates": [
        {
          "r": "40",
          "p": 15,
          "v": 42
        },
        {
          "r": "41",
          "p": 15,
          "v": 43
        }
      ]
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "pid": "002F",
        "ins": "0001",
        "profileName": "text",
        "description": "text",
        "resources": [
          {
            "rid": "40",
            "type": "bool",
            "pv": true,
            "prar": [
              true
            ],
            "name": "text",
            "settings": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "tags": {
              "ANY_ADDITIONAL_PROPERTY": {
                "value": "text",
                "from": "profile"
              }
            }
          }
        ],
        "isFromConfig": true,
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    PATCH /api/engine/v3/object/resource/clear/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    {
      "priority": 12
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "rid": "40",
        "type": "bool",
        "pv": true,
        "prar": [
          true
        ],
        "name": "text",
        "settings": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        },
        "tags": {
          "ANY_ADDITIONAL_PROPERTY": {
            "value": "text",
            "from": "profile"
          }
        }
      }
    }
    {
      "ts": "2025-01-01T00:00:00.000Z",
      "uri": "text",
      "data": {
        "name": "text",
        "enabled": true,
        "runAtStart": true,
        "config": {
          "sid": "020",
          "spid": "000A",
          "settings": {
            "timeouts": {
              "local": 1,
              "remote": 1
            },
            "persistence": {
              "enabled": true,
              "interval": 1
            },
            "logging": {
              "spoke": {
                "level": "trace"
              },
              "service": {
                "level": "trace"
              }
            }
          },
          "custom": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "objects": [
            {
              "pid": "002F",
              "ins": "0001",
              "configIsDirty": true,
              "rids": [
                {
                  "rid": "40",
                  "settings": {
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  },
                  "tags": {
                    "ANY_ADDITIONAL_PROPERTY": {
                      "value": "text",
                      "from": "profile"
                    }
                  }
                }
              ],
              "tags": {
                "ANY_ADDITIONAL_PROPERTY": {
                  "value": "text",
                  "from": "profile"
                }
              }
            }
          ]
        }
      }
    }