https://github.com/clement-berard/node-red-contrib-cyclic-counter
Cyclic Counter Node for Node-RED
https://github.com/clement-berard/node-red-contrib-cyclic-counter
node-red node-red-contrib
Last synced: 4 months ago
JSON representation
Cyclic Counter Node for Node-RED
- Host: GitHub
- URL: https://github.com/clement-berard/node-red-contrib-cyclic-counter
- Owner: clement-berard
- Created: 2024-11-07T13:00:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-07T13:13:41.000Z (over 1 year ago)
- Last Synced: 2025-10-19T16:01:21.671Z (8 months ago)
- Topics: node-red, node-red-contrib
- Language: HTML
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cyclic Counter Node for Node-RED
A customizable cyclic counter node for Node-RED that iterates through a defined sequence of numbers and can reset after a set timeout. It allows flexible control over the counter's behavior, making it useful in a variety of automation scenarios.
## Features
- Cycles through numbers from `1` to a maximum value.
- Reset the counter after a configurable timeout (Optional)
- Configurable output property for the counter value in the message.
## Installation
To install this node, you can clone it into your Node-RED node directory or install it directly from npm:
```bash
npm install node-red-contrib-cyclic-counter
```
Then restart Node-RED, and the cyclic counter will be available in the function category.
## Usage
- Maximum Count (maxCount): Sets the upper limit of the counter. The counter resets to 1 after reaching this value.
- Timeout Duration (timeoutDuration): The delay before resetting the counter back to 1. If set to 0, the counter will never automatically reset.
- Timeout Unit (timeoutUnit): Unit of time for the timeout duration (ms, s, min, hr, day).
- Output Property (outputProperty): Property in the message where the counter value will be stored (default is payload).
- To reset the counter manually, send a message with msg.payload set to "reset".
## Example Flow
Here’s an example flow to get started:
```json
[
{
"id": "example",
"type": "cyclic_counter",
"z": "your-flow-id",
"name": "My Cyclic Counter",
"maxCount": 5,
"timeoutDuration": 30,
"timeoutUnit": "s",
"outputProperty": "payload",
"wires": [["debug_node_id"]]
}
]
```
This configuration will increment the counter from 1 to 5, reset it after 30 seconds of inactivity, and extend the timeout on each new input.
## License
MIT