Skip to content

AutomataControls/AutomataControlsNexusBms-Production

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

112 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Automata Controls Logo

Automata Controls Nexus BMS - Enterprise Building Management System

MIT License Node.js Redis InfluxDB 3.0 Multi-Plugin Engine Predictive AI Energy Optimization Intelligent Alerts Firebase React PWA PM2 TypeScript BullMQ

🏒 Overview

Automata Controls Nexus BMS is a production-ready, enterprise-grade Building Management System (BMS) built with modern web technologies. It provides real-time monitoring, intelligent control, and distributed processing for industrial HVAC equipment across multiple locations.

Powered by InfluxDB 3.0 Multi-Plugin Processing Engine - Leveraging the power of next-generation time-series data platform with three simultaneous AI-driven plugins for equipment control, predictive maintenance, and energy optimization delivering lightning-fast analytics, real-time processing, and unparalleled scalability.

πŸ“Έ Screenshots & Features

πŸŽ›οΈ Real-time Equipment Control Dashboard

Dashboard Overview Live monitoring of HVAC equipment with real-time metrics and control capabilities

πŸ”§ Advanced Equipment Controls

Equipment Controls Intuitive control interfaces for boilers, chillers, air handlers, and pumps

πŸ“Š InfluxDB 3.0 Analytics

Analytics Dashboard Powerful time-series analytics with sub-second query performance

πŸ—οΈ Multi-Location Management

Location Management Distributed processing across multiple facilities with centralized monitoring

🌟 Key Features

  • Real-time Equipment Control - Live monitoring and control of boilers, chillers, air handlers, pumps, and more
  • InfluxDB3 Multi-Plugin Processing Engine - Four simultaneous AI-driven plugins with sub-second response times and zero connection leaks
  • πŸ”§ HVAC Control Engine - Event-driven equipment control with sophisticated automation logic
  • πŸ” Predictive Maintenance Engine - AI-powered equipment health monitoring, failure prediction, and maintenance optimization
  • ⚑ Energy Optimization Engine - Real-time energy analysis, peak demand management, and cost optimization
  • 🚨 Intelligent Alert Engine - Multi-channel notifications with Resend API integration, Slack, Discord, and custom webhooks
  • Distributed Architecture - Independent location processors for fault tolerance and scalability
  • InfluxDB 3.0 Integration - Lightning-fast time-series data storage with columnar architecture and Apache Arrow
  • Intelligent Equipment Logic - Sophisticated PID control, lead-lag coordination, and OAR (Outdoor Air Reset) calculations
  • Cross-User Synchronization - Redis-based state management for multi-user environments
  • Enterprise Reliability - BullMQ job queues, error handling, and automatic failover
  • Modern PWA Interface - React/Next.js responsive web application with offline capabilities
  • Multi-Database Integration - InfluxDB3 for time-series data, Firebase for authentication and real-time updates

πŸš€ InfluxDB 3.0 Multi-Plugin Processing Engine

Automata Controls Nexus BMS leverages the cutting-edge InfluxDB 3.0 Processing Engine with three simultaneous AI-driven plugins for revolutionary building management capabilities:

🎯 Four-Plugin Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Equipment     │───►│  InfluxDB3      │───►│  Processing     β”‚
β”‚   Sensors       β”‚    β”‚  Metrics Table  β”‚    β”‚  Engine Hub     β”‚
β”‚   (Real-time)   β”‚    β”‚                 β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                        β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β–Ό             β–Ό             β–Ό                 β–Ό                 β–Ό             β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚πŸ”§ HVAC      β”‚β”‚πŸ” Predictiveβ”‚β”‚βš‘ Energy    β”‚ β”‚πŸš¨ Alert     β”‚ β”‚πŸ“§ Email     β”‚β”‚πŸ“± Slack/    β”‚
 β”‚Control      β”‚β”‚Maintenance  β”‚β”‚Optimization β”‚ β”‚Engine       β”‚ β”‚(Resend API) β”‚β”‚Discord      β”‚
 β”‚Engine       β”‚β”‚Engine       β”‚β”‚Engine       β”‚ β”‚             β”‚ β”‚Integration  β”‚β”‚Webhooks     β”‚
 β”‚             β”‚β”‚             β”‚β”‚             β”‚ β”‚ β€’ Equipment β”‚ β”‚             β”‚β”‚             β”‚
 β”‚β€’ Equipment  β”‚β”‚β€’ Health     β”‚β”‚β€’ Power      β”‚ β”‚   Alerts    β”‚ β”‚β€’ Professionalβ”‚β”‚β€’ Real-time  β”‚
 β”‚  Commands   β”‚β”‚  Scoring    β”‚β”‚  Analysis   β”‚ β”‚β€’ Predictive β”‚ β”‚  HTML       β”‚β”‚  Notificationsβ”‚
 β”‚β€’ Real-time  β”‚β”‚β€’ Failure    β”‚β”‚β€’ Peak       β”‚ β”‚  Maintenanceβ”‚β”‚β€’ Delivery   β”‚β”‚β€’ Multi-     β”‚
 β”‚  Control    β”‚β”‚  Prediction β”‚β”‚  Demand     β”‚ β”‚  Alerts     β”‚ β”‚  Tracking   β”‚β”‚  channel    β”‚
 β”‚β€’ Safety     β”‚β”‚β€’ Maintenanceβ”‚β”‚β€’ Cost       β”‚ β”‚β€’ Energy     β”‚ β”‚β€’ Alert      β”‚β”‚  Support    β”‚
 β”‚  Logic      β”‚β”‚  Scheduling β”‚β”‚  Reduction  β”‚ β”‚  Alerts     β”‚ β”‚  History    β”‚β”‚             β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚             β”‚             β”‚                 β”‚                 β”‚             β”‚
          β–Ό             β–Ό             β–Ό                 β–Ό                 β–Ό             β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚Equipment    β”‚β”‚Maintenance  β”‚β”‚Energy       β”‚ β”‚Alert        β”‚ β”‚Email        β”‚β”‚Webhook      β”‚
 β”‚Commands     β”‚β”‚Analytics    β”‚β”‚Analytics    β”‚ β”‚History      β”‚ β”‚Delivery     β”‚β”‚Delivery     β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”§ HVAC Control Engine

The Automata Controls Nexus HVAC Plugin transforms traditional polling-based control into real-time, event-driven automation:

# Automata Controls Nexus InfluxDB3 HVAC Control Plugin
# Event-driven HVAC control with zero connection leaks
def process_writes(influxdb3_local, table_batches, args=None):
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            # Real-time equipment logic triggered by sensor data
            for row in table_batch["rows"]:
                equipment_commands = process_hvac_equipment(row)
                write_control_commands(influxdb3_local, equipment_commands)

Features:

  • Sub-second Equipment Response - Immediate reaction to sensor changes
  • Sophisticated HVAC Logic - PID control, lead-lag coordination, OAR calculations
  • Zero Connection Leaks - Eliminates traditional factory connection issues
  • Safety Validation - Comprehensive equipment safety checks
  • Multi-Equipment Support - Boilers, chillers, air handlers, pumps, fan coils

πŸ” Predictive Maintenance Engine

The Automata Controls Predictive Maintenance Plugin provides AI-powered equipment health monitoring:

