open-index/open-npm huggingface dataset:
npm package: @rosepetal/node-red-contrib-utils
Description: Utility and I/O nodes for Node-RED, including array helpers and file saving.
Author: Rosepetal SL
Latest version: 1.1.7

# @rosepetal/node-red-contrib-utils

Utility and I/O nodes for Node-RED, focused on array assembly, queueing, safe debugging, promise aggregation, event loop monitoring, and file saving.

![Array-Out Demo](assets/nodes/io/array-out-demo.gif)

## Quick Start

### Installation (Palette Manager)
- Open Palette Manager -> Install -> search `@rosepetal/node-red-contrib-utils`.

### Installation (npm)
```bash
cd ~/.node-red
npm install @rosepetal/node-red-contrib-utils
```

## Requirements

- Node.js >= 16
- Node-RED >= 1.0.0
- `sharp` native addon (fetched via npm; builds from source if no prebuilt is available)

## Node Type Prefix

All node types are prefixed with `rp-` to avoid collisions with other packages. In flow JSON you will see types like `rp-array-in`. In the editor, nodes appear under the "RP Utils" category with human-friendly labels.

## Nodes

### I/O and Array Tools

| Node | Purpose |
|------|---------|
| **[rp-array-in](docs/nodes/io/array-in.md)** | Tag incoming data with a position index for ordered array assembly. |
| **[rp-array-out](docs/nodes/io/array-out.md)** | Collect indexed data into ordered arrays with timeout handling. |
| **[rp-array-select](docs/nodes/io/array-select.md)** | Select array elements using index and slice syntax. |
| **[rp-queue](docs/nodes/io/queue.md)** | Buffer messages, enforce output intervals, and drop stale or overflow items. |
| **[rp-save-file](docs/nodes/io/save-file.md)** | Save payloads to disk as image, JSON, text, or binary with auto-detection. |

### Async and Workflow

| Node | Purpose |
|------|---------|
| **[rp-promise-reader](docs/nodes/promise-reader/promise-reader.md)** | Resolve arrays of promises, merge results, and record timing. |

### Utilities

| Node | Purpose |
|------|---------|
| **[rp-clean-debug](docs/nodes/util/clean-debug.md)** | Debug output that sanitizes large payloads to keep the sidebar responsive. |
| **[rp-block-detect](docs/nodes/util/block-detect.md)** | Event loop delay watchdog with live status and log warnings. |

## Project Structure

```
node-red-contrib-utils/
├── docs/nodes/          # Node documentation
├── nodes/               # Node-RED node implementations
│   ├── io/              # Array, queue, save-file nodes
│   ├── util/            # clean-debug, block-detect
│   └── promise-reader/  # promise-reader node
├── lib/                 # Shared utilities
└── assets/              # Documentation assets
```

## License

Apache-2.0

## Author

Rosepetal SL - https://www.rosepetal.ai
npm package: @rosepetal/node-red-dashboard-2-system-monitor
Description: System monitor dashboard widget for Node-RED Dashboard 2.
Author: Rosepetal SL
Latest version: 1.0.1

# @rosepetal/node-red-dashboard-2-system-monitor

System monitor widget for **Node-RED Dashboard 2** (Linux-focused, NVIDIA GPU support).

![System monitor widget preview](docs/images/system-monitor-dashboard.gif)

## What it shows

- **CPU**: per-core usage bars, average usage, tasks, threads, load average, uptime.
- **Memory**: RAM and swap usage bars with used/total values.
- **Disk**: mountpoint, filesystem, usage bar, used/total bytes, read/s, write/s.
- **Network**: interface state, link capacity, down/s, up/s, RX total, TX total.
- **GPU (NVIDIA)**: utilization, VRAM usage, temperature, power, fan, p-state, GPU process VRAM.
- **Processes**: htop-style table with PID, user, VIRT, RES, SHR, CPU, state type, command.

## Design goals

- Display-only widget (no inputs/outputs).
- Non-blocking sampling with async reads.
- Delta-based rates for CPU, disk, network, and process CPU.
- Process table is filtered to the **union of top 50** processes by VIRT, RES, SHR, and CPU for efficiency.

## Requirements

- Node.js (same version supported by your Node-RED runtime)
- Node-RED `>= 1.0.0`
- Node-RED Dashboard 2 (`@flowfuse/node-red-dashboard`)
- Linux with `/proc` and `/sys/class/net`
- Optional for GPU: `nvidia-smi` available in PATH

## Install

```bash
npm install @rosepetal/node-red-dashboard-2-system-monitor
```

Or install from the Node-RED Palette Manager using the same package name.

## Node configuration

The widget appears as `system-monitor` in the dashboard category.

Config fields:
- **Group**: Dashboard 2 group where the widget is rendered.
- **Size**: standard Dashboard 2 widget size.
- **Update interval (ms)**: refresh period (minimum effective value is `250 ms`, default `1000 ms`).

## Notes

- GPU section is auto-disabled when NVIDIA tooling is not available.
- Network interface filtering ignores typical virtual/internal interfaces (loopback, docker, veth, etc.).
- Disk section excludes pseudo filesystems.

## Development

```bash
npm install
npm run build
npm run dev
```

## License

Apache-2.0