On this page · 3 sections

26 node types, in three categories. A node's fields are set in the inspector; what is not set keeps the default shown here. This page is generated from studio-flows.js, so it is the engine as built.

Inputs

Timer timer

Sends a message every interval; the payload counts the ticks. 0 inputs, 1 output.

FieldTypeDefaultMeaning
every (every (ms))number1000
atStart (also at start)booleantrue
topictexttick

Tag tag-in

A tag of a data source: every sample becomes a message with the tag as its topic. 0 inputs, 1 output.

FieldTypeDefaultMeaning
tagtagsource.tag
onChange (only when the value changes)booleanfalse

Panel control panel-event

An event of a component on the page: a setpoint request, a button, a selection. The payload is the event's value, or its whole detail. 0 inputs, 1 output.

FieldTypeDefaultMeaning
componentcomponent
eventevent
field (detail field)textvalueWhich field of event.detail is the payload; empty takes the whole detail.

Inject inject

A fixed message, sent at start, whenever the node is triggered from the editor, and every so many milliseconds when repeat is set. 0 inputs, 1 output.

FieldTypeDefaultMeaning
payloadtext1
topictext
atStart (at start)booleanfalse
repeat (repeat every (ms))number00 sends only at start and on a trigger; 10 or more repeats at that interval.

HTTP request http-request

Requests a URL when a message arrives; the reply (JSON when it parses) is the payload. 1 input, 1 output.

FieldTypeDefaultMeaning
urltexthttps://
methodselect: GET, POSTGET
sendPayload (send the payload as JSON body)booleanfalse

Logic

Function function

JavaScript with the message as msg. Return the message to send it on, an array to send several, nothing to drop it. store keeps values between messages. This is code: a station runs it only when its configuration allows code, and then in a sandbox with a time limit; a page under a strict Content-Security-Policy refuses it. A Math node or a Formula node is not code. 1 input, 1 output.

FieldTypeDefaultMeaning
codecodemsg.payload = msg.payload * 1;

Threshold threshold

Compares the payload with a value. When the condition becomes true and holds for the time given, a message leaves the first output; when it clears (below the clear value), one leaves the second. 1 input, 2 outputs (crossed, cleared).

FieldTypeDefaultMeaning
op (condition)select: >, >=, <, <=, ==, !=>
valuenumber0
clear (clears at)numberHysteresis: the value the condition clears at; empty uses the value itself.
for (holds for (ms))number0

Switch switch

Routes a message by a condition on one of its fields: the first output when it matches, the second otherwise. 1 input, 2 outputs (matches, otherwise).

FieldTypeDefaultMeaning
fieldtextpayloadpayload, topic, unit, quality or payload.field
opselect: ==, !=, >, >=, <, <=, contains, true, false==
valuetext

Math math

An expression on the payload, with x as the number: x * 9 / 5 + 32, with sqrt, min, max and the rest of Math, and msg for the message (msg.payload.active ? 3 : 2). A payload that is not a number is dropped unless the expression uses msg. The expression is read by the formula language, never run as code. 1 input, 1 output.

FieldTypeDefaultMeaning
expressiontextx * 1
precision (decimals)numberRounds the result; empty keeps it.
unit (unit of the result)text

Filter filter

Passes a message only when the payload changed by more than the deadband, and not more often than the interval. 1 input, 1 output.

FieldTypeDefaultMeaning
deadbandnumber0The least change that passes; 0 passes every change.
interval (at most every (ms))number0
onlyNumbers (drop non-numbers)booleantrue

Statistics statistics

Mean, minimum, maximum and RMS over the last N numbers, sent with every message. The payload is the chosen statistic, or the whole record. 1 input, 1 output.

FieldTypeDefaultMeaning
window (samples)number20
outputselect: mean, min, max, rms, recordmean

Delay delay

Sends the message on after a delay. 1 input, 1 output.

FieldTypeDefaultMeaning
ms (delay (ms))number1000

