Analytics

Self-Service IoT Analytics

Collecting, storing and visualizing the raw machine data is just a prologue to any serious IoT initiative. The economic value is driven by management decisions for optimizing the existing process efficiency and offering new end customer services.

The above big words are technically enabled by aggregation, processing and deep analysis of the device data and event streams. These operations follow a unique curve in every product and solution: optimizing storage of harvested crops is totally different from orchestrating transactions in a smart grid or managing a fleet of forklifts.

Analytical capabilities of Iotellect span from simple alerting to leveraging machine learning for prediction and anomaly detection. Years on the market and thousands of products developed by our partners in all vertical markets have proved the platform to own a comprehensive toolset for every use case.

Models and Digital Twins

Models are used to create digital twins of different devices, assets, services, processes, facilities, and environments. A hierarchy of model types and instances may mimic large infrastructure, e.g. starting from a turbine's digital twin up to a logical model of a geographical region within a country-wide industrial business intelligence system.

A model can act on its own, get attached to lower-level resources, such as devices, or assume explicit on-demand model instance creation. For example, an instance of an Oil Rig model may hold information about devices and controllers installed on a particular rig, as well as data collected from it. While different rigs have varying sets of machines and PLCs, their model instances will provide a unified interface within the platform.

Combined with other pieces of Iotellect data mining technology (such as Machine Learning or Complex Event Processing), models can predict behavior of their real-life peers for further optimizing their structure and lifecycle.

Each model comprises variables representing model values, functions that instruct the model to perform some processing or calculation, events the model can produce, bindings that tie model's properties, operations and events together allowing it to react to other objects' events or states, and business rules that constitute a machine-readable knowledge base. Attachable models can be used to enrich existing platform components with new properties, operations, events, and behavior.

Expression Language

Expression language is one of Iotellect’s most important data processing tools. Expressions are similar to formulas in a spreadsheet: those formulas are used to refer values from surrounding cells while Iotellect expressions refer to values flowing inside the unified data model.

Examples of expression usage are alert trigger conditions, event filtering criteria, chart data point calculations, bindings between digital twins and app’s UI, and hundreds more.

Expressions are simple to use due to the visual editor and automatic type conversion. Nonetheless, a rich and powerful library of functions allow expressions to solve quite complex data mining and app logic configuration objectives.

Data Bindings

Bindings are called this way because they bind various data items to each other. For example, UI components may be linked to device metrics stored in the backend-side device snapshot.

Iotellect bindings work in dashboards, models, classes and other modules. Every binding can be activated on startup, on change of a value, on event, or periodically. It has an expression that refers to environment-specific values for converting them to a single output value and a target which is a place used for storing the expression result.

Bindings are smart enough to analyze your expression and adapt. For example, if your binding says power = {voltage} * {current}, it will be automatically triggered upon changes of both current and voltage values.

Product architects may configure bindings concurrency to adjust the product for low-resource embedded environments or maximize performance in a large cloud-based system.

Query Language

Iotellect’s unified data model is a well-structured datasource, so one of its anticipated features is a query language for retrieving and managing device and application data. Just one example here: a single query may prepare a statistical report on average yearly consumption of a thousand electricity meters.

Iotellect query language is very similar to Structured Query Language (SQL). Most SELECT statement’s clauses are supported, including FROM, WHERE, GROUP BY, HAVING, JOIN, UNION, ORDER BY, and LIMIT.

Since the unified data model is naturally based on tables each of them may be addressed by a query.However, query results will incur permissions of a user or a system resource that originated the query.

Unlike traditional SQL, Iotellect query language has no INSERT and UPDATE statements. However, query results may be edited in the UI. For example, if you select several settings for a number of devices in a single table, you can edit the result set and this will effectively change devices’ configuration.

Working with Relational Data and Topologies

Iotellect’s classes are designed to store a large number of cross-linked objects in a persistent storage facility. Each class may have many million instances backed by tables in a relational database or nodes in a graph database.

