npm package: @janart19/node-red-fusebox
Description: A comprehensive collection of custom nodes for interfacing with Fusebox automation controllers - data streams, energy management, and utilities
Author: Janar Takis
Latest version: 0.2.0

# Fusebox - Essential Automation Nodes for Node-RED

A curated collection of Node-RED nodes for Fusebox automation controllers. This package provides core functionality for data stream management, energy control, and essential utilities for building automation systems.

## Features

### Core Infrastructure

-   **Controller Configuration** - Central config for Fusebox automation controllers with multi-controller support
-   **Data Stream Management** - Query, read, and write real-time data streams
-   **Security** - Authentication and authorization for secure dashboard access
-   **SQL Calendar** - Time-based scheduling and calendar operations

### Energy Management

-   **Inverter Control** - Solar/battery inverter power management
-   **Inverter Control (Dual Limits)** - Advanced grid-interactive inverter control with frequency response

### Utilities & Tools

-   **Averager** - Statistical averaging of sensor values
-   **Boolean Logic** - AND, OR, NOT, XOR operations
-   **Flow Analyzer** - Analyze and optimize Node-RED flows
-   **Flow Validator** - Validate flow structure and configuration
-   **Measure Delay** - Measure message propagation delays
-   **PID Controller** - General-purpose PID control
-   **Clock Ticker** - Centralized PWM timing generator
-   **Manual Ticker** - Manual trigger for PWM systems
-   **Triple Status** - Enhanced three-level status visualization

## Installation

### From Node-RED Palette Manager

1. Open Node-RED editor
2. Go to **Menu → Manage palette → Install**
3. Search for `@janart19/node-red-fusebox`
4. Click **Install**

### From Command Line

Run in your Node-RED user directory (typically `~/.node-red`):

```bash
npm install @janart19/node-red-fusebox
```

## Available Nodes

All nodes are organized in the Node-RED palette by category:

### Category: fusebox-core

-   `fusebox-controller` - Controller configuration
-   `fusebox-query-data-streams` - Query real-time data streams
-   `fusebox-query-external-connections` - Query status of external connections
-   `fusebox-read-data-streams` - Read data stream values
-   `fusebox-write-data-streams` - Write data stream values
-   `fusebox-sql-calendar` - Calendar scheduling
-   `fusebox-security` - Security/authentication

### Category: fusebox-energy

-   `fusebox-inverter-control` - Inverter control
-   `fusebox-inverter-control-dual-limits` - Advanced inverter control

### Category: fusebox-utils

-   `fusebox-averager` - Value averaging
-   `fusebox-boolean-logic` - Boolean operations
-   `fusebox-flow-analyzer` - Flow analysis
-   `fusebox-flow-validator` - Flow validation
-   `fusebox-measure-delay` - Delay measurement
-   `fusebox-pid-controller` - PID control
-   `fusebox-clock-ticker` - Automatic PWM trigger
-   `fusebox-manual-ticker` - Manual PWM trigger
-   `fusebox-triple-status` - Status display

## Quick Start

### 1. Configure a Controller

-   Add any `fusebox-*` node to your flow
-   Open the node's configuration dialog
-   Click the pencil icon next to "Controller"
-   Enter your Fusebox controller's connection details (IP, port)
-   Click "Add"

### 2. Query Data Streams

-   Add a `fusebox-query-data-streams` node
-   Select your controller configuration
-   Connect an inject node to trigger queries
-   Connect a debug node to see output
-   Deploy and test

### 3. Set Up Energy Management

-   Add a `fusebox-inverter-control` node
-   Configure power limits and communication settings
-   Connect to grid frequency and power measurements
-   Enable grid support features as needed

### 4. Build Logic with Utilities

-   Use `fusebox-boolean-logic` for conditional operations
-   Add `fusebox-averager` for smooth sensor readings
-   Implement `fusebox-pid-controller` for custom control loops

## Use Cases

-   **Energy Management** - Solar production, battery storage, grid services
-   **Data Stream Integration** - Real-time monitoring and control
-   **Virtual Power Plant** - Grid-interactive energy optimization
-   **Custom Control** - PID loops, logic operations, timing functions
-   **Development & Testing** - Flow validation, performance monitoring

## Documentation

For detailed documentation on each node:

1. Open the Node-RED editor
2. Click the **ℹ️ info** button in the right sidebar
3. Select any `fusebox-*` node in your flow to see its complete documentation

## Requirements

-   Node-RED version 4.0.0 or higher
-   Node.js version 16 or higher
-   Access to a Fusebox automation controller

## Support & Feedback

This package is in active development. Feedback, bug reports, and feature requests are welcome!

## License

MIT - See LICENSE file for details