Trigger trigger

On a message, sends one payload at once and another after a time; until then further messages are ignored. 1 input, 1 output.

FieldTypeDefaultMeaning
first (send first)texttrue
then (then send)textfalse
after (after (ms))number1000

Join join

Collects the payloads of different topics into one record { topic: payload } and sends the record whenever it changes, or on an interval. 1 input, 1 output.

FieldTypeDefaultMeaning
interval (every (ms), 0 = on every change)number0
timestampFieldtexttimestamp

Change change

Sets the topic, the unit or a fixed payload on the message. 1 input, 1 output.

FieldTypeDefaultMeaning
topictextEmpty keeps the topic.
unittext
payloadtextEmpty keeps the payload; JSON is parsed.

Template template

A text from the message: {{topic}}, {{payload}}, {{unit}}, {{payload.field}}. 1 input, 1 output.

FieldTypeDefaultMeaning
templatecode{{topic}}: {{payload}} {{unit}}

Units convert

Converts the payload between units: temperature, pressure, flow, length, mass. The message's unit is set to the target. 1 input, 1 output.

FieldTypeDefaultMeaning
fromselect: °C, °F, K, bar, psi, kPa, mbar, L/min, m³/h, gal/min, mm, in, m, ft, kg, lb°C
toselect: °C, °F, K, bar, psi, kPa, mbar, L/min, m³/h, gal/min, mm, in, m, ft, kg, lb°F
precision (decimals)number2

Smooth smooth

A low-pass filter: an exponential moving average of the payload. Alpha 1 passes the value as is, 0.1 follows it slowly. 1 input, 1 output.

FieldTypeDefaultMeaning
alphanumber0.2
precision (decimals)number3

Rate rate

The rate of change of the payload per second (or per minute), from one message to the next. 1 input, 1 output.

FieldTypeDefaultMeaning
perselect: second, minute, hourminute
precision (decimals)number3

Parse parse

Reads a text payload as a number (the first one in it, an instrument's "+1.2345E+00" included), as JSON, or as comma-separated fields into a record with the names given. 1 input, 1 output.

FieldTypeDefaultMeaning
asselect: number, json, fieldsnumber
names (field names)texta,b,cFor fields: the names of the comma-separated values, in order.
separatortext,

Outputs

Panel indicator panel-set

Sets a property of a component on the page to the payload, or pushes the payload as a record (a chart's push). 1 input, 0 outputs.

FieldTypeDefaultMeaning
componentcomponent
propertypropertyvalueA property name, or push for a chart.

Device write tag-out

Writes the payload to a tag of a data source: a setpoint to the PLC, a command to the instrument. The confirmed value comes back through the tag. 1 input, 0 outputs.

FieldTypeDefaultMeaning
tagtag

Alarm alarm

Raises an alarm on the first input and clears it on the second: on the page's alarm banner or grid, and on the agent's alarm list. The message going out carries the alarm record. 2 inputs (raise, clear), 1 output.

FieldTypeDefaultMeaning
idtextEmpty uses the message topic.
tagtext
messagetext{{topic}} high ({{payload}} {{unit}})
priorityselect: 1, 2, 3, 42
component (on component)componentThe alarm banner or grid whose alarms property is kept up to date; empty for none.

Log log

Appends the message to a log: a row of time, topic, payload and unit (a record's fields become columns). In the designer the rows download as CSV; on the agent the file is CSV or TDMS. 1 input, 0 outputs.

FieldTypeDefaultMeaning
name (log name)textlog
formatselect: csv, tdmscsvOn the agent: a CSV file, or a TDMS file for any tool that reads TDMS (npTDMS among them).

Debug debug

Shows the message in the message inspector. 1 input, 0 outputs.

FieldTypeDefaultMeaning
labeltext

Notify notify

Posts the message as JSON to a webhook. 1 input, 0 outputs.

FieldTypeDefaultMeaning
urltext