Repository navigation
States
The node is always in exactly one of three states, reported as
msg.timerState on every output message.
| State | Meaning |
|---|---|
idle |
No live counted messages; ready for a new cycle |
counting |
At least one counted message is live; count below the limit |
cooldown |
A timed block on counting, following a Trigger (see Cooldown) |
stop / reset
┌──────────────────────────────────────┐
│ │
idle ──first counted message──► counting─┤
▲ │ │
│ count = limit
│ │
├──── windowexpired ─────────────┤
│ (fixed: window closed; │
│ sliding: decayed to zero) ▼
│ TRIGGER (output 1 + 3)
│ │
├──── no cooldown configured ────┤
│ │ cooldown configured
│ ▼
└──── cooldownended ───────── cooldown
(stop also exits early)
In words:
-
idle → counting — any counted message (a message whose payload is
not a recognized command, arriving while neither disabled nor in
cooldown). That first message is
count 1and, in fixed mode, anchors the window. -
counting → idle, with a Trigger — the count reaches the limit.
If a cooldown is configured the node passes through
cooldownon the way; otherwise it is immediately idle and ready. -
counting → idle, without a Trigger —
windowexpired: the fixed window closed, or the sliding count decayed to zero (see Window Modes). -
counting → idle, by command —
stoporresetwipes the count. The two differ only during cooldown; see Input Messages. -
cooldown → idle — the cooldown period completes
(
cooldownended), or astopcancels it early. Nothing else exits a cooldown — notreset, notenable.
There is no paused state. Pause/resume was deliberately not carried
over from the sibling timer-events node — pausing a measurement
window has no coherent meaning (freeze the clock? shift the message
timestamps?).
disable blocks messages from being counted, but the node remains in
whatever state it was in — a disabled node can be idle, counting (an
in-flight window keeps running down), or in cooldown. Every output
message reports the flag separately as msg.disabled. See
Input Messages for the command's exact behavior.
What appears under the node on the canvas, per state. The countdown portions update at the cadence set by Status Reporting (see Configuration); the count and state portions update on every event regardless.
| State | Label | Indicator |
|---|---|---|
| Idle | Ready |
green dot |
| Counting (fixed mode) | Counting: 2/3 | Window: 00:12:30 |
yellow dot |
| Counting (sliding mode) | Counting: 2/3 | Oldest expires: 00:01:42 |
yellow dot |
| Cooldown | Cooldown: 00:02:30 |
yellow dot |
| Just triggered | a brief Triggered flash, then the cooldown or idle label |
blue dot |
| Disabled |
Disabled | prefixed to the normal label; during cooldown, just Disabled
|
grey ring |
In sliding mode the countdown shown is the time until the oldest live message ages out — the moment the displayed count will next change. When it does, the label refreshes to the new count and the next-oldest message's remaining time.
The cooldown label deliberately omits ignored-message detail to stay
short; the full picture is always available via query (see
Output Messages).
Getting Started
Reference
Features
Examples
Test Script Coverage
Support