# Automata Controls Nexus InfluxDB3 Predictive Maintenance Plugin
# AI-powered equipment health and failure prediction
def process_writes(influxdb3_local, table_batches, args=None):
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            for row in table_batch["rows"]:
                # Analyze equipment health in real-time
                health_analysis = analyze_equipment_health(row)
                failure_prediction = predict_equipment_failure(health_analysis)
                write_maintenance_analytics(influxdb3_local, health_analysis, failure_prediction)

Capabilities:

  • Equipment Health Scoring - Real-time 0-100% health scores for all equipment
  • Failure Prediction - AI algorithms predict failures 1-180 days in advance
  • Maintenance Optimization - Automatic scheduling based on equipment condition
  • Cost Estimation - Predictive maintenance cost analysis and budgeting
  • Alert Generation - Critical condition alerts with recommended actions
  • Historical Trend Analysis - Long-term equipment performance tracking

Supported Equipment Types:

  • Boilers - Temperature, pressure, efficiency monitoring
  • Chillers - Refrigerant analysis, compressor health
  • Air Handlers - Fan bearing analysis, filter monitoring
  • Pumps - Vibration analysis, cavitation detection
  • Fan Coils - Motor health, valve performance
  • Heat Exchangers - Fouling detection, efficiency loss

⚑ Energy Optimization Engine

The Automata Controls Energy Optimization Plugin delivers real-time energy analysis and cost reduction:

# Automata Controls Nexus InfluxDB3 Energy Optimization Plugin
# Real-time energy analysis and cost optimization
def process_writes(influxdb3_local, table_batches, args=None):
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            # Analyze energy consumption by location
            location_equipment = group_equipment_by_location(table_batch["rows"])
            for location_id, equipment_list in location_equipment.items():
                energy_analysis = analyze_location_energy(location_id, equipment_list)
                optimization_opportunities = identify_optimization_opportunities(energy_analysis)
                optimization_commands = generate_optimization_commands(optimization_opportunities)
                write_energy_analytics(influxdb3_local, energy_analysis, optimization_commands)

Features:

  • Real-time Energy Monitoring - Live power consumption analysis across all locations
  • Peak Demand Management - Automatic load shedding during peak utility periods
  • Cost Optimization - Real-time utility rate integration and cost tracking
  • Load Shifting - Intelligent equipment scheduling to reduce energy costs
  • Carbon Footprint Tracking - Environmental impact monitoring and reduction
  • Efficiency Analysis - Equipment efficiency scoring and improvement recommendations
  • Demand Response - Automated participation in utility demand response programs

Energy Savings:

  • 15-30% Energy Cost Reduction - Through intelligent load management
  • 20-40% Peak Demand Reduction - During optimization periods
  • Real-time Rate Optimization - Automatic adjustment to utility pricing
  • Equipment Staging - Efficiency-based equipment operation sequencing

🚨 Alert Engine

The Automata Controls Alert Engine Plugin provides intelligent, multi-channel alerting with seamless integration to your existing BMS infrastructure:

# Automata Controls Nexus InfluxDB3 Alert Engine Plugin
# Multi-channel alerting with Resend API integration
def process_writes(influxdb3_local, table_batches, args=None):
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            for row in table_batch["rows"]:
                # Analyze equipment conditions for critical alerts
                alert = analyze_equipment_alerts(row)
                if alert:
                    # Send via multiple channels simultaneously
                    send_resend_email(alert)  # Professional HTML emails
                    send_slack_notification(alert)  # Real-time Slack alerts
                    send_discord_notification(alert)  # Discord webhooks
                    write_alert_history(alert)  # Tracking and analytics

Alert Types & Triggers:

  • 🌑️ Critical Temperature Alerts - Immediate notifications when equipment exceeds safe operating temperatures
  • πŸ”§ Equipment Pressure Alerts - High/low pressure warnings for boilers, pumps, and system safety
  • πŸ” Predictive Maintenance Alerts - Health score warnings and failure predictions from AI analysis
  • ⚑ Energy Optimization Alerts - High consumption warnings and efficiency opportunities
  • πŸ“Š System Health Alerts - Processing engine errors, database connectivity, and system status

Multi-Channel Delivery:

  • πŸ“§ Resend API Integration - Professional HTML emails with delivery tracking
  • πŸ“± Slack Webhooks - Real-time team notifications with rich formatting
  • πŸ’¬ Discord Integration - Community and team alerts with embedded content
  • 🌐 Custom HTTP Endpoints - Flexible webhook support for any service
  • πŸ“Š Alert History Database - Complete audit trail and analytics tracking

Smart Features:

  • ⏰ Alert Cooldowns - Prevent notification spam with intelligent timing
  • 🎯 Priority-Based Routing - Critical alerts get immediate delivery across all channels
  • πŸ”„ Retry Logic - Automatic retry with exponential backoff for delivery reliability
  • 🏷️ Equipment Classification - Automatic equipment type detection and appropriate thresholds

🎯 Multi-Plugin Performance Benefits

Traditional Single-Plugin Systems Automata Controls 4-Plugin Processing Engine
❌ Limited to single function βœ… Four simultaneous AI engines
❌ Reactive maintenance only βœ… Predictive maintenance analytics
❌ No energy optimization βœ… Real-time energy cost optimization
❌ Basic equipment control βœ… Advanced HVAC automation + AI insights
❌ Manual alert management βœ… Intelligent multi-channel alerting
❌ Separate systems required βœ… Unified platform with 4 engines
❌ Higher operational costs βœ… 15-30% energy savings + reduced maintenance
❌ Reactive problem solving βœ… Proactive AI-driven insights and notifications

πŸ—οΈ Processing Engine Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Sensor Data   │───►│  InfluxDB3      │───►│  Processing     β”‚
β”‚   (Real-time)   β”‚    β”‚  Metrics Table  β”‚    β”‚  Engine Plugin  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                        β”‚
                                                        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Equipment     │◄───│  Control        │◄───│  HVAC Logic     β”‚
β”‚   (Immediate)   β”‚    β”‚  Commands       β”‚    β”‚  (Event-based)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Multi-Plugin Processing Engine Benefits

Traditional Factories InfluxDB3 Multi-Plugin Processing Engine
❌ Polling every 30-60s βœ… Real-time event triggers (3 plugins)
❌ Connection leaks (400+) βœ… Zero connection leaks
❌ 20-30 minute delays βœ… Sub-second response times
❌ 6 separate processes βœ… Single event-driven system
❌ Resource intensive βœ… Lightweight and efficient
❌ Limited functionality βœ… HVAC + Predictive + Energy optimization

πŸ”§ Dual-Run Capabilities

The system supports dual-run operation with multiple processing layers for maximum reliability and coverage:

# Traditional Factory System (Port 8181) - PRODUCTION
pm2 status | grep factory
β”œβ”€β”€ Warren Factory: βœ… Running (Traditional polling-based)
β”œβ”€β”€ Huntington Factory: βœ… Running (Traditional polling-based)
β”œβ”€β”€ Hopebridge Factory: βœ… Running (Traditional polling-based)
β”œβ”€β”€ Element Factory: βœ… Running (Traditional polling-based)
β”œβ”€β”€ FirstChurch Factory: βœ… Running (Traditional polling-based)
└── NE Realty Factory: βœ… Running (Traditional polling-based)

