All pages
Powered by GitBook
1 of 11

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

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 subscription controller). In this use case, the API will upgrade the client to use the Websocket protocol (ws / wss).

Controllers

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

Protocols, Endpoints and Ports

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

Further Documentation & Postman Collection

Swagger documentation describing the API in full, can be found . 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.

Authorization
Discover
Node
Service
Object
Profiles
Command
Flows
Subscription
here
39KB
Mobius Engine API.postman_collection.json
Open

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

Backup

Subscription

API Subscription Websocket

Full functionality of Subscription Websocket is described in the connect call below.

Discover

API Discover calls

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

Service

API Service Calls

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

Object

API Object & Resource Calls

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

Licence

API Calls for Licence Management

Command

API Send Command Calls

Flows

API Calls for Node-RED Flows

Used get and set the full configuration the flows.

Profiles

API Calls for Service Profiles, Object Profiles and Command Profiles

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.

Get node configuration

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/node/config/{hid}

Get node configuration tree

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/node/configtree/{hid}

Reset node pre-shared keys

post
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/node/resetpsks/{hid}

Get node health check

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/node/healthcheck/{hid}

Get status of all services on a node

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/node/servicestatus/{hid}
get
Responses
200

Default Response

No content

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

Default Response

No content

Route used to connect to subscription websocket

get

Upon making this request, the server will upgrade to websocket connection. The websocket can then be used to manage subscriptions to MobiusFlow object COVs (change of values), resource COVs, service status changes and broadcast commands. Once the connection is initally established, the websocket server sends back a connected message, featuring the topic 'connected' as shown below. Once the upgrade is complete, all subsequent subcription communications are performed via websocket messages.

Following the inital http connect call, the now upgraded websocket connection expects a follow up authorization websocket message within 10 seconds. The authorization websocket message must feature the topic 'authorize' and a payload containing the API bearer token. An example message is shown below:

On successful authorization, the websocket server will send back a confirmation message, containing the topic 'authorized' as shown below.

If no authorization message is received by the websockeet server within 10 seconds, the connection is dropped by the server.

Each subscription or unsubscription message must contain topic 'subscribe' or 'unsubscibe' respectively. Additonally, each message must feature a payload containing both the subscription type and subscription URI. Valid subscription types are denoted in the following table:

Note, the URI field may contain MQTT style wildcards where appropriate.

An example subscibe message is shown below:

Following a successful subscription or unsubscripton message, the websocket server will echo the message back to the client, confirming the action has been made.

Each event response will feature a timestamp, topic and payload. The topic will be one of the valid event types as denoted in the above table. The payload will contain uri and value fields, the form of the latter varrying based on the type and nature of the event. An example response is shown below:

The values for each event type are as follows:

Responses
101

Switching Protocols

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/subscribe/connect

Discover MobiusFlow services on a given hub

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/discover/{hid}

Discover MobiusFlow objects profiles on a given service

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/discover/{hid}/{sid}

Discover MobiusFlow objects of a given type

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/discover/{hid}/{sid}/{pid}

Discover a MobiusFlow object

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/discover/{hid}/{sid}/{pid}/{ins}

Discover a MobiusFlow resource

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
400

Bad Request

application/json
401

Unauthorized

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/discover/{hid}/{sid}/{pid}/{ins}/{rid}

Get service configuration

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/service/config/{hid}/{sid}

Start service

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/service/start/{hid}/{sid}

Stop service

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/service/stop/{hid}/{sid}

Reload service

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/service/reload/{hid}/{sid}

Add service

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

Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/service/{hid}

Clone service

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}$
Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/service/clone/{hid}/{sid}

Update service ID of a service

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
patch
/api/v1/mobius/service/config/sid/{hid}/{sid}

Update service configuration

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

Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
patch
/api/v1/mobius/service/config/{hid}/{sid}

Replace all objects within a service

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[]

Array of configured objects on service

pidstringOptional

