@jsgorana/node-red-dashboard-2-scada 1.0.0

HP-HMI / ISA-101 SCADA widget kit for Node-RED Dashboard 2.0 — SVG mimic/synoptic displays, equipment faceplates with RBAC, declarative tag bindings, and a built-in symbol library

npm install @jsgorana/node-red-dashboard-2-scada

@jsgorana/node-red-dashboard-2-scada

HP-HMI / SCADA widget kit for Node-RED Dashboard 2.0 — SVG synoptic/mimic displays and equipment faceplates, driven by declarative tag bindings. ISA-101 styled, with a built-in symbol library.

License Node-RED Dashboard 2.0

One package, two Dashboard 2.0 nodes:

Node What it does
ui-scada-mimic Render a process SVG and animate it from tag values — fill levels, colors, text, visibility, rotation — with no per-screen JavaScript.
ui-scada-faceplate Equipment faceplate (motor / valve / PID) with alarm state display, setpoint entry, write-confirmation, interlock checks, and server-side RBAC + audit.

A library of ISA-101 / HP-HMI SVG symbols (pump, motor, valves, tank, conveyor, breaker, bargraph, multistate indicator, mini-trend, pipe) is bundled in.

SCADA mimic widget rendering a tank and pump in Node-RED Dashboard 2.0

The kit is protocol-agnostic — it consumes a normalized tag map from any upstream node (OPC UA, Modbus, MQTT, Sparkplug, …) and bundles no drivers.

Install

npm install @jsgorana/node-red-dashboard-2-scada

Or via Menu → Manage palette → Install and search for the package name. Requires Node-RED >=4.0, Node.js >=22, and @flowfuse/node-red-dashboard >=1.0 (Dashboard 2.0). Both nodes appear in the palette under the dashboard 2 group alongside the stock widgets.

Quick start

Import a bundled example — Menu → Import → Examples → @jsgorana/node-red-dashboard-2-scadamimic-tank-pump or faceplate-pid-rbac — and deploy.

A minimal mimic binding set:

{
  "bindings": [
    { "selector": "#TK01_fill", "source": "TK01.level",
      "target": { "type": "level", "axis": "y", "max": 152 },
      "transform": { "default": "0", "quality": { "onBad": "0" } } },
    { "selector": "#P101_body", "source": "P101.run",
      "target": { "type": "style", "name": "fill" },
      "transform": { "valueMap": { "true": "#5c85d6", "false": "#9e9e9e" }, "default": "#bdbdbd" } }
  ]
}

Feed the node a tag map:

msg.payload = { "TK01.level": 76.1, "P101.run": true };
return msg;

Faceplate writes & RBAC

The faceplate gates operator writes: a client-side confirmation, then server-side authorization (browser-asserted roles are never trusted). Output 1 is the allowed write/state; output 2 is the audit stream (emitted for both allowed and denied writes). The server gate enforces roles, engineering limits, optional setpoint rate limits, interlock blocking, and separate alarm action roles for acknowledge, shelve, and out-of-service.

PID faceplate with setpoint entry and Write SP / Auto / Manual controls

Symbol library

The bundled HP-HMI symbols are accessible programmatically:

const { catalog, getSymbol } = require('@jsgorana/node-red-dashboard-2-scada/symbols');

Each symbol has documented, bindable element ids (status text, value text, level, alarm shape/text). See the symbol catalog.

Documentation

License

Apache-2.0 © 2026 jsgorana. See NOTICE for acknowledgements.

Node Info

Version: 1.0.0
Updated 6 hours ago
License: Apache-2.0
Rating: 5.0 1

Categories

Actions

Rate:

Downloads

0 in the last week

Nodes

  • ui-scada-mimic
  • ui-scada-faceplate

Keywords

  • node-red
  • node-red-dashboard
  • node-red-dashboard-2
  • scada
  • hmi
  • svg
  • mimic
  • synoptic
  • faceplate
  • symbols
  • industrial
  • iiot
  • isa-101
  • isa-18.2

Maintainers