Rules that know the difference between a blip and a fault.
Define what good, warning and critical mean once. Bind it to the measures it watches. Decide who is told and what runs — and get one incident per fault, not a flood.
- 01Process
JavaScript shapes the incoming reading.
- 02Policy
Conditions for info, warning, critical.
- 03Binding
The policy on a real measure, with its state.
- 04Trigger
On a state: who to tell, what to run.
- 05Action & incident
A webhook or a command; one incident to handle.
Shape the data before anyone judges it
A process is a JavaScript script that runs on each incoming reading in a sandbox. It can decode bytes, convert units, or keep state per measure — a running average, a counter, the last value. Try it on a test payload before saving.
- · Runs and failures per hour for the last 24 hours
- · The last 50 failed runs, with the input that broke them
Say what each state means
A policy is a reusable rule: for info, warning and critical it holds a condition tree over named variables — above, below, for how long, and / or. It doesn't name a measure, so one policy serves every compressor.
- · Starts as a draft and is never evaluated until published
- · The worst current state of each policy, on its list (“Raising now”)
Put the rule on real equipment
A binding maps the policy's variables to measures and keeps its own state. It follows the policy's default triggers, or has its own — change the default once and every binding that follows it changes too.
Tell the right people, once
A trigger fires when a binding enters the states it listens to. It notifies by email and in-app — the people assigned to the asset, or the ones you pick — and can run an action. Send a test marked TEST first: people get it, the action doesn't run.
- · Each channel can be switched off per branch
- · The test answer says per channel: sent, failed or skipped
Call your systems, or the machine
A webhook posts a documented body — policy, binding, trigger, asset, states, severity, time and readings, plus your own payload. An MQTT command publishes on the device's own sub-topic. Run an unsaved action once from the form to see it work.
- · Webhooks only reach public hosts on 80 and 443, checked on save and on every run
- · A command can only reach your organization's own devices — the broker enforces it
- · Every run is logged with its status and duration
One fault, one thing to handle
From leaving good to back to good, a binding has one incident with its current and peak severity. Acknowledge it with a note; shelve it for a maintenance window (up to 7 days), with or without its actions still running. An escalation above what was acknowledged asks again.
Raised, nobody has it yet.
Someone has it, with a note.
Back to good, not acknowledged yet.
Back to good and acknowledged.