Object PID

Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
put
/api/v1/mobius/service/config/replaceAllObjects/{hid}/{sid}

Delete service

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
delete
/api/v1/mobius/service/{hid}/{sid}

Get live object

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/object/{hid}/{sid}/{pid}/{ins}

Get live resource

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}/{rid}

Get object configuration

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins}

Add object

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
Responses
201

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/object/{hid}/{sid}/{pid}

Add object with specified instance ID

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[]

Array of resources

ridstringOptional
Responses
201

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/object/{hid}/{sid}/{pid}/{ins}

Clone object

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

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/object/clone/{hid}/{sid}/{pid}/{ins}

Patch live resource

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

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
patch
/api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}/{rid}

Patch multiple live resources

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[]

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
patch
/api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins}

Clear live resource

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

Resource information

prioritynumberRequired

Priority of the resource value

Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
patch
/api/v1/mobius/object/resource/clear/{hid}/{sid}/{pid}/{ins}/{rid}

Update object in service

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

Object information

insstringRequired

Replacement object instance ID

Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
patch
/api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins}

Delete object

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
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
delete
/api/v1/mobius/object/{hid}/{sid}/{pid}/{ins}

Get licence

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
500

Internal Server Error

application/json
get
/api/v2/mobius/licence/{hid}

Update licence code

put
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Licence code data

licenceCodestringRequired

Licence code

Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
500

Internal Server Error

application/json
put
/api/v2/mobius/licence/{hid}

Send broadcast command

post
Path parameters
cidstringRequired

MobiusFlow Command ID

Example: {"value":"ENOCEAN_RADIO_ERP1"}
Body
objectOptional

Payload of command

Example: {"rorg":"F6","db_0":100,"db_1":80,"db_2":60,"db_3":40,"uid":"12345678","status":23,"subTelNum":1,"dBm":-5}
Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
post
/api/v1/mobius/command/{cid}

Get flows configuration

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/flow/{hid}

Set flows configuration

put
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Array of flow configurations

Other propertiesanyOptional
Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
put
/api/v1/mobius/flow/{hid}

Get service profiles

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/service/{hid}

Get service profile

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

MobiusFlow Service Profile ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/service/{hid}/{spid}

Get object profile families

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/object/families/{hid}

Get object profiles

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/object/{hid}

Get object profile by profile ID

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

MobiusFlow Object Profile ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/object/{hid}/{pid}

Get object profile by profile name

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

MobiusFlow Object Profile Name

Example: {"value":"iqrf_05383_AirQuality"}
Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/object/by-name/{hid}/{profileName}

Get command profiles

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/command/{hid}

Get command profile

get
Path parameters
hidstringRequired

MobiusFlow Hub ID

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

MobiusFlow Command ID

Example: {"value":"ENOCEAN_RADIO_ERP1"}Pattern: ^[0-9A-Za-z_]*$
Responses
200

Ok response

application/json
400

Bad Request

application/json
401

Unauthorized

application/json
404

Not Found

application/json
408

Request Timeout

application/json
500

Internal Server Error

application/json
get
/api/v1/mobius/profile/command/{hid}/{command}

Login to engine API

post
Body

Engine API Login credentials

usernamestringRequired

Username

passwordstringRequired

Password

Responses
200

Ok response

application/json
401

Unauthorized

application/json
500

Internal Server Error

application/json
post
/api/v1/auth/login

Refresh API tokens

post
Body

Refresh token data

refreshTokenstringRequired

Refresh token

Responses
200

Ok response

application/json
401

Unauthorized

application/json
500

Internal Server Error

application/json
post
/api/v1/auth/refresh

Add a new user

post
Body

New user data

usernamestringRequired

Username

passwordstring · min: 8Required

Password

Responses
200

Ok response

application/json
401

Unauthorized

application/json
500

Internal Server Error

application/json
post
/api/v1/auth/user

Get user ID

get
Path parameters
usernamestringRequired

Username

Responses
200

Ok response