# Independent Location Processors - CUSTOM LOGIC
pm2 status | grep processor
β”œβ”€β”€ Location-A Processor: βœ… Running (Custom equipment logic)
β”œβ”€β”€ Location-B Processor: βœ… Running (Custom equipment logic)
β”œβ”€β”€ Location-C Processor: βœ… Running (Custom equipment logic)
└── Location-D Processor: βœ… Running (Custom equipment logic)

# 4-Plugin Processing Engine (Port 8182) - AI ENHANCEMENT
influxdb3 list triggers --host http://localhost:8182
β”œβ”€β”€ HVAC Control Engine: βœ… Active (Event-driven equipment control)
β”œβ”€β”€ Predictive Maintenance Engine: βœ… Active (AI health monitoring)
β”œβ”€β”€ Energy Optimization Engine: βœ… Active (Cost reduction analytics)
└── Alert Engine: βœ… Active (Multi-channel notifications)

πŸ“Š InfluxDB 3.0 Advantages

  • Columnar Storage - Apache Parquet format for 10x better compression and query performance
  • Apache Arrow - In-memory analytics with zero-copy data access
  • SQL Compatibility - Standard SQL queries alongside InfluxQL for maximum flexibility
  • Unlimited Cardinality - Handle millions of unique series without performance degradation
  • Real-time Analytics - Sub-second query responses for live equipment monitoring
  • Event-Driven Processing - Trigger equipment control automatically when sensor data arrives
  • Multi-Plugin Support - Run multiple specialized engines simultaneously

πŸ—οΈ Enhanced Database Architecture

Equipment Sensors β†’ InfluxDB 3.0 Databases
                   β”œβ”€β”€ UIControlCommands (User actions)
                   β”œβ”€β”€ NeuralControlCommands (AI-generated commands)
                   β”œβ”€β”€ EquipmentConfig (Configuration data)
                   β”œβ”€β”€ Locations (Time-series metrics)
                   β”œβ”€β”€ ProcessingEngineCommands (Event-driven commands)
                   β”œβ”€β”€ equipment_health (Predictive maintenance data)
                   β”œβ”€β”€ failure_predictions (AI failure analysis)
                   β”œβ”€β”€ maintenance_schedule (Optimized maintenance plans)
                   β”œβ”€β”€ energy_consumption (Real-time energy analytics)
                   β”œβ”€β”€ optimization_opportunities (Energy savings analysis)
                   └── optimization_commands (Energy control commands)

πŸ“ˆ Enhanced Performance Benefits

  • 10-100x faster queries compared to InfluxDB 1.x
  • Real-time response - Equipment responds immediately to sensor changes
  • Massive scale - Handle petabytes of equipment data
  • Real-time insights - Live equipment performance analytics
  • Cost efficiency - Reduced storage costs through superior compression
  • Zero connection leaks - Eliminates connection pooling issues permanently
  • 15-30% energy savings - Through intelligent optimization
  • Predictive maintenance - Prevent failures before they occur
  • Multi-engine processing - Three AI systems working simultaneously

πŸ—οΈ Enhanced Hybrid System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   React PWA     β”‚    β”‚  Enhanced       β”‚    β”‚  Location       β”‚
β”‚   (Next.js)     │◄──►│  Equipment      │◄──►│  Processors     β”‚
β”‚                 β”‚    β”‚  Worker         β”‚    β”‚  (Multiple)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β–Ό                       β–Ό                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Firebase      β”‚    β”‚   Redis +       β”‚    β”‚   InfluxDB3     β”‚
β”‚   (Auth/RTDB)   β”‚    β”‚   BullMQ        β”‚    β”‚   (Dual System) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                        β”‚
                                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                β–Ό                       β–Ό                       β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚ Traditional     β”‚    β”‚ 4-Plugin        β”‚    β”‚ Logic           β”‚
                       β”‚ Factories       β”‚    β”‚ Processing      β”‚    β”‚ Processors      β”‚
                       β”‚ (Port 8181)     β”‚    β”‚ Engine (8182)   β”‚    β”‚ (Independent)   β”‚
                       β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
                       β”‚ β€’ Warren        β”‚    β”‚ β€’ HVAC Control  β”‚    β”‚ β€’ Location A    β”‚
                       β”‚ β€’ Huntington    β”‚    β”‚ β€’ Predictive    β”‚    β”‚ β€’ Location B    β”‚
                       β”‚ β€’ Hopebridge    β”‚    β”‚   Maintenance   β”‚    β”‚ β€’ Location C    β”‚
                       β”‚ β€’ Element       β”‚    β”‚ β€’ Energy        β”‚    β”‚ β€’ Location D    β”‚
                       β”‚ β€’ FirstChurch   β”‚    β”‚   Optimization  β”‚    β”‚ β€’ Custom Logic  β”‚
                       β”‚ β€’ NE Realty     β”‚    β”‚ β€’ Alert Engine  β”‚    β”‚ β€’ Equipment     β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Enhanced Hybrid Data Flow

  1. User Interface β†’ Equipment controls via React PWA
  2. Command Processing β†’ BullMQ queue β†’ Enhanced Equipment Worker
  3. Database Writes β†’ UIControlCommands, NeuralControlCommands, EquipmentConfig
  4. Traditional Equipment Logic β†’ Independent location processors execute equipment-specific algorithms (30s-5min intervals)
  5. Legacy Factory System β†’ Warren, Huntington, Hopebridge, Element, FirstChurch, NE Realty factories (Port 8181)
  6. 4-Plugin Processing Engine β†’ Four AI engines respond to sensor data automatically (Port 8182):
    • πŸ”§ HVAC Control - Real-time equipment automation
    • πŸ” Predictive Maintenance - Health monitoring and failure prediction
    • ⚑ Energy Optimization - Cost reduction and efficiency analysis
    • 🚨 Alert Engine - Multi-channel notifications and alerting
  7. Real-time Updates β†’ Redis state management for cross-user synchronization

πŸš€ Quick Start

Prerequisites

  • Node.js 20.x+
  • Redis 6.x+
  • InfluxDB3
  • Firebase project

Installation

  1. Clone and Install
git clone https://github.com/AutomataControls/AutomataControlsNexusBms-Production.git
cd AutomataControlsNexusBms-Production
npm install

Or using GitHub CLI:

gh repo clone AutomataControls/AutomataControlsNexusBms-Production
cd AutomataControlsNexusBms-Production
npm install
  1. Environment Configuration
# Copy environment template
cp .env.example .env

# Configure your environment variables

.env.example Template

# Firebase Configuration (Replace with your Firebase project details)
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=yourproject.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=yourproject.firebasestorage.app
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id
NEXT_PUBLIC_FIREBASE_DATABASE_URL=https://yourproject-default-rtdb.firebaseio.com/

# Firebase Admin SDK Service Account (Replace with your service account JSON)
FIREBASE_SERVICE_ACCOUNT={"type":"service_account","project_id":"your-project","private_key_id":"your_key_id","private_key":"-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n","client_email":"firebase-adminsdk@yourproject.iam.gserviceaccount.com","client_id":"your_client_id","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk%40yourproject.iam.gserviceaccount.com","universe_domain":"googleapis.com"}