Classes may have one-to-one, one-to-many and many-to-many relations between each other. Those relations help to establish smart navigation between class instances. In a relational back-end, one-to-one and one-to-many relations are supported by foreign keys while many-to-many relations are represented by dedicated lookup tables. In a graph database, all class instance relations are graph edges.

Imagine you’re designing a CRM product. Its UI is essentially based on navigation between a few primary classes: contacts, accounts, leads and opportunities. You use Iotellect’s Web UI Builder as a low code development environment to configure dashboards with class instance lists and properties, as well as smart navigation between them. Class views used in the UI enable app’s end users to perform sorting, searching and filtering.

Classes also offer configurable instance states and lifecycles, flexible per-instance permissions and bindings that perform a periodic re-evaluation of field values.

Workflows and Orchestration

Workflows constitute the code of your IoT app’s logic. These are visually designed actions that combine server-side logic with operator interactions.

Typical workflow usages include data orchestration, business process management, automatic decision making, user-controlled procedures, and much more.

Workflow-based data processing and decision-making algorithms can be implemented by anyone who doesn’t have even basic scripting and programming language knowledge. Flow blocks are just wired to each other using drag-and-drop.

The blocks can interact with the unified data model and operators, so they have full control over everything available within Iotellect’s instance and inside your app. Visual workflow builder has an integrated debugger enabling step-by-step diagnosis of interactions between workflow blocks.

Workflows are lightweight and capable of running in IoT gateways and low-cost single-board computers.

Machine Learning and Predictive Analytics

In the Iotellect team, we’re very practical when it comes to machine learning. We know that in data science 90% of success is the flexibility and convenience of the data preparation process while only the remaining 10% are related to actual ML algorithms. Therefore, we design Iotellect as an instrument allowing data scientists to drill into time series streams and extremely large datasets in order to mine valuable knowledge.

Technically speaking, Iotellect uses both supervised and unsupervised learning methods to solve three major objectives: value prediction, anomaly detection, and classification of values or datasets.

Trainable units that perform actual learning and scoring have so-called hyperparameters used by data scientists to fine-tune algorithm behavior. Combined with workflows, the machine learning module is a one-stop tool for predicting failures and optimizing operation of both physical assets and business services.

There are well-known algorithms under the hood of the machine learning module: linear regression, support vector regression, REP decision tree, random forest, multilayer perceptron (feedforward neural network), naive Bayes classifier, and many more.

Trainable units address the unified data model and therefore interact with any module, device and data source within the platform. The units can also work in incremental learning mode, getting on-the-fly model updates once new data comes in the form of device or system events.

Scripting in Python enhances functionality of the data preparation stage and the learning process itself.

Complex Event Processing

Iotellect’s event correlator is a powerful tool for complex event processing. It manipulates incoming event streams via a series of so-called “windows”, employing a special dialect of SQL (StreamSQL) to find relations between multiple events and convert discovered event combinations into new events.

Examples of complex event processing include predefined pattern detection, trend tracing, event aggregation, detection of anomalies and missing events, deduplication of identical events, real-time prediction, throttling and debouncing.

Correlators work unified data model events. However, other Iotellect modules enrich the unified model with events originated from or destined to any devices and data sources, including Kafka, JMS/MQ, NATS, CDC, and more.

Event correlation can be performed by edge, cloud, and on-premise Iotellect instances. Correlators can be easily moved from edge to cloud and back whenever practical. In most cases, running correlation on the edge means higher system autonomy, reduced traffic, and lower storage requirements.

Unified Search

Similarly to how web search engines index the Internet, our platform maintains a search index of data in the unified model. It results in the unified search window that guarantees instant access to any piece of data within your distributed IoT app in mere seconds.

Data indexing is very flexible. It’s possible to add and exclude individual resources and their groups from being indexed, as well as fine-tune re-indexing frequency and other options.

App developers can also configure external search sources that amend the unified search with data available in your product’s documentation, knowledge base, community, and other third-party information providers.

Get Started

More technology?

Visualization