Visual Flow Creator
Visual Flow Creator
Insights Hub
User interface 2
User rights 3
Visual Flow Creator
10/2024
Nodes in Visual Flow Creator 5
Subflows 7
Technical specifications 8
Glossary 9
Legal information
Warning notice system
This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent damage
to property. The notices referring to your personal safety are highlighted in the manual by a safety alert symbol, notices
referring only to property damage have no safety alert symbol. These notices shown below are graded according to
the degree of danger.
DANGER
indicates that death or severe personal injury will result if proper precautions are not taken.
WARNING
indicates that death or severe personal injury may result if proper precautions are not taken.
CAUTION
indicates that minor personal injury can result if proper precautions are not taken.
NOTICE
indicates that property damage can result if proper precautions are not taken.
If more than one degree of danger is present, the warning notice representing the highest degree of danger will be
used. A notice warning of injury to persons with a safety alert symbol may also include a warning relating to property
damage.
Qualified Personnel
The product/system described in this documentation may be operated only by personnel qualified for the specific
task in accordance with the relevant documentation, in particular its warning notices and safety instructions.
Qualified personnel are those who, based on their training and experience, are capable of identifying risks and
avoiding potential hazards when working with these products/systems.
Proper use of Siemens products
Note the following:
WARNING
Siemens products may only be used for the applications described in the catalog and in the relevant technical
documentation. If products and components from other manufacturers are used, these must be recommended or
approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and maintenance
are required to ensure that the products operate safely and without any problems. The permissible ambient
conditions must be complied with. The information in the relevant documentation must be observed.
Trademarks
All names identified by ® are registered trademarks of Siemens AG. The remaining trademarks in this publication may
be trademarks whose use by third parties for their own purposes could violate the rights of the owner.
Disclaimer of Liability
We have reviewed the contents of this publication to ensure consistency with the hardware and software described.
Since variance cannot be precluded entirely, we cannot guarantee full consistency. However, the information in this
publication is reviewed regularly and any necessary corrections are included in subsequent editions.
2. User interface..................................................................................................… 8
3. User rights........................................................................................................… 27
5.1. Introduction...............................................................................................… 49
5.2. Overview.....................................................................................................… 50
5.4. Overview.....................................................................................................… 64
7. Subflows............................................................................................................… 240
9. Glossary............................................................................................................… 249
Visual Flow Creator is an application used to create a visual representation of data processing
workflows.
Visual Flow Creator is a component in Industrial IoT. For more information, refer to Additional
information.
Visual Flow Creator is a software for visual data flow programming in IoT (Internet of Things).
Nodes are predefined blocks of functionality. You can interlink and add nodes in the working area
and combine them to produce a "flow". For more information, refer to Creating flows.
With Visual Flow Creator, IoT applications can be easily implemented in a short amount of time.
The focus is on development of prototypes. The graphical user interface also makes it easier to
get started with IoT programming. Knowledge of JavaScript is advantageous for the use of Visual
Flow Creator.
Visual Flow Creator provides the following functionalities:
Easily access data by using Industrial IoT nodes
Calculating KPIs
Inserting own JavaScript code in "functions" nodes. For more information, refer to Function
nodes.
Users of Visual Flow Creator are responsible for checking all external resources
and sources.
You have the option of using and processing the following available data from Industrial IoT.
Events
Files
Creating dashboards
Specific Industrial IoT nodes are available for processing data. For additional information on
Industrial IoT nodes, refer to Industrial IoT nodes.
Additional information
You can find additional information about VFC using the following links:
Visual Flow Creator examples: vfc-examples.
noderedguide.com
www.nodered.org
User interface 2
2.1 User interface of Visual Flow Creator
Visual Flow Creator application can be accessed from the Insights Hub Launchpad by clicking the
following icon:
Home screen
The following graphic shows the different elements of the Visual Flow Creator user interface:
Projects
If the user selects the project type as "Public" for the particular project, then it is
visible to other users of the environment.
If the user selects the project type as "Private" for the particular project, then it is
not visible to other users of the environment.
Project
Description
Properties
Users Displays the user's list and allows to search for the required user.
User projects Displays the "default" project and other projects list.
Project
Description
Properties
Shared projects Displays the shared projects to other users of the environment.
Project name Displays the project name and allows you to rename the project name.
Displays the "Project id" of the project. Project id is useful for accessing API of the
Project id
particular Project.
- Public: This type of project is visible for all the other users of the environment. You
can share public projects to the other user to edit the flows inside the project.
Type - Private: Only visible for the creator and VFC admins of the environment.
Note:
Admin can change the project details.
Open user
Navigates to the "User groups" feature in Settings application. For more information
group
about managing "User groups" feature, refer to Managing user groups.
management
Node palette
The following graphic shows the node palette of different types of nodes available in Visual Flow
Creator:
Working area
In working area, you can create and edit the flows. Drag the nodes from the palette and wire
them to develop the flows. The following graphic shows the working area screen:
Sidebar
Visual Flow Creator has a sidebar window that allows you to configure the nodes, flows and view
the results. It is classified in four tabs:
Info tab: It displays node information of the current project and their node properties.
Dashboard tab: It displays the layout, site and theme of the nodes or flow.
Info tab
The info tab displays the properties of the selected node and the information on using the node.
If no node is selected, the info window shows the properties of the current flow displayed in the
workspace. The following graphic shows the info tab screen:
Help tab
The help tab displays the details on performing the various functions of a selected node. If no
node is selected, the help window shows the details of the current selected node displayed in the
workspace. The following graphic shows the help tab screen:
When a node is selected, it displays its description and a shortcut key to the help tab. To open
Dashboard tab
The dashboard tab displays the layout, site and theme of the nodes or flow. The dashboard tab is
to know the working of the dashboard nodes. The following graphic shows the dashboard tab
screen:
Dashboard
Description
Elements
Tab is created under dashboard tab. You can add groups, edit groups and edit the
Tabs
group properties under the tab. You can add or edit multiple groups in the tab.
Dashboard
Description
Elements
A group is a container for multiple dashboard elements. You can add or edit a
Group
group for each flow and you can develop multiple groups under the tab.
You can create links to other web pages in the dashboard panel of the sidebar
Links
tab.
You can add multiple groups in each of the tabs. The layout allow you to reorder the tabs
and groups. In the tab section, to add a new group, click . To edit any group, click
. The tabs and groups are expandable for editing and also collapsible.
You can define the properties of the created links by clicking the button.
For configuring a dashboard node, the groups and tabs created can be used to define the
dashboard node properties. For more information, refer to Configure dashboard node
properties.
Site: The site panel allows you to configure the user interface behavior of the dashboard
site. You can set the title of your dashboard.
Theme: You can set the themes, style, color and font of the user interface in the
dashboard sidebar.
The creation of groups or tabs or links are applicable only with the dashboard
nodes.
For more information about creating and working of dashboard nodes, refer to Dashboard
nodes.
Debug tab
The debug tab displays injecting the node and message payload. This window displays the debug
information for:
IIoT
Function
Analytics
Storage
Array
Dashboard
Custom
Click the "debug" window to view the message payload.
The "debug window" displays message payload of the nodes in the flows. The messages can be
filtered using the node filter button. The node panel has the following filter options:
Selected nodes: Displays messages only of the selected nodes from all the available nodes.
Flow durations
"Flow durations" displays the duration of the triggered flows in Visual Flow Creator by different
users with time, user details and node information. Click to access the "Flow durations":
You can find the list of triggered flows in Visual Flow Creator. You can filter by the user and
redirect to the flows in Visual Flow Creator by clicking on the active node.
① Inactive node
② Active node
If the triggered flow is deleted from Visual Flow Creator, then the node will be
inactive.
The flow duration will be the sum of the maximum compute hours of a triggered
flow and the list will be descending based on the duration.
Flow migration
"Flow migration" allows you to migrate other user executed flows from the selected project in
Visual Flow Creator. Click to access the "Flow migration":
You can select the user and project to migrate the flows from one user to another user by
clicking "Migrate Flows".
Only Visual Flow Creator admin can use "Flow migration" page.
After migration, project name will be replaced with the Visual Flow Creator
generated project name.
Export
"Export" allows you to copy or download the other user or "Projects" flows in Visual Flow Creator.
Nodes and flows can be copied in the JSON format by clicking "Copy to clipboard" or you can
download them by clicking the "Download" button. Click to access the "Flow migration":
You can export the single node, flows or all the flows of the current user or "Projects" in Visual
Flow Creator.
Groups
"Groups" allows you to combine the nodes into a group. It will create a boundary around the
selected nodes and it can be moved, copied and perform other actions on the group.
You can create a flow and combine the nodes into a group as per the below example:
You can perform the following actions for the selected node:
Group
Ungroup
Merge
Remove
Copy
Paste
Properties Description
Style Allows to change or update the outline and fill colors of the groups.
Label Allows to change or update the color and position of the label.
User rights 3
3.1 User rights
The Visual Flow Creator application user rights are assigned from the Settings application. Once
the Visual Flow Creator application is activated, you can grant the permission to read, write or
delete access as per the requirements. You can also create additional users with modified
permissions in Visual Flow Creator.
!!! Note - Permissions are defined as an act of authorizing or giving consent to carry out tasks. -
User rights are access permissions that are predefined and given to certain user groups to
perform tasks. - Roles are access permissions which are created and assigned to users.
The user rights depend on the following user roles:
Administrator
User
Viewer
The following table shows the overview of the permissions for different user roles::
Permission Role
View all
environment's 🗸 🗸 🗸 🗸 🗸 🗸
flows
Create nodes 🗸 🗸 🗸
Create tabs 🗸 🗸
Delete tabs 🗸 🗸 🗸
Edit flows 🗸 🗸 🗸
Export nodes 🗸 🗸 🗸 🗸 🗸 🗸
Delete flows 🗸 🗸 🗸
Custom node 🗸 🗸
MQTT 🗸 🗸
Flow migration 🗸 🗸
In the main menu section, click to view the dropdown. You will find a section on subtenants
in the drop down menu. The subtenants have very limited access. The following rights have been
granted to subtenants:
They can view the assets which belong to them.
Tenant A has the rights to view and access all flows and assets.
Introduction
Nodes are configurable pieces of functionality that processes input data and produce output
data. Examples include data processing, complex functions and online services.
The Visual Flow Creator node palette contains a set of node categories for creating flows in the
working area. You can view the detailed information of each node in the info window. The info
window displays the node type, node ID and other properties which provides the information
about the exact use of the node and shows the possible applications using examples. For more
information on node categories, refer to Nodes in Visual Flow Creator.
To view the information of a node, select the node in the node palette and click . You can
view the detailed information of the node in the "Help" window.
Editing nodes
To use a node, you can drag and drop it from the node palette to the working area. You can edit
the node properties by double-clicking the node in the working area to configure the flow
execution. Each node has its specific properties window with different setting options.
The following table shows the node states:
- The blue circle identifies nodes that have not yet been saved.
- The red triangle indicates the missing inputs or errors in the node properties.
- The text below the node shows status and error messages.
To change the properties of the node, double-click on the node and the properties window is
displayed. You can change the properties of the node and click "Done".
For example to change the properties of "inject" node, follow these steps:
1. From the node palette, drag and drop the "inject" node from the input palette to the working
area.
In the "Payload" section, you can select any one of the following options from the
dropdown menu and enter the details.
In the "Repeat" section, you can select any one of the following options from the
dropdown menu.
Repeat Description
In this mode, the node gets triggered only by clicking on its button. It will not
None
be triggered automatically.
In this mode, the node can be configured to trigger and repeat until the
specified end time. The node will be automatically terminated after reaching end
time. The interval time units can be specified in seconds, minutes, hours or
Interval infinite. If required, choose "Start next execution time" parameter to display the
next execution time for every execution. For example, the node can be
configured to trigger at every 10 seconds with the specified end time to
terminate the execution automatically.
Repeat Description
In this mode, the node can be configured to trigger and repeat automatically in
Interval between the specified time on the specified days of the week. The interval time
between units can be specified in seconds, minutes or hours. For example, the node can
times be configured to trigger at every 1 minute in between the time 11am to 12pm
of the weekday.
At a In this mode, the node can be configured to trigger and repeat automatically at
specific a specified time on the specified days of the week. For example, the node can
time be configured to trigger once at 12pm of the weekday.
Check the box of "Inject once at start?" and "Power Mode" based on your
requirement.
Power Mode
In this mode, the flow runs up to 120 seconds for the heavy execution
and the compute hours is calculated 2.5 times more than the normal
execution. This mode is available for every node which is used to trigger
and msg._powerMode.
Click "Done".
The "input" and "output" nodes exchange data through messages, which are JSON objects. These
messages typically include the "payload" parameter for storing user data. A "msg object" can
contain different properties specific to the node. Different nodes may support different
properties of the JSON object. For example, the "write timeseries" node utilizes the "Topic"
property to access time series data by specifying the asset or aspect or variable combination.
The most often referred property is the "payload" property. Data can be of different types such
as String, Array of structure mapping JavaScript objects and others.
For processing time series data, Visual Flow Creator uses the default format for timeseries. For
example, { "_time": "2017-12-27T07:35:45", "pos_X": 112.2 }.
More than 10 seconds time interval triggers can lead to high consumption of
available compute hours.
Basic nodes
The Visual Flow Creator component has the following basic nodes:
Input nodes
Output nodes
Input nodes
Input nodes trigger data flow, each having one output. Use input nodes to supply data from
other services, as they generate messages for downstream nodes.
Input
Description
nodes
This node catches errors while handling a message in a typical flow and handles them
with a dedicated flow.
This node injects a message into a flow either manually or at regular intervals. The
message payload can be of various types, including strings, JavaScript objects, or the
current time.
http-in node
You can create an http endpoint for the web services. You can use this node to create an http
endpoint for the web services with specified access. You can manage the access key by the "Key
Management" in http edit node properties.
You cannot send any response without the flow to complete the request.
You cannot create the flow in other user flow tab to generate the output.
To create an endpoint and display the timeseries data in the web services, follow these steps:
From the node palette, drag and drop the nodes from the respective palette to the working
1. area.
Http-in node
Generate node
Debug node
In the "Method" section, you can select any one of the following options from the
dropdown menu.
In the "Access" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
5. Enter the endpoint with expiry date and click "Generate key".
You can click the URL link to display the output data in the web services.
Output nodes
Output nodes send data from the flow to other services or to the debug tab. Each output node
has one input. They consume messages and trigger actions, such as sending an HTTP response.
Output
Description
Nodes
This node is used for previewing the results of face detection, object recognition and
similar processes.
This node sends responses back to requests received from an HTTP input node
Output
Description
Nodes
This node displays the selected message properties in the debug sidebar tab.
This node allows you to activate or deactivate a Visual Flow Creator tab.
Ui control node
Function node
Switch node
"8888a447.745cc8" is a flow tab unique ID for the selected tab. This unique ID of
the selected tab is available in Visual Flow Creator URL.
3.Double click on "function" node to edit the properties.
"8888a447.745cc8" is a flow tab unique ID for the selected tab. This unique ID of
the selected tab is available in Visual Flow Creator URL.
Once the "Pump" flow tab is deactivated, the flows in this tab are disabled from executing.
Deactivated "Pump" tab
recognition and so on. Click button of the image output node can be used to enable or
disable the image preview. It is recommended (for performance) to disable or remove any Image-
Output nodes that are not being used.
You can edit the Image output node properties with the following parameters:
Parameters Description
This node expects the selected msg.property (default msg.payload) to contain one
of the following formats:
- A base64 encoded string
Property
- A buffer
- A URL to an image
Sending a blank or null payload will remove/hide the preview panel.
Width (1px -
The width (in pixels) of the image needs to be specified to display in the flow.
800px)
When too much data is sent to the browser, the flow editor can become unresponsive.
- When it is activated, the images will be resized (to the specified width) on the server
Resize
side and then those small thumbnail images will be send to the browser, to reduce the
images on
bandwidth.
server side
- When it is de-activated, the (original) large images will be send to the browser. Once
the image is arrived to the browser, it will resize the image to the specified width.
To preview the image output using image output node, follow these steps:
From the node palette, drag and drop the nodes with the respective palette to the working
1. area.
Two inject nodes
3. Double click on first "inject" node to edit the properties and enter the URL as a string value.
Double click on the second "inject" node to edit the properties and set the payload value as
4. timestamp.
5. Double click on the second "http request" node to edit the properties.
6. Double click on the second "image output" node to edit the properties.
Enter the "Name".
Resize images on server side - Uncheck for "first" flow and check for "second" flow to
reduce the bandwidth.
Click "Done".
When you execute the "first" flow for multiple times, it will preview the same image as the result
if the URL consists of multiple images.
When you execute the "second" flow for multiple times, it will preview the different image as the
result if the URL consists of multiple images.
For both the flows "first" and "second", when you click on the image preview then it will be
disappeared.
Junction nodes
Junction node allows you to combine the multiple wires which are connected to multiple nodes.
To insert the junction, "Right-click" on the work area and click "Insert junction".
Introduction
A flow consists of multiple interconnected nodes. The links join the nodes on the working area to
form a flow chart. The data enters the flow via input nodes and is processed by other nodes.
Each user can create upto ten tabs in the working area of Visual Flow Creator.
Basic flows
Example scenario
The smart city has alternative wind and solar power generation. The dependency on weather
sometimes leads to severe constraints.
Objective
The basic flow is to convert data of a weather web service from a JSON format to a JavaScript
object structure for further processing.
Requirement
A weather forecast web service supplies information on wind speed, amount of sunshine and
temperature.
Procedure
To create a basic flow, follow these steps:
From the node palette, drag and drop the "inject" node from input palette, "http request"
and "json" nodes from function palette and "debug" node from output palette to the
1. working area. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Enter the API Call URL with the corresponding data of a weather web service.
Click "Done".
You can optimize the Visual Flow Creator executions to avoid the excess consumption of
compute hours is described as follows:
Avoid having sequential executions: When you are executing the nodes, avoid sequential
flows. You can execute the flows in parallel.
Avoid using multiple inject nodes for parallel executions: When you are executing the
parallel executions, you can execute with the single inject node.
Debug flows
To ensure correct execution and data processing of a flow, you can check the flow with a debug
node. You can deactivate the debug node like an output node using the green button on the
right. Deactivation of a debug node helps you to reduce the number of debug messages from
multiple debug nodes.
To fully display the properties and contents of messages in the debug window, you must set the
"Output" to "complete msg object" in the properties of a debug node. The debug window then
shows the complete "msg-object" content, for example, can include the following fields:
topic
payload
_msgid
You also have the option of displaying any other property (msg.payload).
Debug window
The node ID identifies the node in the debug window. A click on the node ID highlights the
corresponding node in the working area. The selection helps you associate the corresponding
node with the message in the debug window. The debug window displays important information
regarding the data processing and a preview of the message or array output.
The debug window can format arrays and objects in order to improve readability. For timeseries,
an additional chart gets added which visualizes the time series data.
Copy flows
You have the option of copying nodes between multiple flows. For this purpose, you can select
nodes in a flow and copy them to the clipboard. You can paste the nodes from the clipboard in a
new flow.
Procedure
3. Open the "Export nodes to clipboard" window under "Export > Clipboard".
7. To paste the flow, open the flyout menu in the main navigation.
9. Click inside the "Paste nodes here" window in the "Import nodes" window.
Inside an instance from VFC, nodes can simply be copied by using CTRL+C and
CTRL+V
This feature can execute the cyclic flows for each tab individually in Visual Flow Creator. The
"Allow cyclic flows" can be enabled or disabled by using the toggle button at the edit flow tab
properties.
Example
To execute the cyclic flows using delay node, follow these steps:
From the node palette, drag and drop the nodes with the respective palette to the working
1. area. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
msg.payload++;
return msg;
Click "Done".
If you proceed to save and deploy the flow, a notification will be displayed with the
message "Deploy failed: cycles are detected. This can lead to high compute hours
consumption!"
6.Edit the flow tab properties.
Visual Flow Creator calculates the execution time of your flows. The calculation starts when a flow
is started and ends if all the involved nodes stop their execution. The time will be rounded up to
the next 100ms.
For example, if you execute a flow which takes 240ms to complete, 300ms would be charged
from your available compute hours.
Example
This flow reads the timeseries data to check the last value and writes the new value in
400ms.
This example could be modified in order to calculate KPI's. If the flow is runs every
hour, the monthly consumption would be "0.4 * 24 * 30 = 288 seconds".
This flow shows the "wait time" will not be charged. 200ms + 300ms = 500ms. In this
flow insert delay nodes will split the flow execution into two parts. Each execution will be
charged.
This flow shows that the timed out flows will be charged for 30 seconds.
This flow can optimize the execution time of "multiple" flows using only one inject node in
800ms will be charged for the execution of the displayed flow.
Visual Flow Creator nodes are specific nodes for processing the data. The nodes are only
available in the Visual Flow Creator component.
Visual Flow Creator groups the nodes into the following categories:
Category Description
These are programmable and user defined nodes which can be customized
Function nodes
to perform different functions.
These nodes prepare the time series data read out from Industrial IoT with
Analytics nodes
analytics methods.
These nodes represent function methods like filter, map, find and reduce for
Array nodes
arrays.
These nodes provide a set of nodes for reading, visualizing and analyzing
Dashboard nodes
data on a live dashboard.
These nodes are used only for productive cases or to connect with
Network nodes
connectivity features.
These nodes allows you to create virtual connection between the flows which
Link nodes
exists in any flow tab.
Simatic Notifier node These nodes allows to integrate with Simatic Notifier application.
These nodes are used to write the values of the datapoint, send a command
MindConnect nodes
to MindConnect MQTT device and check the status of the sent command.
These nodes are used to create a basic workflow to digitize work requests
Work Order nodes that are essential to monitor asset health and to detect technical issues
before they lead to asset failure and downtime.
Predictive Learning These nodes combines analytics, statistics and machine learning algorithms
(PRL) nodes to provide unmatched insight into trends in your data.
There are two types of Industrial IoT nodes. You can use the Industrial IoT in
Industrial IoT nodes nodes to read data, such as time series, into a flow. Industrial IoT out nodes
are used to write the data using services.
The dashboard allow you to build, create and interchange dashboard nodes
IIoT Dashboard nodes
and default dashboard nodes in one single dashboard.
Pump-Simulation node These nodes allows to generate the time series data of a pump.
The custom nodes helps to design and deploy your own customized nodes if
Custom nodes
any of the required nodes are not available in Visual Flow Creator.
Rules are configured by a specific user, these rules are executed in a system
context for the entire environment.
With this, the user access to specific assets is managed by the rule is restricted at
the later point of time. The rule will be executed irrespective access restrictions
of the user. This an intended system behavior.
5.2 Overview
The "function" nodes are programmable and user defined nodes which can be customized. For
more information about other function nodes, refer to Node-RED documentation.
The "function" nodes and their respective functions in Visual Flow Creator are described in the
following sections:
Template node
The "template" node sets a property based on the user defined template. By default, the
template uses the "Mustache" format. The "Mustache" format can be switched off if required.
"Mustache" can be used for HTML, config files and source codes. It works by expanding tags in a
template using values provided in an object.
You can use this node to design the template and set its property.
Comment node
The "comment" node allows you to add comments in the flows that you have created. The editor
will accept information in the Markdown syntax.
You can use this node to:
Add formatted text to the created flows that will be shown in the info tab.
Sticky note is used to select the type of font as given below list:
Do not show: It will not show the font on the node in the working area.
Big font: It shows the font on the node with bigger in size in the working area.
Small font: It shows the font on the node with smaller in size in the working area.
The "http request" node sends HTTP requests and returns the response.
You can use this node to:
To use Insights Hub services, activate "Use Insights Hub service" option and configure the
requested service path in the Insights Hub path field.
If "Extended scopes" option is selected then, the request will be processed with a token that
has more scopes for a normal user. For example, creating or deleting assets. Admin can create
or modify the scopes for the normal user.
Scopes Description
as.ad.u Permission allows user to use Anomaly Detection API - without batch endpoints.
Scopes Description
Scopes Description
nose.se Permission allows user to grant access to send e-mail message, Push Notification and SMS.
pl.de.r Permission allows user to list folder contents and download data
Scopes Description
pl.de.w Permission allows user to upload and delete data. It implies the pl.de.r
sdi.dip.r Permission allows user to grant access to read the job status for data ingest process
sdi.dip.w Permission allows user to grant access to start data ingest process
sdi.dqp.e Permission allows user to grant access to create or get query execution jobs
sdi.dqp.r Permission allows user to grant access to read data query result
sdi.reg.d Permission allows user to grant access to delete data registry information
sdi.reg.r Permission allows user to grant access to read data registry information
sdi.reg.w Permission allows user to grant access to create or update data registry information
sdi.smd.d Permission allows user to grant access to delete a semantic data model
sdi.smd.r Permission allows user to grant access to read a semantic data model
sdi.smd.w Permission allows user to grant access to create a semantic data model
You can add "User secrets" to use in URL with name and value pair to secure requested
service. These secret parameters are not visible after they are got added.
You can add the custom user defined data using "Secret headers" via HTTP-Headers.
Switch node
The "switch" node routes messages based on the values set in the node properties. The node
evaluates each of the values in the defined rules and thereafter forwards the message to its
corresponding output once a match is found.
You can use this node to:
Check the msg.payload, simultaneously analyze the property and depending on the value set
(true or false) and decide to route the messages.
To evaluate the rules against an individual message property or the result of a JSONata
expression.
Change node
The "change" node sets, changes, deletes or moves properties of a message as required. The
node can specify multiple rules that will be applied in the order they are defined.
You can use this node to:
Set a property.
Delete a property.
Range node
Split node
The "split" node splits a message into a series of messages. The property set of the node will
define how messages can be split from the parent message.
You can use this node to create flows which perform common actions across a sequence of
messages.
Join node
The "join" node joins a sequence of messages into a single message. The property set of the
node will define how a message is joined into a single message.
You can use this node to create flows which perform common actions across a single message.
Csv node
The "csv" nodes converts and represents the csv (comma-separated values) format into its
javascript object and vice versa.
Html node
The "html" extracts elements from an html document held in msg.payload using a CSS selector.
Json node
The "json" nodes converts and represents the json format into its javascript object and vice versa.
Xml node
The "xml" nodes converts and represents the xml (Extensible Markup Language) format into its
javascript object and vice versa.
Yaml node
The "yaml" nodes converts and represents the yaml (Yaml Ain't Markup Language) format into
its javascript object and vice versa.
Function node
The "function" node is used to run JavaScript code against the message object. You can write
your Javascript code in the editor.
You can use this node to:
Design your JavaScript code here which will run against the messages passed. This in turn will
return zero or more messages to downstream nodes for processing.
Design functions in the node properties and save them in the library. You can reuse the
functions whenever required.
Onchange node
The "onchange" node caches the payload of the last received message internally and compares it
with the payload of a newly arrived message.If there are differences between the payloads, the
node forwards the message.
You use this node to react on changes and trigger the actions, for example send an email when
the time series data has changed.
Read-context node
The "read-ctx" node reads the values from the context with the associated context type and key.
Flow With this context type, you can access the values only from the current tab.
Global With this context type, you can access the values from any tab.
Tenant With this context type, all the environment users can access the values from any tab.
Store-context node
The "store-ctx" node stores the values into the context with the specified context type and key. If
the Time-To-Live (TTL) parameter is set, the value will disappear from the context after the given
time period. The time period value must be between 1 and 15811200 seconds (183 days).
Flow With this context type, you can store the values only from the current tab.
Global With this context type, you can store the values from any tab.
Tenant With this context type, all the environment users can store the values from any tab.
Delay node
The "delay" node delays each message passing through the node or limits the rate at which they
can pass. The message delay is set in milliseconds to the message. This option only applies if the
node is configured to allow the message to provide the delay interval.
The "Combine and OnChange" node are exclusively available only in "Visual Flow
Creator"
Parquet node
The "parquet" node converts the array format into parquet format and also it can read parquet
file to generate output as JSON array. The following payload types will be converted using this
node into array: buffer, base64 string or array of numbers. The following payload types will be
converted into parquet file: array of objects.
Combine node
The "combine" node combines several messages into one and then sends it by default as an
array of particular payloads. It also has the mode to combine multiple timeseries payloads into
one array too.
The function nodes are described in a simple scenario with the examples of:
Context nodes
Parquet node
Context nodes
The context nodes are used to store and read the values with the associated context type and
key. The supported context nodes are:
Store-ctx node
Read-ctx node
You can store and retrieve data from context variables using the specific nodes.
To store the values into the context using "store-ctx" node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette and "store-
context" node from the function palette to the working area. Connect the nodes in a flow as
1. shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
To read the values from the context using read-context node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette, "read ctx"
node from the function palette and "debug" node from output palette to the working area.
1. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
Parquet node
To get the array object into parquet format using parquet node, follow these steps:
From the node palette, drag and drop the following nodes with the respective palette to the
1. working area. Connect the nodes in a flow as shown below:
Inject node
Function node
Debug node
msg.payload = [{
bool: true,
num: 1
},
{
bool: false,
num: 2
}];
msg.schema = {
bool: {type: "BOOLEAN"},
num: {type: "DOUBLE"},
};
return msg;
Click "Done".
5.4 Overview
The analytics nodes are helpful to design flows which have array or time series data. The
maximum array input size is limited to 2000.
The "analytics" nodes and their respective functions in Visual Flow Creator are described in the
following sections:
The "timeseries splitter" node splits a message payload into several small messages, if the gaps
between any two time series is greater than the given interval.
Extrapolate node
The "extrapolate" node returns the input arrays or time series data. The return value also includes
the extrapolated datapoints.
Crest node
The "crest" node computes the crest factor for an inputted array values and time series data.
Kurtosis node
The "kurtosis" node computes the kurtosis for the input of array values and time series data.
Skewness node
The "skewness" node computes the skewness for the input of array values and time series data.
The "standard deviation" node computes the sample or population standard deviation for the
values referenced by the defined input parameter of the array or time series.
Variance node
The "variance" node computes the variance for the input of array values and time series data.
Derive node
The "derive" node calculates the derivative for the input of array values and time series data.
Integrate node
The "integrate" node computes the integral for the input of array values and time series data.
Interpolate node
The "interpolate" node interpolates the value referenced by one parameter of the time series
using linear or cubic spline interpolation.
FFT node
The "fft" node returns an array with the parameter values of the defined parameter, discarding
other time series information.
The "extract paramater" node returns array values which are defined to be extracted in the
parameter.
The "moving average" node calculates the moving average for the input of array values and time
series data.
Map node
The "map" node maps time series data values to new values.
Filter node
The "filter" node filters the given of array values and time series data based on the defined
parameter.
You can use analytics nodes to analyze and process time series data from Industrial IoT with
standardized analytics methods. The assignable parameters control the analytics node.
Example scenario
The owner of the logistics center of the smart city would like to view the energy consumption of
its cranes over different time periods: hour, day, week and month.
The previously created flow allows the power peaks of a crane to be identified.
Objective
Requirement
The crane is connected to Industrial IoT and collects the energy data.
The flow for determining the energy consumption of the cranes has already been created in
Visual Flow Creator.
Procedure
The step edges of the energy consumption acquired become flatter and reflect a consumption
profile that can be interpreted much more effectively based on a lower resolution.
The following graphic shows the graph without smoothed data:
The "storage" nodes and their respective functions are described in the following sections:
Postgres node
The "Postgres" node allows you to read and write the data from a Postgres database. You can set
the database queries in the properties of the node. The node delivers the result of the query in
msg.payload or in the configuration with optional query parameters in msg.queryParameters.
The parameters in the query must be specified as $fieldName. For more information, refer to
node-postgres-named.
Restriction
At the moment you cannot connect Cloud Foundry Backing Services Instances
with Visual Flow Creator.
You cannot access Cloud-Foundry based databases which belong to third party
services.
SFTP node
The "sftp" node allows you to read and write files from SFTP server. For more information, refer
to SFTP.
You can use the following operations:
List Directory: It will list the directory content and returns an array of the found files.
Get: It will get a file from the SFTP server as Buffer object.
Put: It will create the defined directory on the SFTP server in the specified working directory.
Delete File: It will delete a file from the SFTP server as per the specified filename.
Make Directory: It will create a directory on the SFTP server as per the specified working
directory.
Remove Directory: It will remove the defined directory and all sub-directories on the SFTP
server in the specified working directory.
Mongodb in node
The "mongodb in" node allows you to read data from a Mongodb database. For more
information, refer to Mongodb section.
You can use the following operations:
find: Returns the contents of the database.
The "mongodb out" node allows you to write the data in a Mongodb database. For more
information, refer to Mongodb section.
You can use the following operations:
save: Will update an existing object or insert a new object if one does not already exist.
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
In the "Operation" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
Array nodes represent function methods like filter, map, find and reduce for JavaScript arrays.
The "array" nodes and their respective functions are described in the following sections:
Find node
The "find" node will return the value of the first element of an array that fulfills the requirements
of the included testing function.
Reduce node
The "reduce" node reduces an array to a single value. The node will apply a function against an
accumulator and each element in the array (from left to right).
Map node
The "map" node modifies an array with the implemented function. As a result you will get a new
array.
Filter node
The "filter" node will return a new array that contains all elements that pass the conditions of the
implemented function.
A simple array is defined with a sine signal wave. The scenario is to filter and map values.
Objective
To filter the elements which are greater than 0 from an array and map them by adding an added
value of 100. Also, it is required to display the sine wave generated in the message payload.
Procedure
To connect the array node with the signal wave, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area:
Inject node
Generate node
Filter node
Map node
Debug node
Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
In the "Mode" section, you can select any one of the following options from the
dropdown menu.
In the "Period" section, you can select any one of the following options from the
dropdown menu.
In the "Basis unit" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
Click "Done".
Click "Done".
Network palette consists of "mqtt in" and "mqtt out" nodes. "mqtt in" node connects to an MQTT
broker and subscribes to messages from the specified topic. "mqtt out" node connects to an
MQTT broker and publishes messages. The important terms in the MQTT telemetry protocol are
described below.
Use MQTT nodes for productive use cases only or you can connect with
connectivity features. For more information on Connectivity, refer to
Connectivity.
These MQTT nodes are used with some limitations. For more information on
limitations, refer to Technical specifications.
MQTT nodes are not available for Region Europe 2 and for private deployment
options.
MQTT message
MQTT Client
An MQTT Client is a program or device that uses MQTT. A client always actively establishes the
connection to the broker. A client can perform the following functions:
Send messages with a defined subject ("Topic"), in which other clients might be interested, to
the MQTT Broker (Publish mechanism)
Subscribe messages which follow a certain topic (Subscriber mechanism) at the MQTT Broker
On-boarding process
Adhere with all the client's unique identifiers to connect with the client.
Only Visual Flow Creator admin can use "MQTT User Management" page.
MQTT Broker
An MQTT Broker is the central component of MQTT and can be a program or a device. The
MQTT Broker acts as an intermediary between the sending MQTT Client and the subscribing
MQTT Client. The MQTT Broker manages the topics including the messages contained therein
and regulates the access to the topics. The MQTT Broker has the following functions:
Visual Flow Creator provides you the own MQTT broker with address mqtts://vfc-
mqtt.starter.eu-central-int.external.mindsphere.io.
Topics
MQTT messages are organized in topics. A topic "describes" a subject area. The topics can be
subscribed to by the MQTT Clients (subscriber mechanism). The sender of a message (Publisher
mechanism) is responsible for defining content and topic when sending the message. The broker
then takes care that the Subscribers get the news from the subscribed topics. The topics follow a
defined scheme. They are similar to a directory path and represent a hierarchy.
The client can only subscribe on the topics and publish the topics that starts from
vfc//.
MQTT ports
MQTT defines an OASIS or ISO standard (ISO/IEC PRF 20922). Depending on the protocols used,
MQTT runs on different access ports. Visual Flow Creator offers the following ports:
8883: MQTT, encrypted
443: MQTT via WebSockets, encrypted
Architecture
The MQTT is a publish and subscribe protocol. This mechanism decouples a client sending
messages (Publishers) from one or more clients receiving the messages (Subscribers). This also
means that the "Publishers" know nothing about the existence of the "Subscribers" (and vice
versa). There is a third component in the MQTT architecture, the MQTT Broker. The MQTT Broker
is located between "Publisher" and "Subscriber". The MQTT Broker controls the communication.
The MQTT specification provides three service qualities for message transmission quality
assurance:
QoS "0": The lowest level 0 is a "fire'n'forget" method. This means that there is no guarantee
that the message will arrive at all.
QoS "1": The QoS level 1 ensures that the message ends up in the topic queue at least once.
The MQTT Broker acknowledges receipt of the message.
QoS "2": In the highest level 2, the MQTT Broker guarantees by multiple handshake with the
MQTT Client that the message is exactly filed once.
Last will
MQTT supports the "Last Will and Testament" feature. This feature is used to notify other MQTT
Clients if the connection to a MQTT Client has been disconnected accidentally.
Each MQTT Client can specify its last will while connecting to the MQTT Broker and notify the
MQTT Broker. This last will is built like a normal MQTT message, including topic, QoS and
payload. The MQTT Broker saves the last will. As soon as the MQTT Broker notices that the
connection with the MQTT Client in question has been abruptly terminated, the MQTT Broker
sends the last will as an MQTT message to all subscribers who have registered for the topic. In
this way, the subscribers also learn that the MQTT Client has been disconnected.
Keep-Alive
MQTT supports the "Keep-Alive" feature. This ensures that the connection is still open and the
MQTT Client and MQTT Broker are connected.
For the Keep-Alive, the MQTT Clients define a time interval and communicate it to the MQTT
Broker during their connection setup. This interval is the largest possible tolerated time period in
which the MQTT Client and the MQTT Broker may remain without contact. If the time is
exceeded, the MQTT Broker must disconnect.
That means that, as long as the MQTT Client periodically sends messages to the broker within
the Keep-Alive interval, the MQTT Client does not need to take any special action to maintain
the connection. However, if the MQTT Client does not send any messages within the Keep-Alive
interval, they must ping the MQTT Broker before the deadline expires. With this ping, the MQTT
Client signals to the MQTT Broker that it is still available.
When a message or a ping packet has been sent to the MQTT Broker, timing for the Keep-Alive
interval begins again.
Message persistence
If the connection to an MQTT Client is interrupted, the broker can cache new messages for this
client for later delivery.
Retained messages
The first time an MQTT Client subscribes to a topic, it usually gets a message only when another
MQTT Client sends a message with the subscribed topic the next time. With "Retained
messages", the subscriber receives the last value sent to the topic prior to its subscription
request, delivered immediately.
The "network" nodes and their respective functions in Visual Flow Creator are described in the
following sections:
Mqtt in node
The "mqtt in" node allows you to subscribe to the specified topic.
The "mqtt out" node allows you to publish the messages to MQTT broker. The following
properties are available for MQTT5 and Visual Flow Creator supports MQTT5.
Node
Description
property
User It allows to appear multiple times to represent multiple names and value pairs in the
Properties "Object" format
Response
It is used as the topic name for a response message in the "String" format
topic
Correlation It is used to identify the Response Message as per the "Request Message" received in
Data the "String" format
To subscribe the messages from the specified topic using mqtt in node, follow these steps:
From the node palette, drag and drop the "mqtt in" node from the network palette and two
"debug" nodes from the output palette to the working area. Connect the nodes in a flow as
1. shown below:
In the output section, you can select any one of the following options from the dropdown
menu.
Click "Done".
The subscription topic can include MQTT wildcards, "+" for one level, "#" for
multiple levels.
To publish the messages using mqtt out node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette and "mqtt
out" node from the output palette to the working area. Connect the nodes in a flow as
1. shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
In the output palette, you can select any one of the following options from the
dropdown menu.
Click "Done"
Link nodes allows you to create virtual connection between the flows which exists in any flow
tab.
The "link" nodes and their respective functions are described in the following sections:
Link in node
The "link in" node allows you to connect with other link out nodes which are connected with
other flows.
The "link out" node allows you to send messages to all connected link in nodes or to send a
response back to the link call node that triggers the flow. There are two types modes for "link
out" node:
Send to all connected link nodes
The "link call" node allows you to call a flow that starts with Link in node and sends a response.
The below given flows is an example for Link in, Link out and link call nodes are configured with
each other to send messages to all connected link nodes and return the message through link
call node based on the mode selected.
Double click on "link out" node to edit the properties and configure with "link in" node to
2. send message.
Enter the "Name".
Click "Done".
Double click on "link call" node to edit the properties and configure with "link in" node to
3. send message.
Click "Done".
From the node palette, drag and drop the nodes from the respective palette to the working
1. area. Connect the nodes in a flow as shown below:
Double click on "link out" node to edit the properties and configure the mode to "Return to
2. calling link node".
Click "Done".
Simatic Notifier nodes in Visual Flow Creator are integrated with Simatic Notifier application. With
these nodes you can raise, accept and clear the events in Simatic Notifier application.
Simatic Notifier nodes will notify the users with following event types based on the event priority:
Alert
Warning
Information
For more information about the Simatic Notifier, refer to SIMATIC Notifier.
To use these nodes, Simatic Notifier app should be subscribed and available on the
Launchpad.
The "simatic notifier" nodes and their respective functions in Visual Flow Creator are described in
the following sections:
Raise event node
The "Raise event" node allows you to raise the event in Simatic Notifier application.
To execute the example flow using raise event node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette, "raise event"
node from the simatic notifier palette and "debug" node from the output palette to the
1. working area. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Double click on "raise event" node to edit the properties and select the asset and event
3. type.
Enter the "Name".
In the "Type" section, you can select any one of the following options from the dropdown
menu.
Click "Done".
The "accept event" node allows you to accept the raised event using "Notification ID".
To execute the example flow using accept event node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette and "accept
event" node from the simatic notifier palette to the working area. Connect the nodes in a
1. flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Select the "Payload (string)" as "Pump overheating".
Click "Done".
The "clear event" node allows you to clear and archive the accepted event using "Notification ID".
To execute the example flow using clear event node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette and "clear
event" node from the simatic notifier palette to the working area. Connect the nodes in a
1. flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Select the "Payload (string)" as "Pump overheating".
Click "Done".
You can download Simatic Notifier app from Google Play store and Apple App Store to receive
the event notification on your mobile phone by accessing the app with the permission.
The "mindconnect" nodes can write the values of the datapoint, send a command to
MindConnect MQTT device and check the status of the sent command. For more information
about MindConnect Elements, refer to Connectivity.
The "mindconnect" nodes and their respective functions are described in the following sections:
Write mindconnect node
The "write mindconnect" node allows you to write a plain value to a datapoint of the onboarded
MindConnect device.
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Enter the "Name" as "127".
Double click on "write mindconnect" node to edit the properties and select the device,
3. datasources and datapoints to update the value.
Enter the "Name".
The "command mindconnect" node allows you to send a command to a MindConnect MQTT
device.
From the node palette, drag and drop the "inject" node from the input palette, "function"
node from the function palette, "command mindconnect" node from the mindconnect
palette and "debug" node from the output palette to the working area. Connect the nodes
1. in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
3. Double click on "function" node to edit the properties and enter the values.
Code:
msg.payload = {"testprop5": "first"}; return msg;
Click "Done".
The "command mindconnect status" node allows you to get the status of a commanding job
(MindConnect MQTT device).
To execute the example flow using command mindconnect node, follow these steps:
From the node palette, drag and drop the "inject" node from input palette, "command
mindconnect status" node from mindconnect palette and "debug" node from output palette
1. to the working area. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
The "work order" nodes are basic workflow nodes to digitize work requests (such as
maintenance, repair, inspection and incident handling) that are essential to monitor asset health
and to detect technical issues before they lead to asset failure and downtime. You can create,
track and update work orders in multiple ways with Visual Flow Creator application. For more
information about "work orders", refer to the chapter Work orders in Insights Hub Monitor
documentation.
The "Work orders" nodes and their respective functions are described in the following sections:
List work order node
The "list work order" node allows you to list all the work orders created in the environment. If no
handle information is given, you can read the specific work order by using handle ID.
Handle ID is for user environment that describes the work order for further updates.
To execute the example flow using list work order node to list the available work orders, follow
these steps:
From the node palette, drag and drop the "inject" node from the input palette, "list work
orders" node from the work order palette and "debug" node from the output palette to the
1. working area. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
The "create work order" node allows you to create the work order created in the environment.
Node
Description
Properties
Assign the task or expectation to the responsible assignee to work on the task. Assignee
Assigned to
will be notified with an email.
Due date Set the date as deadline for the task or expectation to be completed.
Node
Description
Properties
Update the task or expectation status while creating the work order. Open, In Progress,
Status On Hold, Overdue and Done are the different statuses of the task or expectation can be
assigned.
Prioritize the task or expectation based on the level of priority. Low, Medium, High and
Priority
Emergency are the available priority options.
Define the reason behind the initiation of the task or expectation. Planned and Incident
Type
are the options available types.
Associated
Associate the work order with an asset.
asset
Attachment Attach the document to capture or work to be done on the task or expectation.
From the node palette, drag and drop the "inject" node from the input palette, "create work
order" node from the work order palette and "debug" node from the output palette to the
1. working area. Connect the nodes in a flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
The "update work order" node allows you to update the created work order in the environment.
Node
Description
Properties
Handle Enter the work order ID to which describes work order for the user environment.
Assign the task or expectation to the responsible assignee to work on the task. Assignee
Assigned to
will be notified with an email.
Due date Set the date as deadline for the task or expectation to be completed.
Update the task or expectation status while creating the work order. Open, In Progress,
Status On Hold, Overdue and Done are the different statuses of the task or expectation can be
assigned.
Prioritize the task or expectation based on the level of priority. Low, Medium, High and
Priority
Emergency are the available priority options.
Define the reason behind the initiation of the task or expectation. Planned and Incident
Type
are the options available types.
Associated
Associate the work order with an asset.
asset
Node
Description
Properties
Attachment Attach the document to capture or work to be done on the task or expectation.
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
The "delete work order" node allows you to delete the existing work order from the environment.
To execute the example flow using delete work order node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette and "delete
work order" node from the work order palette to the working area. Connect the nodes in a
1. flow as shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
Predictive Learning combines analytics, statistics and machine learning algorithms to provide
unmatched insight into trends in your data. Combining predictive technology with IoT, service,
field, and other data streams allows you to generate a deeper impact on the customer
experience. Leveraging as-used data to identify patterns and sequences of events, companies
can engage with customers and resolve potential issues before problems arise.
In Visual Flow Creator, Predictive Learning (PRL) nodes allows you to create, list and re-run the
jobs by integrating with Predictive Learning application.
The "PRL" nodes and their respective functions in Visual Flow Creator are described in the
following sections:
The "list prl resources" node lists all the available resources in Predictive Learning and stores the
data in the message payload.
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
In the "Resource type" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
The "create PRL job" node allows you to create a new job in Predictive Learning through VFC and
stores the data in the message payload. The status of the created job can be monitored via
debug messages and Predictive Learning application. After the job is completed, object will be
sent with all the internal information about completed job details.
1.
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
In the "Storage Type" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
You can also check the progress of the newly created job in Predictive Learning application.
5.15 Overview
The "Industrial IoT" nodes and their respective functions are described in the following sections:
The "read file" node reads files from Industrial IoT and outputs the file contents. This node is used
to send the file contents as a message (only for non-binary files).
The "write file" node writes a file and links it to a certain asset.
This node is used to:
Write the received message as file contents to a file.
Define the mime type of the file using "Predefined type" element.
The "list files" node reads all file names for one asset as an array. This node is used to list all files
of an asset.
Properties Description
Properties Description
Offset Enter the offset number to skip the specified number of the files from the list.
Apply the filter to the files from the list. Click to add the filter. Files can be filtered by
Filter name, path and updated field. The updated field will be converted into an ISO date string.
For more information on filtering IoT file services, see IoT File Service.
The "delete file" node deletes the file of an asset from Industrial IoT. This node is used to delete
the file of an asset.
The "read aggregates" node reads aggregates by using the aggregate or time series API from
Industrial IoT.
You use this node to:
Read aggregated interval data for specific interval.
Allows applications to retrieve smaller data sets that cover a longer period of time with much
better performance than processing all of the raw time series data.
Requirements:
Asset, aspect, variable must exist in Industrial IoT.
Entity Id, the property set name, a time range, and a requested aggregation interval of the
application.
Configurable
Description
properties
API In this property, you can configure using the aggregate API or the timeseries API.
Configurable
Description
properties
In this property, you can configure the interval unit using the possible values like
Interval Unit
minute, hour, day, week and month. (applicable for aggregate API only)
Interval In this property, the value depends on the selected interval unit. (applicable for
Value aggregate API only)
In this property, you can specify the count of the result aggregates. (applicable for
Count
aggregate API only)
Period: In this mode, you need to set the period from the past to now.
For more information on API specifications, refer to IoT Times Series Aggregates Service API.
The "read timeseries" node reads time series data from Industrial IoT.
You use this node to:
Further process or convert data using a function or analytic node.
Mode Description
In this mode, you need to set the interval with "From" and "To" timestamps and timezone.
Interval
The dates can be passed as an ISO string or as a date object formats.
Period In this mode, you need to set the period from the past to now.
Mode Description
From last In this property, the value depends on the selected interval unit. (applicable for aggregate
execution API only)
Requirements:
The "write timeseries" node writes time series data to Industrial IoT.
You use this node to:
Write unprocessed data to Industrial IoT.
Update the existing time series data by activating "Use merging" option. For example, you can
update the aspect value without changing the variables.
Requirements:
Asset, aspect and a variable must already exist in Industrial IoT.
The "write timeseries" node overwrites all data and values of an existing
timestamp. With this write operation, all variables of an asset or aspect for the
respective timestamp are updated and overwritten. The "write timeseries" node
overwrites existing data of variables that are not taken into consideration with
zero.
The write operations can take some time. The written time series data cannot be
read immediately after they are written - especially the generation of aggregations
can take longer time. The written data could appear delayed (up to 15 minutes).
The "subscribe timeseries" node subscribes time series data from Industrial IoT.
You use this node to:
Get notifications of new incoming time series data in order to perform tasks.
Requirements:
Asset, aspect and a variable must exist in Industrial IoT.
Once the subscription is created, it can take up to 15 minutes for the service to start working.
The "asset type" node makes it possible to read data from multiple assets which belong to the
same asset type.
You use this node to:
Get multiple messages with topic properties defining assets which belong to a particular asset
type. The topic property messages can be directly forwarded on the input pin of read
timeseries node.
Requirements:
Asset type, asset, aspect and a variable must exist in Industrial IoT.
The "read aspect static" node reads the static variables from the aspects.
Requirements:
The "write aspect static" node updates the static variables in the aspects.
Requirements:
The "read asset static" node reads the static variables from the asset.
The "write asset static" node updates the static variables in the asset.
The "asset health" node updates the status of the asset health. The asset health status can be
viewed in the info tab of Insights Hub Monitor.
Requirements:
Aspect in the asset must already exist in Industrial IoT.
The "rules trigger" node gets triggered by the Insights hub rules engine.
The "read events" node reads event data from Industrial IoT. This node is used to evaluate
existing events for an asset, enable statistical analyses, and check the status of events. The dates
can be passed as an ISO string or as a date object formats.
The "send email" node sends an email to one or more recipients. This node is used to send
notifications to the user about important events and attach files stored in an asset.
From the node palette, drag and drop the "inject" node from input palette, "read file" node
from Industrial IoT palette, "function" node from function palette and "send email" node
from Industrial IoT palette to the working area. Connect the nodes in a flow as shown
1. below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Click "Done".
msg.attachments = {
content: msg.payload, filename: 'example.zip'
};
return msg;
Click "Done".
Click "Done".
Users of Visual Flow Creator are responsible for the content of all emails that are
sent using the "send mail" node.
The "send SMS" node sends a message to receive the notification directly on the mobile phone.
From the node palette, drag and drop the "inject" node from the input palette and "send
SMS" node from Industrial IoT palette to the working area. Connect the nodes in a flow as
1. shown below:
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
Enter the "Payload (string)" as "Dear Customer, Welcome to VFC".
Click "Done".
Generate node
The "generate" node generates basic time series data and combines them. The "generate" node
supports the creation of complex signals.
You use this node to:
Example scenario
A new logistics center is being set up in the smart city. The power consumption (Kilowatt hour) of
the cranes is acquired in Industrial IoT. The cranes are not operated continuously. The smart city
has its own power generation through wind turbines, photovoltaics and heat pumps.
Objective
The owner of the logistics center would like to calculate the energy consumed by the crane
operation in order to better estimate its cost accounting of energy consumption. The owner
would like to know whether a change to another energy provider is worthwhile. The following
detailed data regarding the energy consumption of the cranes is needed for this:
Magnitude of the share of the base load.
Requirement
The crane is connected to Industrial IoT and collects the energy data.
The energy production of the different energy suppliers of the smart city is acquired in
Industrial IoT.
Procedure
From the node palette, drag and drop the nodes from the respective palette to the working
1. area. Connect the nodes in a flow as shown below:
In the "Mode" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
Example scenario
The smart city has its own energy generation through wind energy. In the event of a storm,
certain measures must be taken, for example implementation of a plan for maintaining the
energy supply through other sources or temporary reduction of energy demand.
Objective
The smart city would like to send an email to its executives in the event of a storm warning.
Requirement
An automatable check of weather data, for example through an API call of a weather service.
You have created the basic flow for a weather web service. For more information about the
basic flow, refer to Create a basic flow.
Procedure
To send an email, follow these steps:
From the node palette, drag and drop the nodes from the respective palette to the working
1. area. Connect the nodes in a flow as shown below:
Double click on the "inject" node from the input palette to edit the properties. For more
2. information, refer to Editing nodes.
Click "Done".
In the "Mode" section, you can select any one of the following options from the
dropdown menu.
In the "Priority" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
The information supplied by the weather web service is converted to an object structure in the
"json" node in order for the information to be processed in the "function" node.
The "function" node uses a script to check for a storm warning in the list of weather data. The
"send email" node sends an email to the executives in the event of a storm warning.
Example Scenario
The maintenance team of a turbine company needs to regulate the pressure and temperature of
the existing assets in the organization.
Objective
The maintenance team needs to read all data from the existing assets so as to know if the
readings of all the assets are in control and operating properly.
Let us try to display the data of the assets from the given asset list - one at a time.
Requirements
A timestamp input
Message payload
Procedure
To read the data of the assets, follow these steps:
From the node palette, drag and drop the nodes from the respective palette to the working
1. area. Connect the nodes in a flow as shown below:
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
You can also deselect assets from the "asset type" node pop-up by using the "Exclude"
feature. Click the "Exclude" checkbox and select the assets for which data readings are not
to be included.
Click "Done".
Example
The maintenance team of a turbine company needs to update the health status of the existing
assets in the organization. The asset health status can be viewed in Insights Hub Monitor.
Objective
The maintenance team needs to check the health status of an asset and update it using asset
health node.
Procedure
To update the asset health status from the previous health status to current health status, follow
these steps:
From the node palette, drag and drop the "inject" node from the input palette and "asset
status" node from the Industrial IoT palette to the working area. Connect the nodes in a
1. flow as shown below:
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
In the "Health status" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
Business Intelligence is a powerful add-on application, that allows creating custom visualizations
of your data. You can integrate data from different assets, files or queries in a single dashboard
and apply custom calculations, filters or aggregations.
Business Intelligence nodes allows you to list, delete and create or update the datasources in
Business Intelligence. For more information, refer to Business Intelligence Getting Started
documentation.
Business Intelligence nodes allows you to list, delete and create or update the
datasources in Business Intelligence. For more information, refer to Insights Hub
Business Intelligence documentation.
To enable these Business Intelligence nodes in Visual Flow Creator, you need to log
in Business Intelligence application at least once.
The "insights hub bi" nodes and their respective functions in Visual Flow Creator are described in
the following sections:
List datasources node
The "list datasources" node allows you to list all the datasources from Business Intelligence and
display the data in the message payload.
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
Click "Done".
The "config datasource" node allows you to create or update a datasource in Business
Intelligence.
From the node palette, drag and drop the "inject" node from input palette, "config
datasource" node from insights hub bi palette and "debug" node from output palette to the
1. working area. Connect the nodes in a flow as shown below:
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
In the "Model" section, you can select any one of the following options from the
dropdown menu.
In the "Project" section, you can select any one of the following options from the
dropdown menu.
In the "Type" section, you can select any one of the following options from the dropdown
menu.
In the "Acquisition" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
The "delete datasource" node allows you to delete a datasource from Business Intelligence.
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
In the "Datasource" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
Integrated Data Lake (IDL) and Data Contextualization (Data ctx) nodes provides a simple way to
prepare data for establishing semantic correlations and data query processing.
Integrated Data Lake nodes allows you to list, read, write, delete, subscribe and query the files or
objects from Integrated Data Lake.
The "idl and data ctx" nodes and their respective functions in Visual Flow Creator are described in
the following sections:
The "list objects" node lists the files or objects from Integrated Data Lake and stores the data in
the message payload. Additionally, you can filter the files or objects by "Sub-tenant" property. It
is possible by the main environment.
The "read object" node reads the file or object content from the specified path and place(s) the
content in the message payload. The mode parameter defines the type of content to be read
from the file or object. The read object mode parameters are given below:
Object: Reads only the content of the file or object.
The "Write object" node writes or updates the file or object to the specified path and place(s) the
content in the message payload The mode parameter defines the type of content to be updated
to the file or object. The write object mode parameters are given below:
Object: Writes only the content to the file or object.
The "delete object" node deletes the files or objects from the specified path. You must select the
path from the "Select File" dialog box.
If the files or objects is deleted then the metadata will also be deleted.
The "subscribe object" node will notify the modifications that took place in the specified path. The
path should be specified in the edit properties dialog box to receive the notification in the
message payload. For example, the message object is shown below:
The "data ctx query results" node allows you to get results from Data Contextualization queries.
If you select a query id, the node will return the latest result for both static and dynamic queries.
If you select an execution job id, the node will return the result for the defined execution job.
Either the query id or the execution job id has to be defined.
The "data ctx execution job" node allows you to create a Data Contextualization execution job for
dynamic queries.
The "data ctx create query" node allows you to create a Data Contextualization query. You can
either create dynamic or static queries.
The "data ctx ingest status" node allows you to get the status of Data Contextualization ingest
jobs. You can query the list of all ingest jobs or a single one.
For more information about queries and execution jobs, refer to Data Contextualization.
You can read the files or objects of the turbo engine assets by using "read object" node from
Integrated Data Lake. The extracted data can be used for further analysis as per customer's
requirement.
Procedure
To read the object content from Integrated Data Lake, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette, "read object"
node from the IDL and Data ctx palette and "debug" node from the output palette to the
1. working area. Connect the nodes in a flow as shown below:
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
In the "Mode" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
Path should be specified for the "List object" and "Subscribe object" nodes.
Select the path from the "Select File" dialog box for the "Read object", "Write
object" and "Delete object" nodes from the file browser dialog box.
Mode defining is applicable for "Read object" and "Write object" nodes.
In this example the "read object" node reads the file or object from the selected path and
displays the data in the message payload.
To use the Data ctx nodes with Integrated Data Lake, follow these steps:
Create a data registry in Data Contextualization. For more information, refer to Creating the
Data Registry.
Once the data registry is created, upload the data to Integrated Data Lake. For more
information, refer to Uploading a file in Integrated Data Lake.
Visual Flow Creator can now use data ctx nodes to execute the following tasks:
Create a query
Execute queries
Ingest status
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
3. Double click on the "data ctx create query" node to edit the properties:
Enter the "Name" as "My new query".
Click "Done".
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
3. Double click on the "data ctx execution job" node to edit the properties.
Enter the "Name" as "execution job for WELLINGTON".
Click "Done".
To execute queries using "data ctx query results" node, follow these steps:
From the node palette, drag and drop the "inject" node from the input palette, "data ctx
query results" node from the IDL and Data ctx palette and "debug" node from the output
1. palette to the working area. Connect the nodes in a flow as shown below:
Double click on the "inject" node from the input palette to edit the properties. For more
2. information, refer to Editing nodes.
3. Double click on the "data ctx query results" node to edit the properties.
Click "Done".
From the node palette, drag and drop the "inject" node from the input palette, "data ctx
ingest status" node from the IDL and Data ctx palette and "debug" node from the output
1. palette to the working area. Connect the nodes in a flow as shown below:
Double click on the "inject" node from the input palette to edit the properties. For more
2. information, refer to Editing nodes.
3. Double click on the "data ctx ingest status" node to edit the properties.
Enter the "Name" as "data ctx ingest node".
Click "Done".
The "pump" node allows to generate the time series data of a simulated water pump. The two
modes in water pump simulation provides the following function:
Whole scenario simulation
In this simulation mode, each trigger generates time series for the desired past time. It generates
one time series object for each second. You can choose the scenario length in the configuration
or specify the desired scenario using the property message.scenario.
In this simulation mode, each trigger generates time series that fill the gap in the last execution,
but not longer than 30 minutes (1800 time series). You can specify the next scenario by sending
message with the property scenario. The simulation accepts the next scenario but does not send
any message.
In F&B industry, pumping liquids is one of the most frequent operations. Disturbance in pumps
can cause interruptions in production process and downstream supply chain. If many pumps are
in operation, then localizing the error and correction causes unplanned maintenance and costs.
Usage of Industrial Internet of Things during pump operation enables to minimize down times
and keep the production running constantly.
Simulating water pump node generates the time series data with three different scenarios like
standard, plugging before pump and plugging after pump.
Objective
To monitor the pump installed on the bottling line in a brewery and connected to Industrial IoT.
A pump consists of two valves (one before and one after), the pump and a fluid-flow meter as
shown in the figure above. The pump is connected to a Siemens SIMATIC IoT2040 and collects
the following data points: pressure before the pump (between the left valve and the pump),
pressure after the pump (between the pump and the right valve), motor current of the pump,
temperature of the motor (stuffing box) and percolation measured by the fluid-flow meter.
Pump node
Map node
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
Payload: timestamp
4. Double click on the "standard scenario inject" node to edit the properties.
Name: pluggingBeforePump
5. Double click on the "pluggingAfterPump scenario inject" node to edit the properties.
Name: pluggingAfterPump
6. Double click on the "pluggingBeforePump scenario function" node to edit the properties.
Code: msg.scenario = 'pluggingBeforePump'; return msg;
Double click on the "pluggingAfterPump scenario function" node to edit the properties. - -
7. Code: msg.scenario = 'pluggingAfterPump';return msg;
Asset: Click to select an existing pump asset or create a new pump asset and click
"OK".
Using "Create New Asset" button, you can create an asset for the pump in Industrial IoT.
Name: Motor_Current
Pump node
Connect the nodes in a flow as shown below:
Double click on the "inject" node to edit the properties. For more information, refer to
2. Editing nodes.
Payload: timestamp
4. Double click on the "standard scenario inject" node to edit the properties.
Name: pluggingBeforePump
5. Double click on the "pluggingAfterPump scenario inject" node to edit the properties.
Name: pluggingAfterPump
6. Double click on the "pluggingBeforePump scenario function" node to edit the properties.
Double click on the "pluggingAfterPump scenario function" node to edit the properties. -
7. Code: msg.scenario = 'pluggingAfterPump';return msg;
Asset: Click to select an existing pump asset or create a new pump asset and click
"OK".
The custom nodes helps to design and deploy your own customized nodes if any of the required
nodes are not available in Visual Flow Creator.
Custom nodes are initially not available in the node palette with all the nodes in VFC. You need
to create them first and then deploy. Thereafter, they will be automatically integrated in the
palette.
Custom nodes can access to context variables with limited for local and flow-
context whereas global and environment context variables are not accessible.
Visual Flow Creator is composed into multiple components which are required for developing
custom nodes. They are:
Editor component ("editor"): While deploying the custom node modules, files are
populated to the editor. The frontend resources (HTML files, icons, language files) of the
editor are delivered to the users' browser by integrating them in the requests, against
which responses are generated.
Runtime component ("runtime"): The runtime is responsible for executing the flows by
executing the backend code of each node. The runtime can access all provided files
(HTML files, icons, Javascript files, etc.). When a node gets triggered, the message sent to
the node is forwarded to the runtime which starts thereafter. The runtime executes the
code and forwards the debug and status messages to the editor. It also forwards
messages to the next connected nodes.
The number of messages which a custom node can send / forward is restricted to
20 messages per execution.
You can create custom nodes at your convenience and then can use the nodes to design flows in
the Visual Flow Creator.
The nodes have the possibility to integrate both frontend and backend functionalities. In special
cases, the custom nodes they can use backend functionality if the functionality is provided by the
user but cannot call custom backend functionalities.
1. Open the menu button from the top right corner of the Visual Flow Creator screen.
① Actions buttons
② Custom component window
③ Custom component details
④ Close / reload after uploads buttons
Only users with the mdsp:core:vfc.admin permissions are allowed to access the
custom nodes configuration screen.
4.Browse to upload the relevant zipped custom node content file which can contain multiple
nodes. The file should be zipped and should have two or more files.
Configurations for Custom Nodes:
The zip archive should have three mandatory files - HTML node file, javascript file and the
package.json file.
You can include other files in the zip archive like:
Icon: The icons have to be in a directory called "icons".
Language: The language files have to be in a directory called "locales/", for example
"locales/en-US".
The zip archive can also have multiple HTML node files.
The zip archive structure looks as shown below:
Language: The language files have to be in a directory called "locales/", for example
"locales/en-US".
The zip archive can also have multiple HTML node files.
Upload time: The field displays the current date and timestamp of the upload.
5.Click the "Close and reload" button at the top right corner to load the custom node. This
displays the created node/(s) to Visual Flow Creator node palette.
Some of the node-red nodes available on the internet may have dependencies.
The zip archive structure looks as shown below:
Result
The custom node is created with the chosen name under the designated section you have
defined in the html file.
Ready-to-use nodes
They can be cloned or downloaded from Github. Download repo and the zip archieve can
be uploaded without modifications into custom nodes dialog. Example, Node-RED nodes
for Google Cloud Platform and press on "Clone or download" and then "Download ZIP".
Example scenario
Create a custom node to design flows where text inputs are displayed in upper case.
Objective
To convert a message payload into upper case characters.
Pre-requisites
Create a directory having the following files:
Procedure
Connect an input node and input your string in the properties section. Connect the
2. "Capitalize" node with a message payload as shown below:
Result
The output is displayed in the message payload:
Example scenario
A management team wants to read data from AWS S3.
Objective
To view the detailed event information including the actions and resources which the developers
require.
Pre-requisites
Go to the website: Node-RED nodes for AWS.
Clone or download the repository and include all the files in the zip archive. Create a custom
node "AWS" in the custom nodes page by browsing the zip archive.
Procedure
Select the "AWS S3" node from the "AWS" section. Edit the node in the properties if required
1. by setting its operation to "GetObject".
Connect the "S3 GetObject" node and attach the timestamp input and the message payload
2. outputs as shown below:
In this example, the node is configured in a way to pass correct data in one payload and
throw error in the other if any. Hence, in the message payload, you get only one of the
output results.
Result
The output will be visible in the message payload. As mentioned, the output would either be real
data or an error.
Example scenario
Consider a new REST API example: TODO List. Click Todo List Rest API to view the complete list.
Objective
To get the TODO list from free REST API. This will display a list of users with their task list.
Pre-requisites
Create a custom node "todo" in the custom nodes page by browsing the zipped node file.
For your reference, the HTML code for "todo" is given below:
??? Code html <script type="text/x-red" data-template-name="todo"> <div
class="form-row"> <label for="node-input-todoId"><i class="fa fa-tag">
</i> <span data-i18n="common.label.name">Todo ID</span></label> <input
type="number" id="node-input-todoId" placeholder="Leave blank to get a
ll entries"> </div> </script> <script type="text/x-red" data-help-name
="todo"> <p>Gets todo list using the jsonplaceholder free API.</p> </s
cript> <script type="text/javascript"> RED.nodes.registerType('todo',
category: 'service nodes', color: '#C0DEED', icon: 'todo.png', default
s: { todoId: {value: '', required: false}, requestParams: { value: { u
rl: 'https://jsonplaceholder.typicode.com/todos' } } } inputs: 1, outp
uts: 1, icon: 'c.png', label: function() { return 'todo'; }, paletteLa
bel: 'todo', oneditprepare: function() { }, oneditsave: function() { t
his.requestParams.url = 'https://jsonplaceholder.typicode.com/todos/'
+ todoId; } }); </script>
HTML files follows the Node-RED format, except for request params which is
shown in the above HTML code.
{
"name": "todo",
"version": "1.0.0",
"description": "this is a node which shows some todo items",
"main": "index.js"
}
In this case, a custom node "todo" is created under the secton "service nodes" in the node
palette of Visual Flow Creator.
Procedure
Connect the "todo" node and attach the timestamp input along with a message payload
output. Edit the "todo" node in the properties if required. Refer to "Create custom nodes"
2. section to view the HTML code.
Result
The output will be visible in the message payload:
The dashboard nodes provide a set of nodes for reading, visualizing and analyzing data on a live
dashboard.
Dashboard layouts
The tabs in the sidebar help you to re-order the groups and widgets in the dashboard layout.
You can also add and edit new tabs and groups to the dashboard layout.
Node properties
To configure the dashboard nodes, drag and drop the required node to the working area and
double click the respective node to configure. Some of the important properties are described
below:
Tab: Tab is created under the dashboard layout. You can add and edit groups and edit the
group properties under the tab. You can add or edit multiple groups in the tab.
In the "Readings" tab, you can add one or more groups like "Gauges" and "Form".
Groups are displayed next to each other (in case more than 1 group is configured).
Name the UI group. Thereafter configure the tab by selecting "Add new ui_tab" from the
drop-down menu.
The tab and group of the node will be now configured. You can also create groups in the
sidebar. For more information, refer to Create groups in sidebar.
Access: Choose the option "Show in Dashboard Viewer and OI" or "Do not show in
Dashboard Viewer and OI":
Show in Dashboard Viewer and OI: The dashboard will be displayed in "Dashboard
Viewer" and "Insights Hub Monitor".
Do not show in Dashboard Viewer and OI: The dashboard will not be displayed in
"Dashboard Viewer" and "Insights Hub Monitor".
OI access:It is allowed to display the dashboard for an asset or asset type in "Insights Hub
Monitor". For more information, refer to Dashboards chapter in Insights Hub Monitor.
The “Default page” will display the dashboard on the selected tab within the tenant.
Size: The grid layout defines the height and width of the widgets as the size of the group.
By default, 'auto' is defined as the group size, but you can always set the size to a fixed
number of units according to requirements. To understand the size configuration refer to
Example on size configuration.
Type: This is an optional property wherein you can select the working type to design a
node.
Label/ Name: This is an optional property. The label can be defined with a new name
which will be displayed as the name of the node to the user.
Color: This is an optional property. You can set the icon color that will be displayed in the
output.
Background: This is an optional property. You can set the background color as per
requirements.
Range: This is an optional property. You can define a range by setting minimum and
maximum values.
Topic: The topic field can be used to set the msg.topic property that is output.
Check boxes:
If message arrives on input and pass through output: This sets the value as true. For
more information, refer to Example on message input passing to output.
Only one browser: This is selected for a node in a flow, the node will handle each of the
dashboards separately. For each browser, the communications originating from the
node will be exclusively handled.
If "Only one browser" is not selected, the node will share all the dashboard
communication with every open browser from that user. For more information, refer to
Example on usage of one and multiple browsers.
The link in the dashboard tab helps you to add the links to the dashboard. Also, you can edit the
properties to assign a link to display or access from the dashboard. Some of the important link
node properties are described below:
Icon: Enter the name for the icon of the link node properties
Open in: Choose "New Tab" or "This tab" to open the link in the new or current browser.
Show in the sidebar of dashboard opened from Dashboard Viewer: It is a check box option, to
access the link from the sidebar of the dashboard while opening from "Dashboard Viewer".
If you uncheck the box, the link from the sidebar of the dashboard while opening
from "Dashboard Viewer" will not visible. But it will be visible in the list of sidebar
while accessing from Visual Flow Creator dashboard.
Access: Choose the option to "Show in Dashboard Viewer" or "Do not show in Dashboard
Viewer".
Icon: Upload an image for the link node to display it in "Dashboard Viewer", if required.
Once a flow is created, save it to deploy. Click the menu button and then select "Open
dashboard".
A separate browser tab will open where you will be able to view the dashboard.
You will be redirected to "https://visualflowcreatorURL.yyy.mindsphere.io/ui/dash/?
[email protected]#/0".
You can open the dashboard of another user in his environment by defining
[email protected].
The tab menu will be visible on the left of the dashboard UI.
The user's dashboards are automatically available for another tenant's user.
You can select "Hide title bar" to hide the application title bar in dashboard tab node properties.
In this case, dashboard tab menu is not available to change the tabs. You can hide the
application title bar to increase dashboard view.
You can configure the layout of the dashboard by using the "dashboard" view on the sidebar. To
learn more about configuring tabs and groups using sidebar, refer to Configuration of dashboard
nodes in sidebar.
Select the required tab in the left panel to view the dashboard flow you have created.
To learn more about tab and group creation, refer to Create dashboard groups in the "Node
properties" section.
For more information about how to get started with a dashboard in VFC, refer to VFC
Dashboard - A Getting Started Example.
The dashboard nodes are available in Visual Flow Creator to edit the node properties as per the
requirements. You can set the state of dashboard widgets by sending messages to the
corresponding nodes. You can read or react to values set by users of the dashboard by
appending nodes to the outputs of the dashboard nodes.
Industrial IoT is not responsible for the complex dashboard nodes adopted from
third party like Vega, Heat map, etc. For more information about the third party
dashboard nodes, refer to their official websites.
Button node
The "button" node will generate a message with payload and topic defined in node settings. By
default, the button sends a string with message id as payload. Clicking the button results in
generating the message loaded in the payload.
The size, color and label of the button is edited to design a useful flow. The following graphic
shows the output of button node in the dashboard window.
Dropdown node
The "dropdown" node allows you to define multiple possible data values and select one of them.
Supported data types are string, number and boolean.
You can customize the dropdown menu by editing the node properties. The "options" field in the
node properties allows you to add the required options to design the dropdown menu. The
following graphic shows the output of dashboard node in the dashoard window.
Switch node
The "switch" node returns any kind of value (string/ number/ boolean/ json) when it changes
state.
The following graphic shows the output of switch node in the dashboard window. The switch
node is defined with two switches, one in the "off" mode and the other in the "on" mode.
Slider node
The "slider" node allows you to set the value of the horizontal slider by sending a message to the
node. You can react to a user's change to a slider by listening to the output message of the
slider node. In order to both set the value and react to the new value, you can select "If msg
arrives on input, pass through to output" in the node properties. A slider is defined in terms of
the following parameters:
A minimum value
A maximum value
A step value
Input messages are converted to a number. The minimum value is used if conversion fails, and
this will update the user interface or dashboard window. If the value changes, it will be passed to
the output.
The following graphic shows the output of slider node in the dashboard window.
Numeric node
The "numeric" node allows you to use the numeric node to define a range of values in steps with
a minimum value and a maximum value.
The following graphic shows the output of numeric node in the dashboard window.
The "text input" node allows you to add a text input to the dashboard window. The text input
node supports the following modes:
Regular text
Email address
Password
Number
Telephone input
Color picker
Time picker
Week picker
Month picker
-The following graphic shows the output of text input node in the dashboard window. The text
input node is defined with the label "Enter your name here".
The "date picker" node allows you to pick dates from the widget.
The following graphic shows the output of date picker node in the dashboard window. The date
picker node is defined with the label "Departure date".
The "colour picker" node uses the color selector of the system and returns the color in rgb, hex,
hex8, hsv or hsl format. Transparency is also supported for all except hex.
The following graphic shows the output of colour picker node in the dashboard window. The
colour picker node is defined with the label "Add colour". Click the color box and a dropdown to
choose color will appear. You can then choose the required color.
Form node
The "form" node helps you to accumulate multiple form elements and then submit them on a
single click as an object.
The following graphic shows the output of form node in the dashboard window. The form node
is defined with the label "Registration form". You can edit the node properties of the "form" and
design the form in the "form elements" section according to requirements.
Text node
The "text" node is a read-only widget where you can configure the label and value.
The following graphic shows the output of text node in the dashboard window. The text node is
defined with the label "Your address". You can customize the text box label for a read-only
message.
Gauge node
Donut
Compass
Level
You can define the ranges with different colors for the gauge nodes.
The following graphic shows the output of gauge node in the dashboard window. The "gauge"
dashboard widget can be customized to appear as one of four possible types.
Chart node
Bar
Pie
Chart nodes are helpful for multiple data readings. Charts are useful for representations and
comparisons of numeric and quantitative information.
The following graphic shows the output of chart node in the dashboard window.
Notification node
In the following example, the notification is configured to be displayed on the bottom right. You
get the following message in the dashboard window:
UI control node
The "ui control" node allows some dynamic control of the dashboard. Sending a msg.payload of
the tab number (from 0) or tab_name will switch to that tab. It refreshes the current opened
page if the message contains an empty or unset "tab" property.
The following graphic shows the output of UI control node in the dashboard window.
Let us consider the following flow with the defined dashboard groups in the sidebar:
The input node is defined with string "+1". This opens the next tab incrementally in the
dashboard window.
Similarly, if you define the input node with string "-1", the dashboard window will change to the
previous tab, in a reverse order.
When you perform some activity in the dashboard window, this node connected with debug
node will display the message of payload and loggedInUser details in the message payload.
Template node
The "template" node allows you to create and define your own widgets. You can design the
widgets within the framework using HTML, JavaScript. You can also override builds in CSS styles.
You can create a template and save it in the library for re-use.
The following graphic shows the output of "template" node in the dashboard window.
Let us consider the simple code given below:
simple_code
You get the following message in the dashboard window:
The "image" node allows you to add an image or video to the dashboard in the user interface. It
supports different types of image formats. The image file can be uploaded using Insights Hub
Monitor. The path represents the File API path to image resource.
Procedure
To upload the image file to image node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Slider node
Image node
Gauge node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
In the "Group" section, you can select any one of the following options from the
dropdown menu.
In the "Type" section, you can select any one of the following options from the dropdown
menu.
Click "Done".
The image should be available in Insights Hub Monitor application before using it
to image node.
The "JS/CSS" node allows you to embed custom JS and/or CSS files to the VFC Dashboard. All
JS/CSS files will be embedded according theirs sequence numbers. The .js or .css file can be
uploaded using Insights Hub Monitor.
Procedure
To upload the .js or .css file to JS/CSS node, follow these steps:
1. From the node palette, drag and drop the JS/CSS node to the working area.
Click "Done".
3. Save the below code in .css file and upload the file to Insights Hub Monitor.
#nr-dashboard-toolbar {
background: rgb(2,0,36);
background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(4
1,121,9,1) 35%, rgba(0,206,255,1) 100%);
}
The above code will change the tab ribbon color from blue to gradient as shown below:
The file should be available in Insights Hub Monitor application before using it to
JS/CSS node.
Define the sequence number to order the files which will be embedded into the
HTML page.
Use Insights Hub Monitor and Operations Insight plugin to load the dashboard for all the users.
Now, it is possible to create the dashboards from one user to another user.
The scripts are loaded with a delay after the page loads, you can use the below
example code to load the page with a delay.
Example code:
html <script> setTimeout (() => {$('#myID').html('Hi')}; }, 100);
</script> <div ng-bind-html="msg.payload" id="myID"> </div>
The "IFrame" node allows you to embed an external webpage in Visual Flow Creator dashboard.
Adhere to the Content Security Policy (CSP) of the external websites for the
protection against attacks, malicious content and other mitigates issues.
Procedure
To embed the external webpage in Visual Flow Creator dashboard using iFrame node, follow
these steps:
From the node palette, drag and drop the iframe node from the node palette to the
1. working area.
In the "Group" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
The following graphic shows the output of "IFrame" node in the dashboard window.
The "minerva" node allows you to add the web widgets to the dashboard. It includes the
following widgets:
Bullet Chart
Reference Band
Recursive Pattern
DBSCAN Param
DBSCAN Scoring
Confusion Matrix
Each widget will be configured using data taken from msg.payload. For more information about
the widgets, refer to the info tab of minerva node.
Procedure
To add the web widgets to the dashboard, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
UI control node
Function node
Minerva node
},
{
"timestamp": "2016-04-05 00:00:39.992",
"id": "671121446"
},
{
"timestamp": "2016-04-05 00:00:42.996",
"id": "679477920"
},
{
"timestamp": "2016-04-05 00:00:44",
"id": "679477924"
},
{
"timestamp": "2016-04-05 00:01:50.004",
"id": "679477929"
},
{
"timestamp": "2016-04-05 00:01:57.008",
"id": "679477921"
},
{
"timestamp": "2016-04-05 00:02:38.012",
"id": "679477928"
},
{
"timestamp": "2016-04-05 00:03:29.016",
"id": "687964883"
},
{
"timestamp": "2016-04-05 00:04:02.02",
"id": "1000005"
},
{
"timestamp": "2016-04-05 00:04:02.024",
"id": "1000005"
}
],
"options": {
"height": "400px",
"variableStreamWidth": false,
"nrOfPeriods": 7,
"nrOfRanks": 6,
"periodWidth": 70,
"averageStreamWidth": 60,
"extensionsHeight": 100,
"colorscheme": [
"#33a02c",
"#a6cee3",
"#fb9a99",
"#b2df8a",
"#fdbf6f",
"#1f78b4",
"#e31a1c",
"#ffff99",
"#cab2d6",
"#ff7f00",
"#b15928",
"#6a3d9a",
"#8dd3c7",
"#ffffb3",
"#bebada",
"#fb8072",
"#80b1d3",
"#fdb462",
"#fccde5",
"#b3de69",
"#ffed6f",
"#d9d9d9",
"#bc80bd",
"#ccebc5"
]
}
}
```
Click "Done".
In the "Chart Type", you can select any one of the following options from the dropdown
menu.
Click "Done".
The "heat map" node allows you to create a graphical representation of the data, where the
individual values contained in a matrix are represented as colors. For more information, refer to
the info tab of heat map node.
Procedure
To execute the example flow using heatmap node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Button node
Function node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
In the "Grid values" section, you can select any one of the following options from the
dropdown menu.
In the "Legend" section, you can select any one of the following options from the
dropdown menu.
In the "Background" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
The "led" node allows you to create a simple LED status indicator for the Dashboard. For more
information, refer to the info tab of LED node.
Procedure
To execute the example flow using LED node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Two inject node
LED node
Double click on "inject" node to edit the properties. For more information, refer to Editing
2. nodes.
In the "Label Placement" and "Label Alignment" section, you can select any one of the
following options from the dropdown menu.
In the "Colors for value of msg.payload" section, you can select the "msg.payload" value
from dropdown list and enter the color. To add more colors, click .
Click "Done".
The following graphic shows the output of "led" node in the dashboard window.
The "linear gauge" node allows you to create a linear gauge with high or low limits and animated
sliding pointer. For more information, refer to the info tab of linear gauge node.
Procedure
To execute the example flow using linear gauge node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Button node
Debug node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
4. Double click on the function node (Tank #1) to edit the properties.
Enter the "Name".
msg.payload = 80;
msg.highlimit = 150;
msg.lowlimit = 10;
msg.setpoint = 75;
return msg;
Click "Done".
5. Double click on the function node (Tank #2) to edit the properties.
Enter the "Name".
msg.payload = 35;
msg.highlimit = 50;
msg.lowlimit = 12;
msg.setpoint = 45;
return msg;
Click "Done".
6. Double click on the function node (Tank #3) to edit the properties.
Enter the "Name".
msg.payload = 56;
msg.highlimit = 250;
msg.lowlimit = 5;
msg.setpoint = 88;
return msg;
Click "Done".
7. Double click on the linear gauge node (Tank #1) to edit the properties.
In the "Group" section, you can select any one of the following options from the
dropdown menu.
Select the colors in "High Area Level", "Middle Area Level" and "Low Area Level" sections.
Click "Done".
8. Double click on the linear gauge node (Tank #2) to edit the properties.
In the "Group" section, you can select any one of the following options from the
dropdown menu.
Select the colors in "High Area Level", "Middle Area Level" and "Low Area Level" sections.
Click "Done".
9. Double click on the linear gauge node (Tank #3) to edit the properties.
In the "Group" section, you can select any one of the following options from the
dropdown menu.
Select the colors in "High Area Level", "Middle Area Level" and "Low Area Level" sections.
Click "Done".
The "microphone" node allows you to create an audio to be recorded and allows speech
recognition from the dashboard. For more information, refer to the info tab of microphone node.
Procedure
To execute the example flow using microphone node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Microphone node
Debug node
The "statechart" node allows you to create a bar chart to visualize numeric values in relation,
together with state represented by color. For more information, refer to the info tab of statechart
node.
Procedure
To execute the example flow using statechart node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Function node
Statechart node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
msg.payload = [{
series: "2010",
value: 300000,
state: true
},
{
series: "2012",
value: 400000,
state: true
},
{
series: "2014",
value: 500000,
state: true
},
{
series: "2016",
value: 600000,
state: true
},
{
series: "2018",
value: 700000,
state: true
},
{
series:"2020",
value: 800000,
state: true
}]
return msg;
Click "Done".
Check the box of "Values" and "Bar colors" and edit the changes based on the
requirement.
In the "Text options" section, you can select any one of the following options from the
dropdown menu.
Click "Done".
The default color theme can be changed using "Bar Colors" and "Text options" in
"State chart" node properties.
The "table" node allows you to display the data as a table in the dashboard. For more
information, refer to the info tab of table node.
Procedure
To execute the example flow using table node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Function node
Table node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
msg.payload = [
{
"Name": "Steve",
"Age": "33",
"Place": "Paris",
"Country": "France"
},
{
"Name": "Sofia",
"Age": "30",
"Place": "Barcelona",
"Country": "Spain"
}
];
return msg;
Click "Done".
Click "Done".
The "list" node allows you to create a list of the items. For more information, refer to the info tab
of list node.
Procedure
To execute the example flow using list node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
List node
Debug node
Double click on the inject node to edit the properties. For more information, refer to Editing
3. nodes.
Payload (JSON):
[
{
In the "List Type" and "Action" sections, you can select any one of the following options
from the dropdown menu.
Click "Done".
The "vega" node allows you to create a declarative data visualization using Vega visualization
grammar. It also supports the Vega-lite specification. For more information, refer to the info tab
of vega node.
If you select "Only one browser" for a node in a flow, the node will handle each of
the dashboards separately. For each browser, the communications originating from
the node will be exclusively handled. If "Only one browser" is not selected, the node
will share all the dashboard communication with every open browser from that
user. For more information about an example on usage of one and multiple
browsers, refer to Application examples on node properties.
Procedure
To execute the example flow using vega node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Vega node
Double click on the inject node to edit the properties. For more information, refer to Editing
3. nodes.
Payload (JSON):
??? Code ```json { "$schema": "https://vega.github.io/schema/vega/v5.json", "description": "An
annotated line chart of the population of Falkensee, Germany.", "width": 500, "height": 250,
"padding": 5, "config": { "title": { "fontSize": 16 } }, "title": { "text": {"signal": "'Population of
Falkensee from ' + years[0] + ' to ' + years[1]"} },
"data": [
{
"name": "table",
"values": [
{"year": 1875, "population": 1309},
{"year": 1890, "population": 1558},
{"year": 1910, "population": 4512},
{"year": 1925, "population": 8180},
{"year": 1933, "population": 15915},
{"year": 1939, "population": 24824},
{"year": 1946, "population": 28275},
{"year": 1950, "population": 29189},
{"year": 1964, "population": 29881},
{"year": 1971, "population": 26007},
"scales": [
{
"name": "x",
"type": "linear",
"range": "width",
"zero": false,
"domain": {"data": "table", "field": "year"}
},
{
"name": "y",
"type": "linear",
"range": "height",
"nice": true,
"zero": true,
"domain": {"data": "table", "field": "population"}
},
{
"name": "color",
"type": "ordinal",
"domain": {"data": "annotation", "field": "text"},
"range": ["black", "red"]
}
],
"axes": [
{
"orient": "left",
"scale": "y",
"title": "Population",
"titlePadding": 10,
"grid": true
},
{
"orient": "bottom",
"scale": "x",
"format": "d",
"title": "Year",
"tickCount": 15
}
],
"marks": [
{
"type": "rect",
"from": {"data": "annotation"},
"encode": {
"enter": {
"x": {"scale": "x", "field": "start"},
"x2": {"scale": "x", "field": "end"},
"y": {"value": 0},
"y2": {"signal": "height"},
"fill": {"scale": "color", "field": "text"},
"opacity": {"value": 0.2}
}
}
},
{
"type": "line",
"from": {"data": "table"},
"encode": {
"enter": {
"interpolate": {"value": "monotone"},
"x": {"scale": "x", "field": "year"},
"y": {"scale": "y", "field": "population"},
"stroke": {"value": "steelblue"},
"strokeWidth": {"value": 3}
}
}
},
{
"type": "symbol",
"from": {"data": "table"},
"encode": {
"enter": {
"x": {"scale": "x", "field": "year"},
"legends": [
{
"fill": "color",
"title": "Period",
"orient": "top-left",
"offset": 8,
"encode": {
"symbols": {
"update": {
"strokeWidth": {"value": 0},
"shape": {"value": "square"},
"opacity": {"value": 0.3}
}
}
}
}
]
}
```
The following graphic shows the output of "vega" node in the dashboard window.
The "image/video" node allows you to add an image or video to the dashboard. You can select
the image/video source file from the “Select file” dialog or define using message property path.
Procedure
To execute the example flow using image/video node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Two button nodes
msg.path = '/api/iotfile/v3/files/78ae02303cd448b997a08cdfd8
3e00d4/ForBiggerFun.mp4';
return msg;
Click "Done".
msg.path = '/api/iotfile/v3/files/78ae02303cd448b997a08cdfd8
3e00d4/ForBiggerBlazes.mp4';
return msg;
Click "Done".
In the "Type" section, you can select any one of the following options from the dropdown
menu.
Click "Done".
Autoplay: It allows you to switch "On" or "Off" the autoplay of the video file on
the VFC dashboard.
The following graphic shows the output of "image/video" node in the dashboard window. Click
the "FUN" or "BLAZES" buttons to play the videos from the source.
The "audio" node allows you to add an audio player to the dashboard. You can select the audio
source file from the “Select file” dialog or define using message property path.
Procedure
To execute the example flow using audio node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Button node
Function node
Audio node
msg.path = '/api/iotfile/v3/files/ebdeb4028b664e2baeab95a546
f8b84f/file_example_MP3_1MG.mp3';
return msg;
Click "Done".
In the "Controls" and "Autoplay" sections, you can select any one of the following options
from the dropdown menu.
Click "Done".
Controls: It allows you to switch "On" or "Off" the controls of the audio file on the
VFC dashboard. If you switch to "Off", the controls will be not visible on VFC
dashboard.
Autoplay: It allows you to switch "On" or "Off" the autoplay of the audio file on
the VFC dashboard.
The "etable" node allows you to display the data in an interactive table format on Visual Flow
Creator dashboard. This etable node displays the table data based on Tabulator library.
Procedure
To execute the example flow using etable node, follow these steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Inject node
Function node
etable node
Debug node
Text node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
msg.payload = [
{"AssetType":machine1, progress:95, dom:"14/01/2022", ratin
g:4},
{"AssetType":machine2, progress:90, dom:"15/02/2022", ratin
g:3}];
return msg;
Click "Done".
{
"movableColumns": true,
"movableRows": true,
"layout": "fitColumns",
"pagination": "local",
"height": "700px"
}
[
{
"title": "AssetType",
"field": "AssetType",
"width": "10%",
"editor": false
},
{
"title": "AssetProgress",
"field": "progress",
"formatter": "progress",
"sorter": "number"
},
{
"title": "Date Of Manufacture",
"field": "dom",
"sorter": "date",
"hozAlign": "center",
"width": "30%",
"editor": false
},
{
"title": "Rating",
"field": "rating",
"formatter": "star",
"hozAlign": "center",
"width": "30%",
"editor": true
}
]
Click "Done".
Example scenario
A linear gauge needs to display a specific data point, using a pointer. The pointer is required to
move on a colored scale to indicate whether the monitored data is within the defined limits.
Objective
The gauge scale gives values between predefined minimum and maximum values. Within that
scale, you can create various ranges to classify the data.
Requirements
Procedure
Gauge node
3. Double click on the slider node to configure the group and range of the node:
Group name: Range [Measurements]
Type: Gauge
Sectors: 0-3-7-10
Double click on the gauge node to configure the group, range and color gradient of the
4. node:
Group name: Range [Measurements]
Label: Pointer
To view the results, click and select "Open dashboard" from the menu.
You will be redirected to "https://visualflowcreatorURL.yyy.mindsphere.io/ui/dash/?
[email protected]#/0" in a new tab.
Select the configured group left navigation window of the dashboard UI. The required dashboard
flow will now be visible on the dashboard screen. You can slide the pointer and get the desired
results:
Some examples have been described below to explain the dashboard node properties.
To pass the message input to the output using switch node, follow these steps:
1. From the node palette, drag and drop the following nodes to the working area.
Inject node
Switch node
Debug node
Double click on the inject node to edit the properties. For more information, refer to Editing
3. nodes.
In the "Icon" section, you can select any one of the following options from the dropdown
menu.
Check the box of "If msg arrives on input, pass through to output".
In the "On Payload" and "Off Payload" sections, you can select any one of the following
options from the dropdown menu.
Click "Done".
The "If msg arrives on input, pass through to output:" check box is not selected: The output will
not be displayed in the debug tab when you toggle the switch in the dashboard window
browser.
A function is defined which generates today's date. To differentiate the single and multiple
browser concept, follow these steps:
1. From the node palette, drag and drop the following nodes to the working area.
Button node
Function node
Text node
Double click on the text node to edit the properties. Check box of the last node (text node)
3. from the given flow:
4. Clear the "only one browser" check box of the last node (text node) from the given flow:
The "Only one browser" check box is selected: When you click the button (click to display
information) node in the first browser, you get the output only for the clicked respective browser.
You have to click the button node of the other browser separately to get its output.
The date and time display has seconds difference in time because the buttons in
both the browsers were clicked individually.
The "Only one browser" check box is not selected: When you click the button (click to display
information) node in any browser, output of all the opened browsers will be displayed
simultaneously.
Here, the date and time display has no time difference because only one button click in any of
the browsers displayed the output at the same time.
Configure size
Considering the size of dashboard nodes in "Example 2", by default the button node size is set to
"auto". To configure the button node to different size, open properties and select the size to
different number, for example "3x2" as shown below:
The size of the button will be changed and the button will be displayed with the size set in the
properties.
In this example, you can read the weather report in the CSV format and convert to JSON and
then the output is displayed on the dashboard using the Vega dashboard node.
To read CSV formatted data and convert to JSON and then display the output on the dashboard,
follow these steps:
1. From the node palette, drag and drop the following nodes to the working area.
Inject node
Button node
CSV node
Function node
Table node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
"PurpleOrange",
"RedBlue",
"RedGrey",
"RedYellowBlue",
"RedYellowGreen",
"BlueGreen",
"BluePurple",
"GoldGreen",
"GoldOrange",
"GoldRed",
"GreenBlue",
"OrangeRed",
"PurpleBlueGreen",
"PurpleBlue",
"PurpleRed",
"RedPurple",
"YellowGreenBlue",
"YellowGreen",
"YellowOrangeBrown",
"YellowOrangeRed"
]
}
},
{
"name": "reverse", "value": false, "bind": {"input": "c
heckbox"}
}
],
"data": [
{
"name": "temperature",
"url": "data/seattle-weather-hourly-normals.csv",
// "format": {"type": "csv", "parse": {"temperature": "n
umber", "date": "date"}},
"transform": [
{"type": "formula", "as": "hour", "expr": "hours(datu
m.date)"},
{ "type": "formula", "as": "day",
"expr": "datetime(year(datum.date), month(datum.dat
e), date(datum.date))"}
]
}
],
"scales": [
{
"name": "x",
"type": "time",
"domain": {"data": "temperature", "field": "day"},
"range": "width"
},
{
"name": "y",
"type": "band",
"domain": [
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2
0, 21, 22, 23,
0, 1, 2, 3, 4, 5
],
"range": "height"
},
{
"name": "color",
"type": "linear",
"range": {"scheme": {"signal": "palette"}},
"domain": {"data": "temperature", "field": "temperatur
e"},
"reverse": {"signal": "reverse"},
"zero": false, "nice": true
}
],
"axes": [
{"orient": "bottom", "scale": "x", "domain": false, "titl
e": "Month", "format": "%b"},
{
"orient": "left", "scale": "y", "domain": false, "titl
e": "Hour",
"encode": {
"labels": {
"update": {
"text": {"signal": "datum.value === 0 ? 'Mi
dnight' : datum.value === 12 ? 'Noon' : datum.value < 12 ? datum.value
+ ':00 am' : (datum.value - 12) + ':00 pm'"}
}
}
}
}
],
"legends": [
{
"fill": "color",
"type": "gradient",
"title": "Avg. Temp (°C)",
"titleFontSize": 12,
"titlePadding": 4,
"gradientLength": {"signal": "height - 16"}
}
],
"marks": [
{
"type": "rect",
"from": {"data": "temperature"},
"encode": {
"enter": {
"x": {"scale": "x", "field": "day"},
"y": {"scale": "y", "field": "hour"},
"width": {"value": 5},
"height": {"scale": "y", "band": 1},
"tooltip": {"signal": "timeFormat(datum.date, '%b %d
%I:00 %p') + ': ' + datum.temperature + '°'"}
},
"update": {
"fill": {"scale": "color", "field": "temperature"}
}
}
}
]
};
msg.payload.data[0].values = myobj;
console.log("typecheck "+ typeof xdata);
return msg;
```
7.Save and execute the flow.
The following graphic shows the output in the dashboard window.
The IIoT dashboard nodes allow you to build, create and interchange IIoT dashboard nodes and
default dashboard nodes in one single dashboard.
For more information, refer to Example to use IIoT Dashboard nodes.
The "IIot date picker" node enables you to select a date range with a start date and an end date.
IIoT TS chart
The "IIot TS chart" node aggregate values of a certain aspect for a defined date range. The
display will be a line chart UI in the dashboard.
Variables Description
The "IIoT asset list" node allows you to initialize by sending a payload with a JSON object
containing the assetId that should be selected. If selected asset has changed the following
message will be sent:
{assetId: 'asset id', name: 'name of asset'}
Example: {assetId: '12345', name: '2JX5D'}
The "IIot aspect variable selector" node allows you to select an aspect variable from the asset list
provided.
It sends a topic property defined both in msg and msg.payload objects.
The "IIot event table" node allows you to add IIoT Event Table to the VFC Dashboard. The node
provides events which have been emitted within a date range. IIoT Event Table needs to be
configured either with Asset, Date range (From and To) properties using configuration page or
receiving a message with "From" and "To" properties. You can customize the event table columns
from "Show columns" configuration and you can add custom event table fields using "Custom
event type ID" and "Custom fields".
Properties Description
Properties Description
Select for a node in a flow, the node will handle each of the dashboards separately. For
each browser, the communications originating from the node will be exclusively handled. If
Only one
"Only one browser" is not selected, the node will share all the dashboard communication
browser
with every open browser from that user. Refer to Example on usage of one and multiple
browsers for better understanding.
Show
Select the properties to customize the event table columns.
columns
Custom
event Enter the custom event ID to display the event properties.
type ID
Custom
Add the custom fields for the custom event type.
fields
IIoT map
The "IIoT Map" node allows you to configure IIoT map for an asset and displays a geographic
map based on OpenStreetMap. It needs to be configured with Latitude, Longitude and Zoom
level by using node properties.
An event needs to be organized in Berlin. The event is a demo show on turbo engines of
Siemens. It is required to design an event flow to integrate to the event management
application.
Objective
Requirements
A timestamp input
Message payload
Procedure
1. From the node palette, drag and drop the following nodes to the working area.
Inject node
Debug node
Function node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
IIoT map
To understand group and tabs configuration, refer to Dashboard working layouts.
Swap, shift and configure groups and tabs from the sidebar "Dashboard" window under
5. "Layout" according to the requirements.
In Visual Flow Creator application, click and select "Open dashboard" to view the flow in
Visual Flow Creator dashboard. A flow as designed is displayed in the dashboard:
Select an asset, an aspects and the time range. You will be the data analysis in the chart and the
asset location:
Connect a time stamp and a message payload as shown below with the selected asset, aspect
and date range as shown above:
Node flow design:
Flow in dashboard:
To view the map in the Visual Flow Creator Dashboard with given coordinates, follow these
steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Two inject node
Debug node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
Label: map
Longitude: 8.352164
Latitude: 49.027324
Zoom level: 15
"zoomLevel": 8
{
"latitude": -30,
"longitude": 20,
"zoomLevel": 5
}
You can access Visual Flow Creator dashboard by using Insights Hub Monitor plugin.
To display Visual Flow Creator dashboard in Insights Hub Monitor by using a plugin, follow these
steps:
From the node palette, drag and drop the following nodes from the respective palette to
1. the working area.
Timestamp node
Slider node
Gauge node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
4. Double click the "slider" and "gauge" nodes to edit the properties.
Swap, shift and configure groups and tabs from the sidebar "Dashboard" window under
5. "Layout" according to the requirements.
FM access: Asset
7. Click "Update".
9. Open Insights Hub Monitor and select Visual Flow Creator tile.
The "Dashboard Viewer" is an application on your Launchpad and can be used to access
dashboards created by users in your environment. You can access the "Dashboard Viewer" with
role environment user. To make dashboard accessible for other users of your environment, use
the VFC to publish them.
Procedure
To publish the dashboard in the "Dashboard Viewer" through Visual Flow Creator, follow these
steps:
1. From the node palette, drag and drop the following nodes to the working area:
Timestamp node
Slider node
Gauge node
Double click on the inject node to edit the properties. For more information, refer to Editing
3. nodes.
Enter the group name as "Conveyor belt". To edit the properties of "Group" section, click
Click "Done".
Type: Compass
Label: speed
Units: rpm
Click "Done".
In the "Icon" section, Select a textual key indexing from the standard catalogs.
In the "Access" section, select the "Show in Dashboard Viewer and OI" from the
dropdown menu to publish the dashboard.
In the "FM & OI access" section, you can select any one of the following options from the
dropdown menu.
Click "Update".
Click on the published dashboard. The required dashboard flow will now be visible on the Visual
Flow Creator Dashboard screen. You can slide the pointer and get the desired results:
You can add the links to "Dashboard Viewer" and access the link from sidebar of Visual Flow
Creator dashboard.
Procedure
Link: "https://siemens.mindsphere.io/en/docs/tutorials/visual-flow-creator-KPI".
Click "Visual Flow Creator tutorial" link to open the tutorial website.
Subflows 7
7.1 Subflows
A subflow is a set of nodes which can be bundled together for re-using later like a function. The
subflows can be used in multiple larger flows as a single node which in turn reduces the
complexity in a flow.
The subflow feature in VFC is an adaptation of the "subflow" in Node-RED. For more information,
refer to Node-RED subflows.
The following graphic shows the subflows user interface:
Selection to subflow
Edit a subflow
Create a subflow
Selection to subflow
Generate node
Filter node
Map node
Debug node
Double click on "inject" node to edit the properties. For more information, refer to Editing
3. nodes.
!!! note The "Selection to subflow" option will be visible only when you select the nodes in
your working space.
Double click on the created subflow to edit the properties. Enter the "Name" and click
6. "Done".
Clicking delete button removes the subflow from your current working space and
not from the node palette.
To delete subflows from the node palette, refer to Delete subflows.
Edit a subflow
Open the working subflow and click to edit the subflow properties.
You have the option of designing flows at most with one input .
Delete a subflow
Double click the required subflow from the node palette and select from the
subflow working space. Once you delete the subflow, it will no longer be visible in the node
palette.
Technical specifications 8
8.1 Technical specifications
The following table contains the technical specifications of Visual Flow Creator:
Description Limitations
Maximum number of the node context variables in function node 5 per node
Maximum number of the flow context variables in function node 20 per tab
100 per
Maximum number of the global context variables in function node
user
Time period for saving data in the context of the "function" node after the last read/write
6 months
access or system reboot
Maximum file size for data transmission within the "read file" and "write file" nodes 1 MB
5 MB / 128
Maximum size of a global context for the Production / Start for Free environments
KB
5 MB / 128
Maximum size of a flow context for the Production / Start for Free environments
KB
2 MB / 128
Maximum size of a each node context for the Production / Start for Free environments
KB
5 MB / 128
Maximum size of a environment context for the Production / Start for Free environments
KB
All created flows are visible for all users of a environment. You cannot modify the
flows of another user.
The execution time of all nodes for a environment can be limited depended on
the application and platform load.
The following table shows the difference between Visual Flow Creator and Node-RED:
Maximum running duration of one flow is 30 seconds (or 2 Maximum running duration of one
minutes with the power mode option). flow is not limited.
Maximum 5 custom modules can be uploaded for the custom No limit to create custom modules
nodes. using Node-RED library.
No authentication is required to
Industrial IoT authentication or private key is required to access
access the http endpoint with "Http-
the http endpoint using "Http-in" node.
in" node.
Many Industrial IoT specific nodes are available No specific Industrial IoT nodes.
Glossary 9
9.1 Glossary
IoT
IoT is the abbreviation for the Internet of Things. The IoT networks objects of every type with the
Internet. The objects can communicate with one another over the Internet and perform various
tasks.
Node
Nodes are configurable pieces of functionality that process input data and produce output data.
Examples range from data processing to complex functions and online services.
Payload
Payload is the container for the user data (data packet). User data can be simple strings or
arrays. An array consists of mapping JavaScript objects. For processing of time series data, arrays
of objects are used that consist of a time stamp and a measured value, e.g.: { "_time": "2017-12-
27T07:35:45", "pos_X": 112.2 }.