# InfluxDB Configuration
INFLUXDB_URL=http://your-influxdb-server:8181
INFLUXDB_TOKEN=your_influxdb_token
INFLUXDB2_TOKEN=your_influxdb2_token
INFLUXDB_ORG=YourOrganization
INFLUXDB_DATABASE=Locations
INFLUXDB_DATABASE2=ControlCommands
INFLUXDB_DATABASE3=UIControlCommands
INFLUXDB_DATABASE4=EquipmentConfig
INFLUXDB_DATABASE5=NeuralControlCommands
INFLUXDB_COMMANDS_BUCKET=Control
INFLUXDB_LOCATIONS_BUCKET=Locations

# Email Configuration (Optional - for alerts and notifications)
DEFAULT_RECIPIENT=admin@yourcompany.com
EMAIL_USER=notifications@yourcompany.com
EMAIL_PASSWORD=your_email_app_password
RESEND_API_KEY=your_resend_api_key

# Redis Configuration
REDIS_URL=redis://localhost:6379

# Application Security
LOG_VIEWER_KEY=your_secure_log_viewer_key
NEXT_PUBLIC_LOG_VIEWER_KEY=your_secure_log_viewer_key

# Application URLs (Production)
NEXT_PUBLIC_SOCKET_URL=https://yourdomain.com/socket.io
NEXT_PUBLIC_BRIDGE_URL=https://yourdomain.com
NEXT_PUBLIC_FIREBASE_SIGN_IN_REDIRECT_URL=https://yourdomain.com
NEXT_PUBLIC_FIREBASE_SIGN_IN_SUCCESS_URL=https://yourdomain.com/dashboard

# Development URLs (Local Development)
# NEXT_PUBLIC_SOCKET_URL=http://localhost:3000/socket.io
# NEXT_PUBLIC_BRIDGE_URL=http://localhost:3000
# NEXT_PUBLIC_FIREBASE_SIGN_IN_REDIRECT_URL=http://localhost:3000
# NEXT_PUBLIC_FIREBASE_SIGN_IN_SUCCESS_URL=http://localhost:3000/dashboard
  1. Database Setup
# Create InfluxDB databases
curl -X POST "http://your-influxdb-server:8181/api/v3/write_lp?db=UIControlCommands&precision=nanosecond" \
  -H "Content-Type: text/plain" \
  -d "init_measurement value=1 $(date +%s)000000000"

curl -X POST "http://your-influxdb-server:8181/api/v3/write_lp?db=EquipmentConfig&precision=nanosecond" \
  -H "Content-Type: text/plain" \
  -d "init_measurement value=1 $(date +%s)000000000"

curl -X POST "http://your-influxdb-server:8181/api/v3/write_lp?db=NeuralControlCommands&precision=nanosecond" \
  -H "Content-Type: text/plain" \
  -d "init_measurement value=1 $(date +%s)000000000"
  1. Start Development
# Build TypeScript workers
npm run build:workers

# Start development server
npm run dev

# Start production with PM2
pm2 start ecosystem.config.js

πŸ”§ InfluxDB3 Multi-Plugin Processing Engine Setup

Enable Multi-Plugin Processing Engine

  1. Start InfluxDB3 with Processing Engine
# Start InfluxDB3 with plugin directory enabled
influxdb3 serve \
  --node-id=node0 \
  --http-bind=0.0.0.0:8181 \
  --object-store=file \
  --data-dir /opt/productionapp/influxdb/data \
  --plugin-dir /opt/productionapp/plugins \
  --without-auth

Deploy Multi-Plugin Architecture

  1. Create Plugin Directories
# Create plugin directories
mkdir -p /opt/productionapp/plugins/hvac
mkdir -p /opt/productionapp/plugins/analytics
mkdir -p /opt/productionapp/plugins/optimization
mkdir -p /opt/productionapp/plugins/alerts

# Deploy the Automata Controls Nexus plugin suite
# (Contact support for the full enterprise plugin suite)
  1. Install Required Packages
# Install httpx for Alert Engine
influxdb3 install package httpx
  1. Create Multi-Plugin Processing Engine Triggers
# Create HVAC Control Engine trigger
influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "hvac/automata_controls_nexus_plugin.py" \
  --database Locations \
  automata_controls_hvac_engine

# Create Predictive Maintenance Engine trigger
influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "analytics/predictive_maintenance_plugin.py" \
  --database Locations \
  predictive_maintenance_engine

# Create Energy Optimization Engine trigger
influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "optimization/energy_optimization_plugin.py" \
  --database Locations \
  energy_optimization_engine

# Create Alert Engine trigger
influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "alerts/automata_alert_engine.py" \
  --database Locations \
  --trigger-arguments "api_base_url=https://yourapp.com,recipient_email=admin@yourcompany.com,alerts_db=alerts_history" \
  equipment_alert_engine
  1. Verify Multi-Plugin Processing Engine Status
# Check all active triggers
influxdb3 query \
  --database system \
  "SELECT * FROM processing_engine_triggers"

# Monitor all plugin performance
influxdb3 query \
  --database system \
  "SELECT * FROM processing_engine_logs ORDER BY time DESC LIMIT 20"

# Verify real-time 4-plugin operation
tail -f /var/log/influxdb3_plugins.log | grep -E "(HVAC|Predictive|Energy|Alert)"

🏭 Production Deployment

PM2 Process Management

The system runs as multiple independent processes plus the Multi-Plugin Processing Engine:

# Start all processes
pm2 start ecosystem.config.js

# Monitor processes
pm2 status
pm2 logs

# Individual process management
pm2 restart location-processor-1
pm2 logs enhanced-equipment-worker

Enhanced Multi-Layer Process Architecture

Process Layer Purpose Resources Intervals
nexus-app Next.js PWA application ~70MB Real-time
monitoring-service System alerts and monitoring ~90MB Continuous
enhanced-equipment-worker UI command processing (2 instances) ~80MB each Event-driven
Traditional Factories Production equipment control (6 locations) ~80MB each 30-60s intervals
Location Processors Custom equipment logic (4 locations) ~80-100MB each Variable intervals
influxdb3-4-plugin-engine Four AI-driven plugins (HVAC + Predictive + Energy + Alerts) ~140MB Sub-second

Independent Location Processors + Multi-Plugin Engine

Each location runs completely independently plus the Multi-Plugin Processing Engine provides real-time AI analysis:

Example Location Processor:

  • Equipment type A control (variable intervals)
  • Equipment type B control (variable intervals)
  • Equipment type C control (variable intervals)
  • Equipment type D control (variable intervals)

Custom Location Processors:

  • Air handler control (30s intervals)
  • Fan coil control (30s intervals)
  • Pump control (30s intervals)
  • Boiler/Chiller control (2-5min intervals)

Multi-Plugin Processing Engine:

  • πŸ”§ HVAC Control Plugin - Real-time sensor-triggered control (sub-second response)
  • πŸ” Predictive Maintenance Plugin - Equipment health monitoring and failure prediction
  • ⚑ Energy Optimization Plugin - Energy analysis and cost optimization
  • Zero connection leak architecture across all three plugins

πŸŽ›οΈ Equipment Control Features

Enhanced HVAC Controls with Multi-Plugin Intelligence

