Reference
Node reference
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| every (every (ms)) | number | 1000 | |
| atStart (also at start) | boolean | true | |
| topic | text | tick |
Tag tag-in
A tag of a data source: every sample becomes a message with the tag as its topic. 0 inputs, 1 output.
| Field | Type | Default | Meaning |
|---|---|---|---|
| tag | tag | source.tag | |
| onChange (only when the value changes) | boolean | false |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| component | component | ||
| event | event | ||
| field (detail field) | text | value | Which 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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| payload | text | 1 | |
| topic | text | ||
| atStart (at start) | boolean | false | |
| repeat (repeat every (ms)) | number | 0 | 0 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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| url | text | https:// | |
| method | select: GET, POST | GET | |
| sendPayload (send the payload as JSON body) | boolean | false |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| code | code | msg.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).
| Field | Type | Default | Meaning |
|---|---|---|---|
| op (condition) | select: >, >=, <, <=, ==, != | > | |
| value | number | 0 | |
| clear (clears at) | number | Hysteresis: the value the condition clears at; empty uses the value itself. | |
| for (holds for (ms)) | number | 0 |
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).
| Field | Type | Default | Meaning |
|---|---|---|---|
| field | text | payload | payload, topic, unit, quality or payload.field |
| op | select: ==, !=, >, >=, <, <=, contains, true, false | == | |
| value | text |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| expression | text | x * 1 | |
| precision (decimals) | number | Rounds 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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| deadband | number | 0 | The least change that passes; 0 passes every change. |
| interval (at most every (ms)) | number | 0 | |
| onlyNumbers (drop non-numbers) | boolean | true |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| window (samples) | number | 20 | |
| output | select: mean, min, max, rms, record | mean |
Delay delay
Sends the message on after a delay. 1 input, 1 output.
| Field | Type | Default | Meaning |
|---|---|---|---|
| ms (delay (ms)) | number | 1000 |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| first (send first) | text | true | |
| then (then send) | text | false | |
| after (after (ms)) | number | 1000 |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| interval (every (ms), 0 = on every change) | number | 0 | |
| timestampField | text | timestamp |
Change change
Sets the topic, the unit or a fixed payload on the message. 1 input, 1 output.
| Field | Type | Default | Meaning |
|---|---|---|---|
| topic | text | Empty keeps the topic. | |
| unit | text | ||
| payload | text | Empty keeps the payload; JSON is parsed. |
Template template
A text from the message: {{topic}}, {{payload}}, {{unit}}, {{payload.field}}. 1 input, 1 output.
| Field | Type | Default | Meaning |
|---|---|---|---|
| template | code | {{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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| from | select: °C, °F, K, bar, psi, kPa, mbar, L/min, m³/h, gal/min, mm, in, m, ft, kg, lb | °C | |
| to | select: °C, °F, K, bar, psi, kPa, mbar, L/min, m³/h, gal/min, mm, in, m, ft, kg, lb | °F | |
| precision (decimals) | number | 2 |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| alpha | number | 0.2 | |
| precision (decimals) | number | 3 |
Rate rate
The rate of change of the payload per second (or per minute), from one message to the next. 1 input, 1 output.
| Field | Type | Default | Meaning |
|---|---|---|---|
| per | select: second, minute, hour | minute | |
| precision (decimals) | number | 3 |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| as | select: number, json, fields | number | |
| names (field names) | text | a,b,c | For fields: the names of the comma-separated values, in order. |
| separator | text | , |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| component | component | ||
| property | property | value | A 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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| tag | tag |
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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| id | text | Empty uses the message topic. | |
| tag | text | ||
| message | text | {{topic}} high ({{payload}} {{unit}}) | |
| priority | select: 1, 2, 3, 4 | 2 | |
| component (on component) | component | The 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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| name (log name) | text | log | |
| format | select: csv, tdms | csv | On 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.
| Field | Type | Default | Meaning |
|---|---|---|---|
| label | text |
Notify notify
Posts the message as JSON to a webhook. 1 input, 0 outputs.
| Field | Type | Default | Meaning |
|---|---|---|---|
| url | text |