node-red-contrib-formulize · v0.1.2

Node-RED × formulize — sensor streams to equations, in the flow editor.

A three-node palette that drops onto any Node-RED flow. Feed formulize-fit a CSV from a temperature sensor, a solar inverter, or a vibration monitor — it returns a dimensioned equation with an R², a confidence interval, and a live prediction endpoint. No training run, no MLOps.

From sensor to equation, live.

Palette install → sample CSV → equation in the debug panel. One take, no cuts.

Loom embed · placeholder (docs/loom-node-red.md)

From temperature sensor to physics equation.

Four steps. No account required for the first fit — the free tier is IP-throttled.

1

Install the palette

From Node-RED, open Menu → Manage palette → Install and search node-red-contrib-formulize. Or from a terminal in your ~/.node-red directory:

# installs formulize-fit, formulize-predict, formulize-drift
npm i node-red-contrib-formulize
[screenshot placeholder — palette manager showing the three formulize-* nodes]
2

Drop formulize-fit after any sensor node

The formulize-fit node accepts a CSV string or an array of objects on msg.payload. Wire it downstream of your MQTT-in, Modbus, HTTP, or file-in node. Configure the target column (what to predict) and the domain (physics / chemistry / biology / generic).

[screenshot placeholder — flow editor with mqtt-in → formulize-fit → debug]
3

Inject the sample CSV

Drop an inject node with the sample payload below. Deploy the flow. Fire the inject once — the debug panel prints the equation, R², and a share URL within 4–8 seconds.

# sample payload — HVAC coil, 200 rows
msg.payload = `t_supply,t_return,flow_gpm,kwh
44.2,55.1,12.3,3.4
44.5,55.4,12.6,3.5
...`;
4

See the equation in the debug panel

Output on msg.payload:

{
  "equation": "kwh = 0.083 * flow_gpm * (t_return - t_supply)",
  "latex": "\\dot Q = c_p\\,\\dot m\\,\\Delta T",
  "r2": 0.996,
  "endpoint_url": "https://formulize.dev/f/hvac-9f3a",
  "dim_check": "passed"
}

That endpoint is live. POST new sensor rows to it, get back predictions. Or wire formulize-predict downstream to stay inside Node-RED.

Self-hosted mode

Air-gapped plant floor? Run the engine on-prem — Docker one-liner, no calls to the hosted API. See the self-hosted guide →

Copy the flow, swap in your data.

Each JSON is a complete Node-RED flow. Import via Menu → Import → Clipboard. Sample data is embedded.

HVAC

HVAC coil efficiency

Chilled-water AHU. 200 rows of supply/return temp + flow. Recover the sensible-heat equation.

Q̇ = cₚ · ṁ · ΔT
R² 0.996 · 5.2s flow.json ↓
SOLAR

Solar panel degradation

5-year daily output vs. irradiance + panel age. Extract the annual degradation coefficient.

P = η₀ · G · (1 − α · t)
R² 0.983 · 7.8s flow.json ↓
MAINTENANCE

Predictive maintenance

Bearing vibration RMS + temperature vs. hours-to-failure. Fits a Weibull-style hazard curve.

h(t) = (β/η)(t/η)^(β−1)
R² 0.941 · 12.1s flow.json ↓

Ask questions, share flows.

Design questions and use-case discussion on the Node-RED Discourse. Bug reports and feature requests on GitHub.

Ship an equation before you finish your coffee.

50 fits a month, free forever. No credit card. Upgrade only when your sensor fleet grows.