application/json
401

Unauthorized

application/json
404

Not Found

application/json
500

Internal Server Error

application/json
get
/api/v1/auth/user/{username}

Get all users

get
Responses
200

Ok response

application/json
Responsestring[]

Ok response

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

Unauthorized

application/json
500

Internal Server Error

application/json
get
/api/v1/auth/users

Get user roles

get
Path parameters
_idstringRequired

User ID

Responses
200

Role profile

application/json
401

Unauthorized

application/json
404

Not Found

application/json
500

Internal Server Error

application/json
get
/api/v1/auth/user/roles/{_id}

Set user roles

patch
Path parameters
_idstringRequired

User ID

Body

New roles information

Responses
200

Ok response

application/json
401

Unauthorized

application/json
404

Not Found

application/json
500

Internal Server Error

application/json
patch
/api/v1/auth/user/roles/{_id}

Set user password

patch
Path parameters
_idstringRequired

User ID

Body

New password information

passwordstring · min: 8Required

New password

Responses
200

Ok response

application/json
401

Unauthorized

application/json
404

Not Found

application/json
500

Internal Server Error

application/json
patch
/api/v1/auth/user/password/{_id}

Delete a user

delete
Path parameters
_idstringRequired
Responses
200

Default Response

application/json
401

Unauthorized

application/json
404

Not Found

application/json
500

Internal Server Error