Boiler Controls

  • Temperature Setpoints - Supply temperature control with OAR calculations
  • Lead-Lag Coordination - Automatic equipment rotation and staging
  • Safety Systems - Emergency shutdown and safety monitoring
  • Efficiency Tracking - Real-time efficiency calculations
  • πŸ” Predictive Health Monitoring - AI-powered failure prediction and maintenance scheduling
  • ⚑ Energy Optimization - Real-time energy cost analysis and optimization

Air Handler Controls

  • PID Control - Precise temperature and airflow control
  • Mixed Air Management - Outside air reset and economizer control
  • Fan Speed Control - Variable frequency drive management
  • Filter Monitoring - Differential pressure tracking
  • πŸ” Bearing Health Analysis - Predictive maintenance for fan bearings and motors
  • ⚑ Load Scheduling - Intelligent scheduling for peak demand reduction

Pump Controls

  • Lead-Lag Operations - Primary/backup pump coordination
  • Flow Management - Variable speed control based on demand
  • Efficiency Monitoring - Power consumption tracking
  • Cavitation Protection - Safety monitoring and alerts
  • πŸ” Vibration Analysis - Predictive maintenance for bearing wear and seal failure
  • ⚑ Energy Staging - Efficiency-based pump staging and load optimization

Fan Coil Controls

  • Zone Temperature Control - Individual zone management
  • Valve Positioning - Heating and cooling valve control
  • Fan Speed Management - Multi-speed fan control
  • Occupancy Scheduling - Time-based control strategies
  • πŸ” Motor Health Monitoring - Predictive maintenance for motor and valve performance
  • ⚑ Load Balancing - Intelligent load distribution for energy efficiency

πŸ”§ Enhanced Equipment Logic System

Location-Specific Equipment Files + Multi-Plugin Intelligence

lib/equipment-logic/locations/
β”œβ”€β”€ location-a/
β”‚   β”œβ”€β”€ boiler.js          # Boiler control logic + AI insights
β”‚   β”œβ”€β”€ chiller.js         # Chiller control logic + predictive maintenance
β”‚   β”œβ”€β”€ fan-coil.js        # Fan coil control logic + energy optimization
β”‚   β”œβ”€β”€ pumps.js           # Pump control logic + health monitoring
β”‚   └── lead-lag-helpers.js
β”œβ”€β”€ location-b/
β”‚   β”œβ”€β”€ air-handler.js     # Air handler control logic + AI analysis
β”‚   β”œβ”€β”€ fan-coil.js        # Fan coil control logic + predictive insights
β”‚   β”œβ”€β”€ pumps.js           # Pump control logic + energy optimization
β”‚   └── steam-bundle.js    # Steam bundle control logic + health monitoring
β”œβ”€β”€ location-c/
β”‚   β”œβ”€β”€ air-handler.js     # + Multi-plugin AI enhancements
β”‚   └── boiler.js          # + Predictive maintenance integration
└── location-d/
    └── air-handler.js     # + Energy optimization intelligence

Enhanced Equipment Logic Interface

All equipment logic files implement a standard 4-parameter interface enhanced with Multi-Plugin AI insights:

function processEquipment(metrics, commands, settings, state) {
  // metrics: Current sensor readings from InfluxDB + AI health scores
  // commands: Recent UI commands from users + AI optimization recommendations
  // settings: Equipment configuration + predictive maintenance parameters
  // state: Previous processing state + energy optimization history
  
  // Returns: Array of commands to write to NeuralControlCommands
  return commands
}

Multi-Plugin Processing Engine Interface

The Automata Controls Nexus Multi-Plugin Processing Engine uses event-driven triggers with three simultaneous AI engines:

# HVAC Control Plugin
def process_hvac_writes(influxdb3_local, table_batches, args=None):
    """Real-time equipment control and automation"""
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            for row in table_batch["rows"]:
                # Real-time HVAC equipment logic processing
                commands = process_hvac_equipment_logic(row)
                write_control_commands(influxdb3_local, commands)

# Predictive Maintenance Plugin  
def process_maintenance_writes(influxdb3_local, table_batches, args=None):
    """AI-powered equipment health monitoring and failure prediction"""
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            for row in table_batch["rows"]:
                # AI health analysis and failure prediction
                health_analysis = analyze_equipment_health(row)
                failure_prediction = predict_equipment_failure(health_analysis)
                write_maintenance_analytics(influxdb3_local, health_analysis, failure_prediction)

# Energy Optimization Plugin
def process_energy_writes(influxdb3_local, table_batches, args=None):
    """Real-time energy analysis and cost optimization"""
    for table_batch in table_batches:
        if table_batch["table_name"] == "metrics":
            # Energy consumption analysis and optimization
            location_equipment = group_equipment_by_location(table_batch["rows"])
            for location_id, equipment_list in location_equipment.items():
                energy_analysis = analyze_location_energy(location_id, equipment_list)
                optimization_commands = generate_optimization_commands(energy_analysis)
                write_energy_analytics(influxdb3_local, energy_analysis, optimization_commands)

🌐 Enhanced API Endpoints

Equipment Control APIs + Multi-Plugin Data

Endpoint Method Purpose
/api/equipment/[id]/state GET Get current equipment state + AI health score
/api/equipment/[id]/command POST Send equipment command
/api/equipment/[id]/status/[jobId] GET Check command status
/api/equipment/[id]/health GET Get AI health analysis and predictions
/api/equipment/[id]/energy GET Get real-time energy consumption and optimization
/api/influx/control-data POST Get equipment metrics
/api/influx/equipment-data POST Get historical data
/api/influx/health-data POST Get predictive maintenance analytics
/api/influx/energy-data POST Get energy consumption and optimization data
/api/processing-engine/status GET Get Multi-Plugin Processing Engine status
/api/processing-engine/triggers GET List all active triggers (3 plugins)
/api/predictive-maintenance/alerts GET Get maintenance alerts and recommendations
/api/energy-optimization/opportunities GET Get energy savings opportunities

Enhanced Equipment Command Example

// POST /api/equipment/EQUIPMENT_ID_123/command
{
  "command": "APPLY_CONTROL_SETTINGS",
  "equipmentName": "Equipment-Unit-1",
  "equipmentType": "boiler",
  "locationId": "location-1",
  "locationName": "Sample Building Location",
  "settings": {
    "enabled": true,
    "supplyTempSetpoint": 180,
    "isLead": true
  },
  "userId": "user_id_example",
  "userName": "System Admin",
  "priority": "normal",
  // Enhanced with Multi-Plugin AI insights
  "aiInsights": {
    "healthScore": 87.5,
    "predictedFailureRisk": "low",
    "energyEfficiency": 92.3,
    "maintenanceRecommendation": "routine_maintenance_in_60_days",
    "energyOptimizationOpportunity": "none"
  }
}

πŸ—ƒοΈ Enhanced Database Schema

InfluxDB3 Databases + Multi-Plugin Data

UIControlCommands - User interface commands

Measurement: UIControlCommands
Tags: equipmentId, locationId, userId, command
Fields: userName, priority, enabled, supplyTempSetpoint, isLead

NeuralControlCommands - Processed equipment commands

Measurement: NeuralControlCommands  
Tags: equipmentId, locationId, source, userId
Fields: command, userName, priority, settings

ProcessingEngineCommands - Event-driven equipment commands

