Skip to main content
The System Control Panel provides operators with buttons to manage the demo lifecycle, from calibration through fault injection to system reset.

State Machine

The system operates in one of four states:
1

IDLE

System is ready but not collecting data. Click Calibrate to begin.
2

CALIBRATING

Backend is collecting healthy baseline data (15 seconds). Wait for completion.
3

MONITORING_HEALTHY

System is streaming sensor data and monitoring for anomalies. Normal operation mode.
4

FAULT_INJECTION

A fault has been injected and the system is simulating degraded conditions.

Control Buttons

1. Calibrate

🎯 Calibrate

Available in: IDLE stateAction: Starts the calibration process to build a healthy baseline.Duration: ~15 seconds (collects 100+ sensor readings)Outcome: Trains the Isolation Forest models and transitions to MONITORING_HEALTHY.
What Happens During Calibration:
  1. Backend calls POST /api/system/calibrate with asset_id="Motor-01"
  2. Data generator produces 100 healthy samples at 100 Hz
  3. Features are extracted (6-D legacy + 16-D batch)
  4. Two Isolation Forest models are trained:
    • Legacy Model: 6 features, 1 Hz sampling
    • Batch Model: 16 features (mean/std/peak/RMS), 100 Hz windows
  5. Baseline targets are computed (mean voltage, current, vibration, power factor)
  6. System transitions to MONITORING_HEALTHY
Calibration uses the 3-Sigma Validation rule to ensure baseline data quality. Samples beyond 3 standard deviations are rejected.

2. Inject Fault

⚡ Inject Fault

Available in: MONITORING_HEALTHY stateAction: Simulates a fault condition to demonstrate anomaly detection.Configuration: Select Fault Type and Severity Level before clicking.

Fault Types

Type: DEFAULTBehavior: General fault pattern with mixed sensor deviationsDetection: Both Legacy and Batch models

Severity Levels

Severity determines the target risk level and magnitude of sensor deviations:
SeverityTarget RiskHealth ScoreColorExample
🟡 MILDMODERATE50-74YellowMinor bearing wear
🟠 MEDIUMHIGH25-49OrangeSignificant misalignment
🔴 SEVERECRITICAL0-24RedImminent failure
Severity levels are calibrated to specific risk zones using amplitude multipliers in the fault injection logic. SEVERE faults produce health scores in the 0-24 range.
API Call:
POST /api/system/inject-fault
{
  "asset_id": "Motor-01",
  "fault_type": "SPIKE",
  "severity": "SEVERE"
}

3. Reset

🔄 Reset

Available in: FAULT_INJECTION stateAction: Returns the system to healthy operation (MONITORING_HEALTHY).Effect: Stops fault injection and resumes normal data generation.
Use Case: After observing how the dashboard reacts to a fault (red lines on chart, health score drop, explanations), click Reset to return to normal monitoring.

4. Stop

⏹️ Stop

Available in: MONITORING_HEALTHY or FAULT_INJECTIONAction: Stops data generation and returns to IDLE state.Effect: Dashboard stops receiving new sensor data.
Use Case: End the current monitoring session. Data remains in InfluxDB but no new points are generated.

5. Purge & Re-Calibrate

🗑️ Purge & Re-Calibrate

Available in: Any stateAction: DESTRUCTIVE — Deletes all sensor data, ML models, and resets to IDLE.Effect: Wipes InfluxDB, clears baselines, resets Degradation Index (DI) to 0.0.
This action is irreversible. A confirmation dialog will appear before execution. Use this to start fresh or clear corrupted data.
What Gets Deleted:
  • All sensor data in InfluxDB (sensor_data, features, maintenance_logs)
  • In-memory ML baselines and trained Isolation Forest models
  • Event history and degradation state
  • Cumulative Degradation Index (DI) reset to 0.0
API Call:
POST /api/system/purge

Demo Workflow

Follow this sequence for a complete demonstration:
1

Start Fresh

Click Purge & Re-Calibrate to reset the system to a clean state.
2

Calibrate Baseline

Click 🎯 Calibrate and wait ~15 seconds for completion.You’ll see:
  • State badge turns green (MONITORING_HEALTHY)
  • Baseline targets appear on Status Cards
  • Chart starts filling with sensor data
3

Observe Healthy Operation

Watch the dashboard for 30-60 seconds:
  • Health Score stays in 75-100 (green)
  • No red lines on the chart
  • Risk level shows LOW
4

Inject a Fault

Select:
  • Fault Type: Sudden Spike
  • Severity: 🔴 SEVERE
Click ⚡ Inject Fault.
5

Watch Anomaly Detection

Within 5-10 seconds:
  • Health Score drops to 0-24 (red ring)
  • Red dashed lines appear on chart
  • Risk badge changes to CRITICAL
  • Explanations appear in Insight Panel (e.g., “Vibration 3.2σ above normal”)
6

Reset to Healthy

Click 🔄 Reset to return to normal operation.Note: Health Score will not immediately return to 100 due to the Cumulative Degradation Index (DI). The damage is permanent unless you purge.

State Badge Indicator

The State Badge in the control panel shows the current system state with color coding:
StateColorMeaning
IDLEGraySystem is inactive
CALIBRATING…BlueBuilding baseline models
Monitoring (Healthy)GreenNormal operation
Fault Injection ActiveRedSimulating degraded conditions

Performance Metrics

Below the control buttons, you’ll see Demo Flow Instructions and validation metrics:
  • Training Samples: Number of baseline samples collected during calibration
  • Healthy Stability: Percentage of healthy samples correctly classified
  • Fault Capture Rate: Percentage of faulty samples correctly detected
These metrics are updated in real-time and displayed in the Performance Card on the right sidebar.

Next Steps

Metrics & Health Scoring

Understand how health scores and risk levels are calculated

Operator Logs

Log maintenance events to correlate with sensor anomalies

Build docs developers (and LLMs) love