Basic Features

This tutorial shows you how to use Collectu with most of its features, step by step.

Configuration

The collection and processing of data can be configured by using modules. Modules abstract functionality in a generic way, which normally has to be coded manually.

In general, five different types of modules exist:

  • Input module: The base module for some input variables and input tags. For example an OPC UA client.
  • Input variable: A module generating data objects, if the configured variable changes. For example a subscription to an OPC UA variable.
  • Input tag: A module providing data of the configured variable, if it is requested. For example reading specific OPC UA variable.
  • Output module: A module at the end of a pipeline, receiving data objects. For example a database adapter.
  • Processor module: A module receiving data, executing custom logic, and sending it to the next module. For example a neural network.

No programming skills are required to configure the pipelines, combining multiple modules. It just takes seconds to capture, process, visualize, and save data from your systems. To configure your personal data processing pipeline, various predefined modules exists and can be used. The configuration can be created using yaml/json files (located in the configuration folder), the Collectu API, or the user-friendly frontend.

By default, the file configuration/configuration.yml is used.

Next to the configuration file, a local database is used, saving all executed configurations. Those configurations can be loaded (using the api or frontend). Furthermore, custom configurations can be saved, edited and executed.


Internal Interface and Data Object

The data object transferred between the modules is in the format:

{
    "measurement": "my_measurement",
    "time": "2024-12-17 08:17:04.633211+00:00",
    "fields": {
        "temperature": 22,
        "name": "Part 1"
    },
    "tags": {
        "quality": "good"
    }
}
    

Things to mention:

  • If no fields exist, the data object is not transferred to the next module.
  • If no measurement name (empty string) exists, the data object is not transferred to the next module.
  • In general, the time stamp is from the original module, which created the data object.