Measurement: ProcessingEngineCommands
Tags: equipmentId, locationId, command_type, equipment_type, source, status
Fields: value, timestamp

EquipmentConfig - Equipment configuration data

Measurement: EquipmentConfig
Tags: equipmentId, locationId, equipmentType
Fields: configuration parameters (varies by equipment type)

πŸ” Predictive Maintenance Data:

equipment_health - Real-time equipment health monitoring

Measurement: equipment_health
Tags: equipment_id, location_id, equipment_type, health_status
Fields: health_score, temperature_health, efficiency_health, trend_health, operational_health

failure_predictions - AI-powered failure prediction

Measurement: failure_predictions
Tags: equipment_id, location_id, priority
Fields: failure_probability, time_to_failure_days, recommendation

maintenance_schedule - Optimized maintenance scheduling

Measurement: maintenance_schedule
Tags: equipment_id, location_id, maintenance_type, priority
Fields: duration_hours, estimated_cost

maintenance_alerts - Critical condition alerts

Measurement: maintenance_alerts
Tags: equipment_id, location_id, alert_level, equipment_type
Fields: message, health_score, failure_probability, recommendation

⚑ Energy Optimization Data:

energy_consumption - Real-time energy analysis

Measurement: energy_consumption
Tags: location_id, period_type, rate_period
Fields: total_power_kw, hourly_cost, average_efficiency, equipment_count, carbon_footprint_kg

optimization_opportunities - Energy savings analysis

Measurement: optimization_opportunities
Tags: location_id, analysis_type
Fields: load_shifting_opportunities, efficiency_opportunities, peak_shaving_opportunities, staging_opportunities

optimization_commands - Energy optimization commands

Measurement: optimization_commands
Tags: equipment_id, location_id, command_type, priority
Fields: action, target_value, duration_minutes, expected_savings_kw

🚨 Alert Engine Data:

alert_history - Real-time alert tracking

Measurement: alert_history
Tags: alert_type, severity, source, equipment_id, location_id, equipment_type
Fields: message, value, threshold, health_status, hourly_cost, total_power_kw

alert_notifications - Multi-channel delivery tracking

Measurement: alert_notifications
Tags: alert_id, channel_type, delivery_status
Fields: recipient, message_id, delivery_timestamp, retry_count

Enhanced Redis State Management

Equipment State Keys + AI Insights:

equipment:{equipmentId}:state
{
  "lastModified": "2025-06-08T01:52:16.665Z",
  "lastModifiedBy": "System Admin",
  "userId": "user_id_example",
  "command": "APPLY_CONTROL_SETTINGS",
  "settings": {
    "enabled": true,
    "supplyTempSetpoint": 175,
    "isLead": true
  },
  // Enhanced with Multi-Plugin AI insights
  "aiAnalytics": {
    "healthScore": 89.2,
    "healthStatus": "good",
    "failureProbability": 12,
    "nextMaintenanceDate": "2025-08-15",
    "energyEfficiency": 94.7,
    "currentPowerConsumption": 35.2,
    "hourlyCost": 4.23,
    "optimizationOpportunities": ["load_shifting"],
    "lastAIUpdate": "2025-06-08T01:52:15.123Z"
  }
}

πŸ”’ Enhanced Security & Authentication

Firebase Authentication + AI Data Protection

  • Multi-provider support - Email, Google, etc.
  • Role-based access control - Admin, operator, viewer roles
  • Location-based permissions - Users can access specific locations
  • Session management - Secure token handling
  • AI Data Protection - Secure access to predictive maintenance and energy data

API Security + Multi-Plugin Protection

  • Authentication required - All API endpoints require valid Firebase tokens
  • Rate limiting - BullMQ job queues prevent API abuse
  • Input validation - Equipment commands validated before processing
  • Audit logging - All commands logged to NeuralControlCommands
  • AI Data Encryption - Predictive maintenance and energy optimization data encrypted
  • Plugin Isolation - Each Processing Engine plugin runs in isolated environment

Multi-Plugin Processing Engine Security

  • Plugin sandboxing - Isolated execution environment for all 3 plugins
  • Resource limits - Memory and CPU usage controls per plugin
  • Error handling - Graceful failure recovery across all plugins
  • Audit trail - All plugin activities logged and monitored
  • Data validation - AI predictions and recommendations validated before storage

πŸ“Š Enhanced Monitoring & Alerts

Multi-Plugin System Monitoring

  • PM2 Process Monitoring - Automatic restart on failures
  • Redis Connection Monitoring - Connection health checks
  • InfluxDB Health Checks - Database availability monitoring
  • Equipment Status Tracking - Real-time equipment state monitoring
  • Multi-Plugin Processing Engine Monitoring - Performance tracking for all 3 AI engines
  • AI Health Monitoring - Predictive maintenance algorithm performance
  • Energy Optimization Tracking - Real-time energy savings monitoring

Enhanced Alert System

  • Equipment Alarms - High temperature, low pressure, equipment failures
  • System Alerts - Process failures, database connectivity issues
  • Multi-Plugin Processing Engine Alerts - Plugin errors, trigger failures across all 3 engines
  • πŸ” Predictive Maintenance Alerts - Equipment health warnings, failure predictions, maintenance recommendations
  • ⚑ Energy Optimization Alerts - Peak demand warnings, cost savings opportunities, efficiency recommendations
  • User Notifications - Real-time alerts via Firebase with AI insights

Enhanced Performance Metrics

  • Equipment Response Times - Traditional vs Multi-Plugin Processing Engine comparison
  • Connection Monitoring - Track connection leak prevention across all plugins
  • Memory Usage - System resource optimization including AI plugins
  • Database Performance - Query execution times and throughput
  • AI Algorithm Performance - Predictive accuracy and energy savings achieved
  • Multi-Plugin Efficiency - Resource usage across all 3 simultaneous AI engines

πŸ› οΈ Enhanced Troubleshooting

Common Multi-Plugin Issues

Processes Not Starting:

# Check TypeScript compilation
npx tsc --project tsconfig.worker.json --noEmit

# Test individual workers
npx ts-node --project tsconfig.worker.json lib/workers/enhanced-equipment-worker.ts

Database Connection Issues:

# Test InfluxDB connectivity
curl -X POST "http://your-influxdb-server:8181/api/v3/query_sql" \
  -H "Content-Type: application/json" \
  -d '{"q": "SHOW DATABASES"}'

# Test Redis connectivity
redis-cli ping

Multi-Plugin Processing Engine Issues:

# Check all Processing Engine plugins status
influxdb3 query \
  --database system \
  "SELECT * FROM processing_engine_logs ORDER BY time DESC LIMIT 20"

# List all active triggers (should show 3 plugins)
influxdb3 query \
  --database system \
  "SELECT * FROM processing_engine_triggers"

# Test HVAC Control plugin manually
influxdb3 test wal_plugin \
  --database Locations \
  --lp 'metrics,equipmentId=TEST123,location_id=1 temperature=75.0' \
  hvac/automata_controls_nexus_plugin.py

# Test Predictive Maintenance plugin manually
influxdb3 test wal_plugin \
  --database Locations \
  --lp 'metrics,equipmentId=TEST456,location_id=1 temperature=85.0,pressure=120.0' \
  analytics/predictive_maintenance_plugin.py

