Training material used in conjunction or reference following a standard MobiusFlow training session 1.
This section outlines the major technologies reference in this training. Learning about this technologies is recommended.
MQTT (Message Queuing Telemetry Transport) is a lightweight and efficient publish-subscribe messaging protocol, commonly used in IoT (Internet of Things) applications.
MQTT is widely used for data transport throughout the MobiusFlow software.
JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy for humans to read and write, and easy for machines to parse and generate.
Learn how JSON works here.
A basic knowledge of JSON is required when using the Flows (logic engine) within MobiusFlow.
EnOcean is a short distance wireless communication protocol used widely within the IoT space. Each EnOcean device has a unique identifier (UID) which is used to identify the sender of all EnOcean wireless telegrams.
During this training, EnOcean will be used as an exemplar IoT technology to demonstrate MobiusFlow from the device level.
A MobiusFlow instance runs a central MobiusFlow Hub. Services, each of which have a function within the overall solution, reside on the hub, and use it as a relay to communicate information.
A MobiusFlow object often represents a virtual equivalent of a real-world device, however can represent non-physical entities such as calculated data.
Some services can have MobiusFlow objects reside on them, often when the service needs to directly interact with those objects in some way. For example, objects representing EnOcean devices will always reside on an EnOcean devices service.
A MobiusFlow object contains many resources, each being its own individual data stream representing something about that object.
Below shows a screenshot from the MobiusFlow software of the list of resources associated to an EnOcean Temperature / Humidity / C02 sensor.
A point is a chargeable resource. Notice in the above screenshot, the points column is only populated for Temperature, Humidity and CO2.
Also notice how the MobiusFlow software calculates your total point usage and displays this at the bottom right hand corner.
All parts of the MobiusFlow hierarchy are assigned a unique URI with the following structure:
HID/SID/PID/INS/RID
Service
Full example URI of a service:
000001/020
Representing service 020 on hub 000001.
Object
Full example URI of an object:
000001/020/0028/0001
Representing instance 0001 of object type (profile) 0028 on service 020 on hub 000001.
Resource
Full example URI of a resource:
000001/020/0028/0001/40
Representing resource 40 on instance 0001 of object type (profile) 0028 on service 020 on hub 000001.
Conclusion
Using the URI system, it is therefore possible to reference any component of a given MobiusFlow configuration.
This aims to show how data taken from EnOcean sensors at a hardware level, is brought into and through the MobiusFlow system, and then presented in the form of a dashboard.
The following shows a colorless project schematic representing lack of implementation. As the project is implemented, this diagram will be colored in so progress can easily shown.
Note that the EnOcean devices have been dropped from the diagram for simplicity
Add and start MQTT Broker service:
The MQTT Broker service has been added, configured and started.
Add connectors service, add a connector to the service, and finally start the service.
Add and start service:
Add a MobiusFlow connector object to the connectors service and configure:
The Connector service has been added, configured and started.
Add EnOcean Devices service, add EnOcean device objects to the service, and finally start the service.
The EnOcean devices service has been added, configured and started.
For full information on how to configure a MobiusFlow connector see here.
MobiusFlow connector is connected.
The status of all service can viewed. This is a helpful insight into the current state of the solution as well as aiding with diagnostics.
The data of any live object can viewed by navigating to that object and then clicking on resources.
Connecting the flows to the MobiusFlow engine, as well as the baseline principles of pulling into the flows is covered here.
In this example, the live state of the buttons on a 4-Rocker EnOcean switch is shown on a basic dashboard.
Using dashboard in the way illustrated can be as simple or as complex as required. Display widgets include graphs, charts and tables, as well input widgets such as switches, buttons, drop-downs and text inputs. Full documentation of the Flows dashboard can be found here.
Explanation | Format | |
---|---|---|
Service | Explanation of requirement |
---|---|
HID
Hub ID
6-Digit Hex
SID
Service ID
3-Digit Hex
PID
Profile ID (A MobiusFlow profile can be thought of as an object type)
4-Digit Hex
INS
Instance ID (The ID of that object instance)
4-Digit Hex
RID
Resource ID
2-Digit Hex
MQTT Broker
To allow MobiusFlow connectors to connect to and send data to
Connector Service
To collect incoming messages from MobiusFlow connectors and bring the data into the MobiusFlow Hub
EnOcean Devices Service
To decode raw EnOcean messages from the MobiusFlow hub and populate this service's child MobiusFlow objects with human-readable data.