application/json
delete
/api/v1/auth/user/{_id}
GET /api/v1/mobius/node/backup HTTP/1.1
Host: 
Accept: */*

Ok response

GET /api/v1/mobius/node/config/{hid} HTTP/1.1
Host: 
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
Host: 
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
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "result": "OK"
  }
}
GET /api/v1/mobius/node/healthcheck/{hid} HTTP/1.1
Host: 
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
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": null
}
GET /api/v1/mobius/discover/{hid} HTTP/1.1
Host: 
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
Host: 
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
Host: 
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
Host: 
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
Host: 
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/service/config/{hid}/{sid} HTTP/1.1
Host: 
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
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "result": "OK"
  }
}
POST /api/v1/mobius/service/stop/{hid}/{sid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "result": "OK"
  }
}
POST /api/v1/mobius/service/reload/{hid}/{sid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001/020",
  "data": {
    "result": "OK"
  }
}
POST /api/v1/mobius/service/{hid} HTTP/1.1
Host: 
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
Host: 
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
Host: 
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
Host: 
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
Host: 
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
Host: 
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/v2/mobius/licence/{hid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "licenceCode": "text",
    "size": 1,
    "used": 1,
    "isActive": true,
    "isValid": true,
    "type": "text",
    "objectCount": 1,
    "isObjectBased": true,
    "pointsPerObject": 1,
    "useCustomPointsMap": true
  }
}
PUT /api/v2/mobius/licence/{hid} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 153

{
  "licenceCode": "c2480687816cf833-20e44db08a00df1c-62fff13ac04f16e4-9066e16d9b185417-9ef8fce8c3115e69-bd5f6186a806e4dd-256e3a2b53ee1b1d-9fd943dbd60a58b2"
}
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "licenceCode": "c2480687816cf833-20e44db08a00df1c-62fff13ac04f16e4-9066e16d9b185417-9ef8fce8c3115e69-bd5f6186a806e4dd-256e3a2b53ee1b1d-9fd943dbd60a58b2"
  }
}
POST /api/v1/mobius/command/{cid} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 106

{
  "rorg": "F6",
  "db_0": 100,
  "db_1": 80,
  "db_2": 60,
  "db_3": 40,
  "uid": "12345678",
  "status": 23,
  "subTelNum": 1,
  "dBm": -5
}
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "ENOCEAN_RADIO_ERP1",
  "data": {
    "result": "OK"
  }
}
GET /api/v1/mobius/flow/{hid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": [
    {
      "id": "3423ebadc41ce452",
      "type": "tab",
      "label": "Flow 1",
      "disabled": false,
      "info": "",
      "env": []
    },
    {
      "id": "dd17eb69b4c36475",
      "type": "mobius connection",
      "host": "localhost",
      "port": "1890",
      "psk": "node-red"
    },
    {
      "id": "64328273c1ade1ed",
      "type": "mobius resource cov",
      "z": "3423ebadc41ce452",
      "name": "",
      "detailedOutput": false,
      "resource": "000001/020/000D/0001/40",
      "connection": "dd17eb69b4c36475",
      "x": 330,
      "y": 100,
      "wires": [
        [
          "19d9af2e1a4761ac"
        ],
        []
      ]
    },
    {
      "id": "19d9af2e1a4761ac",
      "type": "debug",
      "z": "3423ebadc41ce452",
      "name": "debug 1",
      "active": true,
      "tosidebar": true,
      "console": false,
      "tostatus": false,
      "complete": "false",
      "statusVal": "",
      "statusType": "auto",
      "x": 620,
      "y": 100,
      "wires": []
    }
  ]
}
PUT /api/v1/mobius/flow/{hid} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 611

[
  {
    "id": "6aa8ab4d100707b8",
    "type": "tab",
    "label": "Pigs will fly",
    "disabled": false,
    "info": "",
    "env": []
  },
  {
    "id": "f3e2539aafeaa03c",
    "type": "azureiotdevice",
    "z": "6aa8ab4d100707b8",
    "deviceid": "A00001_021_012D_0001",
    "pnpModelid": "",
    "connectiontype": "dps",
    "authenticationmethod": "sas",
    "iothub": "",
    "isIotcentral": true,
    "scopeid": "0ne004C4815",
    "enrollmenttype": "device",
    "saskey": "UhjPQxY299AdQ3/TVL2kHFIi36a/cpWTUT/0BJvZjAg=",
    "certname": "",
    "keyname": "",
    "passphrase": "",
    "protocol": "mqtt",
    "retryInterval": 10,
    "methods": [],
    "DPSpayload": "",
    "gatewayHostname": "",
    "caname": "",
    "cert": "",
    "key": "",
    "ca": "",
    "x": 920,
    "y": 120,
    "wires": [
      []
    ]
  }
]
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": "OK"
}
GET /api/v1/mobius/profile/service/{hid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": [
    {
      "spid": "0001",
      "defaultID": "001",
      "name": "mobius router",
      "description": "POPULATE",
      "isConfigurable": true,
      "icon": "default",
      "allowedObjectFamilies": []
    },
    {
      "spid": "FE02",
      "defaultID": "E00",
      "name": "iqrf connector",
      "description": "POPULATE",
      "isConfigurable": false,
      "icon": "default",
      "allowedObjectFamilies": []
    },
    {
      "spid": "FE03",
      "defaultID": "E00",
      "name": "room display",
      "description": "POPULATE",
      "isConfigurable": false,
      "icon": "default",
      "allowedObjectFamilies": []
    }
  ]
}
GET /api/v1/mobius/profile/service/{hid}/{spid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "spid": "000E",
    "defaultID": "00E",
    "name": "node-red connector",
    "description": "This service creates a connection between the MobiusFlow Services, Objects, and Resources and the logic Flows. The host address and port, and the pre-shared key must be entered into both the service settings and the Flow.",
    "isConfigurable": true,
    "icon": "default",
    "allowedObjectFamilies": []
  }
}
GET /api/v1/mobius/profile/object/families/{hid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "GeneralIO": {
      "type": "InputOutput",
      "description": "General analog and digital IO"
    },
    "DigitalInput": {
      "type": "Input",
      "description": "Digital input"
    },
    "DigitalOutput": {
      "type": "Output",
      "description": "Digital output"
    }
  }
}
GET /api/v1/mobius/profile/object/{hid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "serviceStatus": {
      "header": {
        "pid": "1",
        "profileName": "serviceStatus",
        "isConfigurable": false,
        "instances": "single",
        "uiname": "Mobius Service Status"
      },
      "resources": {
        "parentObject": {
          "rid": "0",
          "access": "rw",
          "type": "string",
          "uiname": "Parent",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "status": {
          "rid": "1",
          "access": "r",
          "type": "enum",
          "uiname": "Status",
          "settings": {
            "enum": {
              "Unknown": -1,
              "Fault": 0,
              "OK": 1
            }
          }
        },
        "statusText": {
          "rid": "2",
          "access": "r",
          "type": "string",
          "uiname": "Status Text",
          "settings": {
            "pv": "Unknown"
          }
        },
        "lastChanged": {
          "rid": "3",
          "access": "r",
          "type": "datetime",
          "uiname": "Last Changed",
          "settings": {
            "pv": "NOW"
          }
        }
      }
    },
    "licenceStatus": {
      "header": {
        "pid": "2",
        "profileName": "licenceStatus",
        "isConfigurable": false,
        "instances": "single",
        "uiname": "Mobius Licence Status"
      },
      "resources": {
        "licenceCode": {
          "rid": "0",
          "access": "rw",
          "type": "string",
          "uiname": "LicenceCode",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "status": {
          "rid": "1",
          "access": "r",
          "type": "enum",
          "uiname": "Status",
          "settings": {
            "pv": -1,
            "enum": {
              "Unknown": -1,
              "Valid": 0,
              "Wrong Licence Type": 1,
              "Hub Not Registered": 2,
              "Licence Not Active": 4,
              "Licence Not Yet Valid": 8,
              "Licence Expired": 16,
              "Licence Size Exceeded": 32,
              "Error": 128
            }
          }
        },
        "expiryDate": {
          "rid": "2",
          "access": "r",
          "type": "string",
          "uiname": "Expiry Date",
          "settings": {
            "pv": ""
          }
        },
        "licenceSize": {
          "rid": "3",
          "access": "r",
          "type": "number",
          "uiname": "Licence Size"
        },
        "objectCount": {
          "rid": "4",
          "access": "r",
          "type": "number",
          "uiname": "Object Count"
        },
        "server": {
          "rid": "5",
          "access": "r",
          "type": "string",
          "uiname": "Server"
        },
        "lastVerified": {
          "rid": "6",
          "access": "r",
          "type": "string",
          "uiname": "Last Verified"
        },
        "slowCheckInterval": {
          "rid": "7",
          "access": "r",
          "type": "number",
          "uiname": "Slow Check Interval"
        },
        "fastCheckInterval": {
          "rid": "8",
          "access": "r",
          "type": "number",
          "uiname": "Fast Check Interval"
        }
      }
    },
    "mobiusFlowConnector": {
      "header": {
        "pid": "65472",
        "profileName": "mobiusFlowConnector",
        "instances": "multiple",
        "uiname": "MobiusFlow Connector"
      },
      "resources": {
        "parentObject": {
          "rid": "0",
          "access": "rw",
          "type": "string",
          "uiname": "Parent",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "name": {
          "rid": "1",
          "access": "r",
          "type": "string",
          "uiname": "Name",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "objectLastUpdated": {
          "rid": "2",
          "access": "r",
          "type": "datetime",
          "uiname": "Object Last Updated"
        },
        "description": {
          "rid": "3",
          "access": "r",
          "type": "string",
          "uiname": "Description",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "location": {
          "rid": "4",
          "access": "r",
          "type": "string",
          "uiname": "Location",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "partNumber": {
          "rid": "10",
          "access": "r",
          "type": "string",
          "uiname": "Part Number",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "serialNumber": {
          "rid": "11",
          "access": "r",
          "type": "string",
          "uiname": "Serial Number",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "psk": {
          "rid": "12",
          "access": "r",
          "type": "string",
          "uiname": "Pre-shared Key",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "firmwareVersion": {
          "rid": "13",
          "access": "r",
          "type": "string",
          "uiname": "Firmware Version",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "module1Type": {
          "rid": "14",
          "access": "r",
          "type": "string",
          "uiname": "Module 1 Type",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "module2Type": {
          "rid": "15",
          "access": "r",
          "type": "string",
          "uiname": "Module 2 Type",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "enOceanChipID": {
          "rid": "16",
          "access": "r",
          "type": "string",
          "uiname": "EnOcean Chip ID",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "macAddress": {
          "rid": "17",
          "access": "r",
          "type": "string",
          "uiname": "MAC Address",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "ipAddress": {
          "rid": "18",
          "access": "r",
          "type": "string",
          "uiname": "IP Address"
        },
        "subnetMask": {
          "rid": "19",
          "access": "r",
          "type": "string",
          "uiname": "Subnet Mask"
        },
        "dnsAddress": {
          "rid": "20",
          "access": "r",
          "type": "string",
          "uiname": "DNS Address"
        },
        "defaultGateway": {
          "rid": "21",
          "access": "r",
          "type": "string",
          "uiname": "Default Gateway"
        },
        "ssid": {
          "rid": "22",
          "access": "r",
          "type": "string",
          "uiname": "SSID"
        },
        "rssi": {
          "rid": "23",
          "access": "r",
          "type": "number",
          "uiname": "RSSI"
        },
        "bssid": {
          "rid": "24",
          "access": "r",
          "type": "string",
          "uiname": "BSSID"
        },
        "online": {
          "rid": "64",
          "access": "r",
          "type": "bool",
          "uiname": "Online"
        },
        "uptime": {
          "rid": "65",
          "access": "r",
          "type": "string",
          "uiname": "Uptime (days:hours:minutes)"
        },
        "lastEnOceanUID": {
          "rid": "66",
          "access": "r",
          "type": "string",
          "uiname": "Last EnOcean UID"
        },
        "lastWorkOccUID": {
          "rid": "67",
          "access": "r",
          "type": "string",
          "uiname": "Last WorkOcc UID"
        }
      }
    },
    "arubaEnOceanAP": {
      "header": {
        "pid": "65473",
        "profileName": "arubaEnOceanAP",
        "instances": "multiple",
        "uiname": "Aruba Access Point"
      },
      "resources": {
        "parentObject": {
          "rid": "0",
          "access": "rw",
          "type": "string",
          "uiname": "Parent",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "name": {
          "rid": "1",
          "access": "r",
          "type": "string",
          "uiname": "Name",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "objectLastUpdated": {
          "rid": "2",
          "access": "r",
          "type": "datetime",
          "uiname": "Object Last Updated"
        },
        "description": {
          "rid": "3",
          "access": "r",
          "type": "string",
          "uiname": "Description",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "location": {
          "rid": "4",
          "access": "r",
          "type": "string",
          "uiname": "Location",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "macAddress": {
          "rid": "11",
          "access": "r",
          "type": "string",
          "uiname": "MAC Address",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "psk": {
          "rid": "12",
          "access": "r",
          "type": "string",
          "uiname": "Pre-shared Key",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "firmwareVersion": {
          "rid": "13",
          "access": "r",
          "type": "string",
          "uiname": "Firmware Version",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "enOceanChipID": {
          "rid": "16",
          "access": "r",
          "type": "string",
          "uiname": "EnOcean Chip ID",
          "settings": {
            "tags": {
              "attribute": "true"
            }
          }
        },
        "ipAddress": {
          "rid": "18",
          "access": "r",
          "type": "string",
          "uiname": "IP Address"
        },
        "online": {
          "rid": "64",
          "access": "r",
          "type": "bool",
          "uiname": "Online"
        },
        "uptime": {
          "rid": "65",
          "access": "r",
          "type": "string",
          "uiname": "Uptime (days:hours:minutes)"
        },
        "lastEnOceanUID": {
          "rid": "66",
          "access": "r",
          "type": "string",
          "uiname": "Last EnOcean UID"
        }
      }
    }
  }
}
GET /api/v1/mobius/profile/object/{hid}/{pid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "header": {
      "pid": "513",
      "profileName": "numericValue",
      "instances": "multiple",
      "uiname": "Numeric Value"
    },
    "resources": {
      "parentObject": {
        "rid": "0",
        "access": "rw",
        "type": "string",
        "uiname": "Parent",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "name": {
        "rid": "1",
        "access": "r",
        "type": "string",
        "uiname": "Name",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "objectLastUpdated": {
        "rid": "2",
        "access": "r",
        "type": "datetime",
        "uiname": "Object Last Updated"
      },
      "description": {
        "rid": "3",
        "access": "r",
        "type": "string",
        "uiname": "Description",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "location": {
        "rid": "4",
        "access": "r",
        "type": "string",
        "uiname": "Location",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "value": {
        "rid": "64",
        "access": "rw",
        "type": "number",
        "uiname": "Value",
        "settings": {
          "pv": 0
        }
      }
    }
  }
}
GET /api/v1/mobius/profile/object/by-name/{hid}/{profileName} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "header": {
      "pid": "513",
      "profileName": "numericValue",
      "instances": "multiple",
      "uiname": "Numeric Value"
    },
    "resources": {
      "parentObject": {
        "rid": "0",
        "access": "rw",
        "type": "string",
        "uiname": "Parent",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "name": {
        "rid": "1",
        "access": "r",
        "type": "string",
        "uiname": "Name",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "objectLastUpdated": {
        "rid": "2",
        "access": "r",
        "type": "datetime",
        "uiname": "Object Last Updated"
      },
      "description": {
        "rid": "3",
        "access": "r",
        "type": "string",
        "uiname": "Description",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "location": {
        "rid": "4",
        "access": "r",
        "type": "string",
        "uiname": "Location",
        "settings": {
          "tags": {
            "attribute": "true"
          }
        }
      },
      "value": {
        "rid": "64",
        "access": "rw",
        "type": "number",
        "uiname": "Value",
        "settings": {
          "pv": 0
        }
      }
    }
  }
}
GET /api/v1/mobius/profile/command/{hid} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "ENOCEAN_RADIO_RAW": {
      "description": "Broadcast a received EnOcean raw radio telegram",
      "schema": {
        "type": "object",
        "properties": {
          "rorg": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "rawData": {
            "type": "array"
          }
        },
        "required": [
          "rorg",
          "rawData"
        ]
      }
    },
    "ENOCEAN_RADIO_ERP1": {
      "description": "Broadcast a received EnOcean ERP1 type radio telegram",
      "schema": {
        "type": "object",
        "properties": {
          "rorg": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "db_0": {
            "type": "number"
          },
          "db_1": {
            "type": "number"
          },
          "db_2": {
            "type": "number"
          },
          "db_3": {
            "type": "number"
          },
          "uid": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8
          },
          "status": {
            "type": "number"
          },
          "subTelNum": {
            "type": "number"
          },
          "dBm": {
            "type": "number"
          }
        },
        "required": [
          "rorg",
          "db_0",
          "db_1",
          "db_2",
          "db_3",
          "uid",
          "status",
          "subTelNum",
          "dBm"
        ]
      }
    },
    "ENOCEAN_RADIO_ERP1_VLD": {
      "description": "Broadcast a received EnOcean ERP1 type radio telegram",
      "schema": {
        "type": "object",
        "properties": {
          "rorg": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "vlData": {
            "type": "array"
          },
          "uid": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8
          },
          "status": {
            "type": "number"
          },
          "subTelNum": {
            "type": "number"
          },
          "dBm": {
            "type": "number"
          }
        },
        "required": [
          "rorg",
          "vlData",
          "uid",
          "status",
          "subTelNum",
          "dBm"
        ]
      }
    },
    "ENOCEAN_RADIO_MSC": {
      "description": "Broadcast a received EnOcean MSC type radio telegram",
      "schema": {
        "type": "object",
        "properties": {
          "rorg": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "func": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "type": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "mscData": {
            "type": "array"
          },
          "uid": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8
          },
          "status": {
            "type": "number"
          },
          "subTelNum": {
            "type": "number"
          },
          "dBm": {
            "type": "number"
          }
        },
        "required": [
          "rorg",
          "func",
          "type",
          "mscData",
          "uid",
          "status",
          "subTelNum",
          "dBm"
        ]
      }
    },
    "ENOCEAN_RADIO_RMC": {
      "description": "Broadcast a received EnOcean MSC type radio telegram",
      "schema": {
        "type": "object",
        "properties": {
          "packetType": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2
          },
          "funcNum": {
            "type": "number"
          },
          "manufId": {
            "type": "number"
          },
          "destUID": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8
          },
          "srcUID": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8
          },
          "dBm": {
            "type": "number"
          },
          "cmdData": {
            "type": "array"
          }
        },
        "required": [
          "packetType",
          "funcNum",
          "manufId",
          "destUID",
          "srcUID",
          "dBm",
          "cmdData"
        ]
      }
    }
  }
}
GET /api/v1/mobius/profile/command/{hid}/{command} HTTP/1.1
Host: 
Accept: */*
{
  "ts": "2022-12-21T10:25:54.585Z",
  "uri": "000001",
  "data": {
    "description": "Broadcast a received EnOcean raw radio telegram",
    "schema": {
      "type": "object",
      "properties": {
        "rorg": {
          "type": "string",
          "minLength": 2,
          "maxLength": 2
        },
        "rawData": {
          "type": "array"
        }
      },
      "required": [
        "rorg",
        "rawData"
      ]
    }
  }
}
POST /api/v1/auth/login HTTP/1.1
Host: 
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
Host: 
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
Host: 
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"
}
GET /api/v1/auth/user/{username} HTTP/1.1
Host: 
Accept: */*
71abe4f9-c636-4b1c-950f-968459cea908
GET /api/v1/auth/users HTTP/1.1
Host: 
Accept: */*
[
  "admin",
  "[email protected]",
  "[email protected]"
]
GET /api/v1/auth/user/roles/{_id} HTTP/1.1
Host: 
Accept: */*
{
  "admin": false,
  "flows": true,
  "configure": false,
  "subscribe": true,
  "write": true,
  "read": true
}
PATCH /api/v1/auth/user/roles/{_id} HTTP/1.1
Host: 
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
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "password": "text"
}
{
  "result": "text"
}
DELETE /api/v1/auth/user/{_id} HTTP/1.1
Host: 
Accept: */*
{
  "result": "OK"
}
{
  "topic": "connected"
}
GET /api/v1/mobius/subscribe/connect HTTP/1.1
Host: 
Accept: */*
{
  "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"
    }
  }
}
{
  "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"
    }
  }
}
GET /api/v1/mobius/object/{hid}/{sid}/{pid}/{ins} HTTP/1.1
Host: 
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
Host: 
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
Host: 
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
Host: 
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
Host: 
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
Host: 
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
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 26

{
  "priority": 15,
  "value": 10
}
PATCH /api/v1/mobius/object/resource/{hid}/{sid}/{pid}/{ins} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 58

[
  {
    "r": "00",
    "p": 15,
    "v": "Hello"
  },
  {
    "r": "40",
    "p": 15,
    "v": 43.9
  }
]
PATCH /api/v1/mobius/object/resource/clear/{hid}/{sid}/{pid}/{ins}/{rid} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "priority": 15
}
PATCH /api/v1/mobius/object/config/{hid}/{sid}/{pid}/{ins} HTTP/1.1
Host: 
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
Host: 
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"
                }
              }
            ]
          }
        ]
      }
    ]
  }
}
{
  "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
  }
}