# Test Energy Optimization plugin manually
influxdb3 test wal_plugin \
  --database Locations \
  --lp 'metrics,equipmentId=TEST789,location_id=1 temperature=78.0,power_consumption=25.5' \
  optimization/energy_optimization_plugin.py

# Monitor real-time multi-plugin activity
tail -f /var/log/influxdb3_plugins.log | grep -E "(HVAC|Predictive|Energy)"

API Errors:

# Check process logs
pm2 logs nexus-app --lines 20
pm2 logs enhanced-equipment-worker --lines 20

# Individual location processor management
pm2 restart location-processor-1
pm2 logs location-processor-1 --lines 20

# Test API endpoints
curl "http://localhost:3000/api/equipment/test123/state"
curl "http://localhost:3000/api/equipment/test123/health"
curl "http://localhost:3000/api/equipment/test123/energy"

Multi-Plugin Data Verification:

# Verify HVAC control data
curl -X POST "http://your-influxdb-server:8181/api/v3/query_sql" \
  -H "Content-Type: application/json" \
  -d '{"q": "SELECT * FROM \"ProcessingEngineCommands\" ORDER BY time DESC LIMIT 5", "db": "Locations"}'

# Verify predictive maintenance data
curl -X POST "http://your-influxdb-server:8181/api/v3/query_sql" \
  -H "Content-Type: application/json" \
  -d '{"q": "SELECT * FROM equipment_health ORDER BY time DESC LIMIT 5", "db": "Locations"}'

# Verify energy optimization data
curl -X POST "http://your-influxdb-server:8181/api/v3/query_sql" \
  -H "Content-Type: application/json" \
  -d '{"q": "SELECT * FROM energy_consumption ORDER BY time DESC LIMIT 5", "db": "Locations"}'

Enhanced Log Files

Process Log Location
Nexus App /root/.pm2/logs/nexus-app-out-0.log
Equipment Worker /root/.pm2/logs/ui-worker-*.log
Location Processors /root/.pm2/logs/*-processor-*.log
Multi-Plugin Processing Engine /var/log/influxdb3_plugins.log
HVAC Control Plugin /var/log/influxdb3_plugins.log (filter: "HVAC")
Predictive Maintenance Plugin /var/log/influxdb3_plugins.log (filter: "Predictive")
Energy Optimization Plugin /var/log/influxdb3_plugins.log (filter: "Energy")

πŸ”„ Enhanced Development Workflow

Adding New Equipment Types + Multi-Plugin Integration

  1. Create Equipment Logic File with AI Integration
// lib/equipment-logic/locations/your-location/new-equipment.js
function processNewEquipment(metrics, commands, settings, state) {
  // Implement equipment-specific logic
  // Include AI health monitoring integration
  // Include energy optimization considerations
  return generatedCommands
}
  1. Update Location Processor
// Add to lib/workers/location-processors/your-location-processor.ts
'new-equipment': { interval: 60000, lastRun: 0 }
  1. Add Multi-Plugin Processing Engine Logic
# Add to HVAC Control plugin
def process_new_equipment_hvac_logic(influxdb3_local, equipment_id, metrics):
    # Real-time equipment control logic
    commands = generate_new_equipment_commands(metrics)
    return commands

# Add to Predictive Maintenance plugin
def process_new_equipment_health_logic(influxdb3_local, equipment_id, metrics):
    # AI health analysis for new equipment type
    health_analysis = analyze_new_equipment_health(metrics)
    return health_analysis

# Add to Energy Optimization plugin
def process_new_equipment_energy_logic(influxdb3_local, equipment_id, metrics):
    # Energy consumption analysis for new equipment type
    energy_analysis = analyze_new_equipment_energy(metrics)
    return energy_analysis
  1. Add UI Controls with AI Insights
// Create components/equipment-controls/new-equipment-controls.tsx
// Add equipment-specific control interface
// Include health score display
// Include energy consumption metrics
// Include predictive maintenance recommendations

Adding New Locations + Multi-Plugin Support

  1. Create Location Processor
// lib/workers/location-processors/newlocation-processor.ts
// Copy template and customize for location equipment
  1. Add Equipment Logic Directory
mkdir lib/equipment-logic/locations/newlocation
# Add equipment-specific logic files with AI integration
  1. Update Multi-Plugin Processing Engine
# Add location configuration to all 3 plugins
LOCATION_CONFIGS = {
    "new_location_id": {
        "name": "newlocation",
        "equipment_mapping": {
            "equipment_id_1": "equipment-type-1",
            "equipment_id_2": "equipment-type-2"
        },
        "predictive_maintenance_config": {
            "health_thresholds": {...},
            "failure_prediction_models": {...}
        },
        "energy_optimization_config": {
            "utility_rates": {...},
            "peak_demand_limits": {...}
        }
    }
}
  1. Update PM2 Configuration
// Add to ecosystem.config.js
{
  name: 'newlocation-processor',
  script: 'ts-node --project tsconfig.worker.json lib/workers/location-processors/newlocation-processor.ts'
}

Multi-Plugin Processing Engine Development

  1. Enhanced Plugin Structure
# /opt/productionapp/plugins/hvac/enhanced_hvac_plugin.py
def process_writes(influxdb3_local, table_batches, args=None):
    """
    HVAC Control Plugin - Real-time equipment automation
    Works alongside Predictive Maintenance and Energy Optimization plugins
    """
    # Your HVAC control logic here
    pass

# /opt/productionapp/plugins/analytics/predictive_maintenance_plugin.py
def process_writes(influxdb3_local, table_batches, args=None):
    """
    Predictive Maintenance Plugin - AI health monitoring
    Works alongside HVAC Control and Energy Optimization plugins
    """
    # Your predictive maintenance logic here
    pass

# /opt/productionapp/plugins/optimization/energy_optimization_plugin.py
def process_writes(influxdb3_local, table_batches, args=None):
    """
    Energy Optimization Plugin - Cost reduction and efficiency
    Works alongside HVAC Control and Predictive Maintenance plugins
    """
    # Your energy optimization logic here
    pass
  1. Create Multi-Plugin Triggers
# Deploy all plugins and create triggers
influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "hvac/enhanced_hvac_plugin.py" \
  --database Locations \
  enhanced_hvac_controller

influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "analytics/predictive_maintenance_plugin.py" \
  --database Locations \
  predictive_maintenance_engine

influxdb3 create trigger \
  --trigger-spec "table:metrics" \
  --plugin-filename "optimization/energy_optimization_plugin.py" \
  --database Locations \
  energy_optimization_engine
  1. Test Multi-Plugin System
# Test all plugins with comprehensive data
influxdb3 test wal_plugin \
  --database Locations \
  --lp 'metrics,equipmentId=TEST123,location_id=1 temperature=75.0,pressure=120.0,power_consumption=25.5' \
  hvac/enhanced_hvac_plugin.py

# Monitor all plugin activity
tail -f /var/log/influxdb3_plugins.log | grep -E "(HVAC|Predictive|Energy)"

πŸ“ˆ Enhanced Performance Optimization

Current Multi-Plugin Performance Metrics

  • API Response Times - 25-40ms average (improved with AI caching)
  • Equipment Processing - Sub-second (Multi-Plugin Processing Engine) vs 1-2 seconds (traditional)
  • Memory Usage - ~825MB total for all processes (including 3 AI plugins)
  • CPU Usage - Event-driven, minimal baseline usage across all plugins
  • Connection Management - Zero leaks with Multi-Plugin Processing Engine vs 400+ with traditional factories
  • AI Processing - Real-time health scoring and energy analysis with <100ms latency

Multi-Layer Performance Benefits

  • Traditional Factories - Proven, stable equipment control for 6 locations
  • Custom Location Processors - Tailored equipment logic for specific site requirements
  • 4-Plugin AI Enhancement - Real-time intelligence layer across all equipment
  • Event-Driven Processing - Process equipment only when sensor data changes
  • Intelligent Processing - Only process equipment when needed across all layers
  • Batch Database Writes - Efficient InfluxDB operations across all systems
  • Redis Caching - Fast state retrieval for UI including AI insights
  • Independent Scaling - Scale factories, processors, and plugins independently
  • Connection Pooling - Prevent connection leaks in traditional processors
  • AI Model Optimization - Predictive algorithms optimized for real-time performance
  • Energy Data Caching - Fast access to energy optimization recommendations

Multi-Layer Processing Engine Advantages

  • Triple-Layer Processing - Traditional factories + custom processors + AI plugins
  • Real-time AI Response - Equipment responds immediately with AI insights across all layers
  • Resource Efficiency - Optimized performance across traditional and AI systems
  • Maximum Coverage - Every piece of equipment covered by multiple processing layers
  • Reliability - Automatic failover and error recovery across all systems
  • AI-Enhanced Decision Making - Equipment control enhanced with predictive and energy insights
  • Cost Optimization - 15-30% energy savings through multi-layer optimization
  • Legacy Integration - Seamless integration with existing factory systems

πŸ“ˆ Multi-Plugin Performance Benefits

Traditional Single-Function Systems vs Automata Controls Multi-Plugin Engine

Traditional BMS Automata Controls Multi-Plugin Engine
❌ Single Function - Basic equipment control only βœ… Three AI Engines - HVAC + Predictive + Energy optimization
❌ Reactive Maintenance - Fix after failure βœ… Predictive Maintenance - AI prevents failures 1-180 days in advance
❌ No Energy Intelligence - Manual energy management βœ… Real-time Energy Optimization - 15-30% automatic cost reduction
❌ Separate Systems - Multiple vendors and platforms βœ… Unified AI Platform - One system with three intelligent engines
❌ High Operating Costs - Reactive approach is expensive βœ… Cost Reduction - Predictive + energy savings = 20-40% lower costs
❌ Limited Insights - Basic monitoring only βœ… AI-Driven Insights - Health scores, failure predictions, energy analytics

Operational Impact & ROI

Cost Savings:

  • Energy Costs: 15-30% reduction through intelligent optimization
  • Maintenance Costs: 25-40% reduction through predictive maintenance
  • Equipment Downtime: 60-80% reduction through failure prevention
  • Operational Efficiency: 30-50% improvement through AI automation

Performance Improvements:

  • Equipment Response Time: Sub-second vs 20-30 minutes traditional
  • System Reliability: 99.9% uptime with predictive maintenance
  • Energy Efficiency: Real-time optimization vs manual management
  • Maintenance Planning: AI-driven scheduling vs reactive repairs

πŸ“„ Enhanced Licensing

🌐 Enhanced Open-Core Model

Open Source (MIT License):

  • Core BMS framework and architecture
  • React/Next.js PWA interface
  • Firebase authentication integration
  • InfluxDB 3.0 data layer
  • Redis state management
  • BullMQ job queuing system
  • Base equipment logic framework
  • Generic PID, lead-lag, and OAR helpers
  • Processing Engine integration framework
  • Multi-plugin architecture framework

Commercial Modules (Enterprise License):

  • πŸ”§ Automata Controls Nexus InfluxDB3 HVAC Control Plugin
  • πŸ” Automata Controls Predictive Maintenance AI Engine
  • ⚑ Automata Controls Energy Optimization Engine
  • Location-specific equipment logic implementations
  • Advanced analytics dashboard with AI insights
  • Multi-tenant management
  • SMS/Email alert integrations with AI recommendations
  • Visual zone mapping and floor plans
  • Advanced predictive maintenance algorithms
  • Energy optimization algorithms
  • Priority support and SLA

πŸ“œ License Files

  • LICENSE - MIT License for open-source components
  • COMMERCIAL.md - Enterprise licensing terms for AI engines
  • CONTRIBUTING.md - Contribution guidelines

🀝 Enhanced Contributing

Development Setup

  1. Fork the repository: AutomataControls/AutomataControlsNexusBms-Production
  2. Create feature branch: git checkout -b feature/amazing-ai-feature
  3. Install dependencies: npm install
  4. Configure environment: cp .env.example .env
  5. Start development: npm run dev
  6. Run tests: npm test
  7. Test multi-plugin system: npm run test:plugins
  8. Submit pull request

Enhanced Code Standards

  • TypeScript - Strict typing for all new code
  • ESLint - Code linting and formatting
  • Testing - Unit tests for equipment logic and AI algorithms
  • Documentation - JSDoc comments for complex functions and AI models
  • Multi-Plugin Processing Engine - Python plugins follow PEP 8 standards
  • AI Model Standards - Predictive algorithms must include accuracy metrics
  • Energy Standards - Optimization algorithms must include savings validation

Open Source Contributions Welcome

  • Core framework improvements
  • New equipment type templates
  • Multi-Plugin Processing Engine examples
  • AI algorithm enhancements (open-source versions)
  • Documentation enhancements
  • Bug fixes and performance optimizations
  • Integration examples and tutorials
  • Energy optimization improvements
  • Predictive maintenance enhancements

πŸ†˜ Enhanced Support & Community

πŸ“– Enhanced Documentation

πŸ’¬ Community Support

  • GitHub Issues - Bug reports and feature requests
  • GitHub Discussions - Community Q&A and AI algorithm discussions
  • Discord Server - Real-time community chat with AI channels
  • Stack Overflow - Tag: automata-controls-nexus-ai

🏒 Enhanced Enterprise Support

  • Priority Support - Dedicated support channels for AI engines
  • Professional Services - Custom AI implementation assistance
  • Multi-Plugin Processing Engine Consulting - Expert plugin development services
  • AI Training Programs - Team training and certification on predictive maintenance and energy optimization
  • SLA Options - 24/7 support with guaranteed response times
  • Custom AI Development - Tailored predictive algorithms for specific equipment types

Contact: enterprise@automatacontrols.com

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Commercial AI engines (Predictive Maintenance and Energy Optimization) available under separate enterprise licensing.

πŸ†˜ Support

For technical support or questions:

  • Issues - GitHub Issues for bug reports and feature requests
  • Documentation - Wiki for detailed technical documentation including AI guides
  • Community - Discord server for real-time support with AI-specific channels

Automata Controls Nexus BMS - Enterprise Building Management System with Multi-Plugin AI Processing Engine
Built with ❀️ for industrial automation and AI-powered building optimization

Built on InfluxDB Multi-Plugin Engine AI Powered Energy Optimized Powered by React Built with TypeScript

About

NeuralBMS PWA W Firebase,InfluxDB3,Redis,BullMq,React

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages