
About SIAS - Smart Industrial Alert System
SIAS (Smart Industrial Alert System) is the nervous system of your factory floor. The moment a machine faults, an operator hits a call button, or your SCADA flags an issue, SIAS sends the alert - with exact location and full context - straight to the right supervisor's phone. The supervisor responds in-app, assisted by AI that draws on the machine's recent history to suggest the fastest fix - so you get less downtime, faster response, and full accountability on every alert.
Not sure what slow alert response is costing your floor? Use our ROI calculator to estimate it in minutes.
Key capabilities
Know exactly what you’re buying
Every SIAS - Smart Industrial Alert System document — security, compliance, licensing — published in the open, the way a great product should be.
Overview
What it is, what it does, and why teams love it
Smart Industrial Alert (SIA) is an enterprise industrial alert and operations platform for factory environments. It delivers real-time mobile alerting with AI-assisted supervisor assignment, predictive-maintenance forecasting, and shift and collaboration coordination - administered from a SuperAdmin console and deployed as a dedicated, white-label instance per customer on the customer's own Firebase and Cloudflare accounts. SIA is integration-ready for existing automation estates (microcontroller/IoT, PLC, SCADA, historian, MQTT, OPC UA, Modbus, and REST/webhook) and ships with operational monitoring, release documentation, and a trust center. It runs on top of the plant - coordinating alerts and people - without taking over control or safety functions.
What SIA does
- Real-time mobile alerting - targeted push with full-screen lock-screen alerts and a durable one-minute fallback so the right supervisors are reached.
- AI-assisted assignment - multi-factor supervisor matching with reinforcement learning; every decision carries an explicit reason and confidence.
- Predictive maintenance - an on-device forecaster that grades and adapts itself, surfacing next-24h machine risk on the Production Manager dashboard.
- SuperAdmin configuration - manage AI agents, branding/theme, AI models, industrial connectors, identity, and monitoring from one console.
- Dedicated customer instances - white-label deployment per customer with automated provisioning; the customer owns their project, keys, and data.
- Shifts, presence, collaboration & escalation - coordinate who responds, when, and how alerts escalate.
- Bilingual - full English/French with instant runtime switching.
Integration modes
SIA sits alongside your existing automation estate and ingests events through cloud-pull and edge-push connectors:
| Mode | Examples |
|---|---|
| Microcontroller / IoT | ESP32, ESP8266, Arduino, Raspberry Pi Pico |
| PLC | edge-gateway push |
| SCADA | REST / historian bridges |
| Historian | PI, Ignition |
| Messaging | MQTT |
| Industrial protocols | OPC UA, Modbus |
| Web | REST / webhook |
| Hybrid | any combination of the above |
Connectors are configured self-service in the SuperAdmin console with a live link-verification handshake.
Safety & scope
SIA is a supervisory alert and operations layer. It is not a PLC, a safety-instrumented system (SIS), or a real-time control loop, and it does not actuate equipment or perform emergency shutdown. Existing SCADA/PLC control and safety functions remain authoritative; SIA augments them with alerting, coordination, and operational intelligence.
Enterprise pilot readiness
SIA is packaged for controlled enterprise pilots. Start here:
- Release notes - what's in this release and its scope
- Installation & deployment - stand up a dedicated instance
- Changelog - version history
- Pilot readiness checklist - go-live verification
- Trust center - security & operational posture
- Security policy · Privacy · Terms · License
Trust posture
SIA is built with security-by-design practices: enforced multi-factor authentication, SCIM 2.0 user provisioning, hardened Realtime Database rules, an immutable audit trail, an edge security agent (rate limiting, prompt-injection detection, anomaly scanning), automated CI / CodeQL / security scanning, a dependency audit, a published penetration-test scope, and a documented secret-rotation procedure - see the Trust Center.
SIA has not undergone external certification. We do not claim ISO 27001, SOC 2, IEC 62443, or any other third-party certification or attestation. SIA is at pilot maturity - intended for controlled deployments alongside existing systems - and in the dedicated-instance model the customer owns their environment and data.
Current release - v1.2.1 "Enterprise Pilot Readiness"
This release consolidates SIA for controlled enterprise pilots: dedicated white-label instances, self-service SuperAdmin configuration, SCADA/PLC/historian integration readiness, configurable and drift-monitored AI models, operational monitoring with alerting, and a full release-readiness and trust documentation set. See the release notes and changelog.
Overview
Smart Industrial Alert - SIA is a full-stack industrial supervision platform designed from the ground up for high-noise, high-stakes manufacturing environments. It replaces fragmented radio systems and paper-based workflows with a unified, intelligent layer that routes alerts, verifies identities through voice biometrics, predicts failures before they happen, and provides hands-free control to supervisors - all running offline on the factory floor.
Built for factories. Engineered for scale. Designed for resilient factory operations.
🏭 Factory Operations Layer
↕ Real-time sync
🔥 Firebase + Cloudflare Edge
↕ AI pipeline
🤖 TFLite + Claude + ONNX
↕ Voice interface
🎤 Offline ASR + Speaker ID
↕ Mobile/Desktop
📱 Flutter Multi-Platform AppCore Features
Alert Lifecycle Management
| Feature | Description |
|---|---|
| Multi-Type Alerts | Quality (qualite), Maintenance, Product Defects (defaut_produit), Resource Deficiency (manque_ressource) |
| Human-Readable IDs | Every alert gets a numeric ID starting at 1000 - speakable by voice ("Alert one zero two five") |
| Full Status Lifecycle | open → claimed → in_progress → resolved / escalated with timestamped transitions |
| Critical Flag System | Mark alerts critical with custom notes and type-specific escalation thresholds |
| Comments & Resolution Notes | Structured resolution comments attached to every alert for audit trails |
| Auto-Escalation | Cloudflare Worker cron triggers automatic escalation of unclaimed alerts after configurable timeout |
Collaboration & Escalation
| Feature | Description |
|---|---|
| Multi-Supervisor Collaboration | Request help from peers with message context and approval/refuse workflows |
| Admin Escalation Dashboard | Dedicated view for Production Managers to escalate and audit critical alerts |
| Escalation Reasoning | Every escalation carries notes, a reason, and full audit history |
| AI Assignment | Automatic supervisor matching with full scoring breakdown and "why not others" reasoning |
Factory Hierarchy & Location Intelligence
Usine (Factory)
└── Conveyor Line
└── Workstation
└── Machine Asset (with full history)- Alerts are always bound to a valid node in the hierarchy
- Asset management with machine IDs and asset history
- Location-aware AI assignment - closer supervisors score higher
- QR codes at each station let supervisors identify a workstation and load its alert history instantly
Voice Intelligence
┌─────────────────────────────────────────────────────────┐
│ VOICE PIPELINE │
│ │
│ 🎤 Native Android AudioRecord (16kHz PCM mono) │
│ ↓ RMS silence detection (900ms threshold) │
│ 📦 Sherpa ONNX Streaming Zipformer (~17MB int8) │
│ ↓ 30% lower WER than alternatives in noise │
│ 🧠 TFLite Speaker Embedding (conformer_tisid_small) │
│ ↓ Cosine similarity ≥ 0.80 to authenticate │
│ 🔍 VoiceCommandParser (num-word → digit + intent) │
│ ↓ claim / resolve / escalate / navigate │
│ ⚡ VoiceCommandDispatcher → AlertProvider action │
│ ↓ │
│ 🔊 flutter_tts confirmation (max vol + focus steal) │
└─────────────────────────────────────────────────────────┘Voice Commands
| Utterance | Action |
|---|---|
"Claim alert one zero two five" | Claims alert #1025 for the authenticated speaker |
"Resolve alert one zero two five" | Marks alert #1025 as resolved |
"Escalate alert one zero two five" | Escalates alert #1025 to admin |
"Show dashboard" | Navigates to main dashboard |
"Show alerts" | Opens alert list |
Speaker Verification
- TFLite conformer model generates speaker embeddings from raw audio
- Cosine similarity threshold:
0.80- tuned for factory-grade accuracy - Quality gates: minimum 600ms of speech, SNR ≥ 6 dB
- VAD trimming: silence stripped from both ends before embedding
- Enrollment UI: guided multi-sample enrollment flow for new supervisors
Lock Screen Voice Actions
- Full-screen
VoiceLockRecorderActivitylaunches above Android keyguard - FCM notification carries
voice_claimaction button - tap opens voice claim screen on the lock screen - Post-notification flow: record → transcribe → verify identity → execute → speak confirmation
fullScreenIntentwithboostMediaVolume()ensures TTS cuts through factory noise
Offline-First STT
- Primary: Sherpa ONNX streaming Zipformer - fully offline after one-time model download
- Fallback:
speech_to_textplugin for non-Android platforms - Zero dependency on cloud connectivity on the factory floor
- Model stored in app data directory, compressed archive on first launch
AI & Machine Learning
┌────────────────────────────────────────────────────────────────────┐
│ AI INTELLIGENCE LAYER │
│ │
│ ┌─────────────────────┐ ┌──────────────────────────────────┐ │
│ │ AI ASSIGNMENT │ │ PREDICTIVE INTELLIGENCE │ │
│ │ │ │ │ │
│ │ Scoring Model: │ │ • Morning briefing (daily) │ │
│ │ • Workload weight │ │ • Failure risk curves │ │
│ │ • Expertise match │ │ • Hourly probability dist. │ │
│ │ • Location prox. │ │ • Per-factory risk scores │ │
│ │ • Success rate │ │ • Assignee predictions │ │
│ │ │ │ │ │
│ │ Confidence: 0-100 │ │ Powered by historical alert │ │
│ │ Cooldown: 5 min │ │ patterns + factory metadata │ │
│ │ Debounce: 1.5s │ │ │ │
│ └─────────────────────┘ └──────────────────────────────────┘ │
│ │
│ ┌─────────────────────┐ ┌──────────────────────────────────┐ │
│ │ AI RESOLUTION │ │ VOICE BIOMETRICS │ │
│ │ SUGGESTIONS │ │ │ │
│ │ │ │ TFLite Speaker Embedding │ │
│ │ Claude API via │ │ • 16kHz mono PCM input │ │
│ │ Cloudflare Worker │ │ • conformer_tisid_small.tflite │ │
│ │ │ │ • Cosine sim >= 0.80 │ │
│ │ Context: type, │ │ • VAD + SNR quality gates │ │
│ │ location, history │ │ • Multi-enrollment averaging │ │
│ └─────────────────────┘ └──────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────┘AI Assignment Engine
The rule-based scoring model evaluates every available supervisor against a weighted multi-criteria function:
score = w1·(1/workload) + w2·expertise_match + w3·location_proximity + w4·recent_success_rate- Decision transparency: every assignment includes full per-supervisor score breakdown
- Rejection feedback: supervisors can reject assignments; feedback feeds back into the scoring model
- Deduplication: 5-minute factory lock with 1.5s debounce prevents duplicate assignments
- AI Logs Panel: admin view of every AI decision with full reasoning trace
Predictive Intelligence
- Morning Briefing: AI-generated daily summary of overnight alerts, resolution stats, and risk hotspots
- Failure Prediction: probability curves per factory line for upcoming 8-hour shift
- Risk Heatmaps: visual overlay on factory layout with ML-derived risk coloring
- Predictive Cards: dashboard widgets surfacing imminent-failure signals to supervisors before alerts fire
Claude-Powered Resolution Suggestions
- Cloudflare Worker proxies requests to the Claude API
- Prompt includes: alert type, workstation location, machine asset history, past resolutions for similar alerts
- Response rendered inline in the alert detail screen
- Graceful offline fallback when edge worker is unreachable
Architecture
┌──────────────────────────────────────────────────────────────────────────────┐
│ Smart Industrial Alert - SIA ARCHITECTURE │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │
│ │ FLUTTER │ │ FIREBASE │ │ CLOUDFLARE │ │ SHOREBIRD │ │
│ │ APP │ │ │ │ WORKERS │ │ CODE PUSH │ │
│ │ │<──┤ Realtime DB │ │ │ │ │ │
│ │ Provider │ │ Firestore │<──┤ Cron AI │ │ OTA deploy │ │
│ │ Screens │<──┤ Cloud Funcs │ │ Escalation │ │ Zero-down │ │
│ │ Services │ │ Auth │ │ Push fan-out │ │ time patch │ │
│ │ Models │<──┤ FCM │ │ JWT signing │ └────────────┘ │
│ └──────┬───────┘ └──────────────┘ └──────────────┘ │
│ │ │
│ ┌──────▼──────────────────────────────────────────────────────────────┐ │
│ │ PLATFORM CHANNELS (Android) │ │
│ │ VoiceLockRecorderActivity · boostMediaVolume() · Keyguard API │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ ON-DEVICE ML STACK │ │
│ │ Sherpa ONNX (offline ASR) · TFLite (speaker embedding) │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘State Management
- Provider pattern with
AlertProvideras the central state atom - Streams from Firebase Realtime Database, composed with RxDart operators
- Platform-specific service resolution via conditional Dart imports (
_stub.dart/_io.dart) - Background FCM handler registered with
@pragma('vm:entry-point')for foreground & killed-app delivery
Data Flow
Firebase RTDB stream
→ AlertProvider (Provider)
→ UI rebuilds (Consumer widgets)
→ User action (tap / voice command)
→ AlertProvider method
→ Firebase write
→ Cloudflare Worker triggered (if needed)
→ FCM push to all supervisorsTechnology Stack
| Layer | Technology | Purpose |
|---|---|---|
| UI Framework | Flutter 3.x + Dart 3.x | Cross-platform app |
| State | Provider 6.x + RxDart | Reactive state management |
| Backend DB | Firebase Realtime Database | Live alert streams |
| Secondary DB | Cloud Firestore | Structured data, AI logs |
| Auth | Firebase Authentication | Role-based access |
| Push | Firebase Cloud Messaging | Real-time notifications |
| Edge Compute | Cloudflare Workers | AI scoring, escalation cron |
| Offline ASR | Sherpa ONNX (Zipformer int8) | Factory-floor speech-to-text |
| Voice Biometrics | TFLite (conformer_tisid) | Speaker identity verification |
| AI Suggestions | Claude API (via CF Worker) | Resolution recommendations |
| Predictive AI | Google Generative AI | Morning briefings, risk curves |
| Station Scan | mobile_scanner | QR workstation lookup and alert history |
| Notifications | flutter_local_notifications | Full-screen lock-screen alerts |
| Code Push | Shorebird | Zero-downtime OTA updates |
| TTS | flutter_tts | Factory-loud voice feedback |
| Typography | Google Fonts (Inter) | Consistent UI typography |
| Exports | csv + excel + printing | Alert report generation |
Screens & UI
24+ Screens across the full supervisor journey
Authentication
├── Login Screen
└── Role Gate (Admin / Supervisor / Production Manager)
Dashboard (Overview)
├── Health Score Gauge
├── Critical Alerts Card
├── Predictive Failure Card
├── AI Morning Briefing Hero
└── Insights Strip
Alert Management
├── Alerts Tree (hierarchical, heatmap-colored)
├── Alert Detail (comments, resolution, AI suggestion)
├── Alert Scan Screen (mobile / web variants)
└── Escalated Alerts (admin view)
Voice Features
├── Voice Claim Screen (lock-screen capable)
├── Voice Enrollment Screen (guided multi-sample)
└── Push-to-Talk overlay
Supervision
├── Supervisor Tab (availability, workload)
├── Collaboration Screen (help requests, accept/refuse)
└── Admin Escalation Dashboard
Factory Management
├── Factory Mapping Tab (custom layout)
├── Alert Locator (custom painter map)
└── Asset Management
Intelligence
├── AI Logs Panel (assignment decision trace)
├── Predictive Heatmaps
└── Morning Briefing ViewTheme System
Smart Industrial Alert - SIA ships with a polished dual-mode design system:
| Token | Light Mode | Dark Mode |
|---|---|---|
| Background | #F8FAFC | #0F172A |
| Card Surface | #FFFFFF | #1E293B |
| Primary Brand | #0D4A75 (navy) | #60A5FA (blue) |
| Critical | #EF4444 | #EF4444 |
| Success | #10B981 | #10B981 |
| Warning | #F59E0B | #F59E0B |
| Escalation | #8B5CF6 | #8B5CF6 |
- Material Design 3
ColorSchemeintegration context.appTheme.navy,context.isDarkextension helpers- Custom card theming, navigation bar theming, and input decoration
- Inter font family throughout
Platform Support
| Platform | Status | Voice | Station Scan | Offline ASR |
|---|---|---|---|---|
| Android | Full | Native | Yes | Yes |
| iOS | Supported | Fallback | Yes | Partial |
| Windows | Supported | Fallback | - | Partial |
| Linux | Supported | Fallback | - | Partial |
| macOS | Supported | Fallback | Yes | Partial |
| Web | Supported | Fallback | Manual entry | - |
Android is the primary deployment target. Native
VoiceLockRecorderActivityand full offline Sherpa ONNX pipeline are Android-only. Other platforms usespeech_to_textplugin fallback.
Backend Infrastructure
Firebase Architecture
firebase/
├── Realtime Database → Live alert streams, supervisor state
├── Firestore → AI decision logs, structured metadata
├── Cloud Functions → Assignment cooldowns, factory locks (15s TTL)
├── Cloud Messaging → Push to supervisors, voice_claim actions
└── Authentication → UID-based role gatesCloudflare Workers
Primary Worker (cloudflare_worker.js - 49 KB):
| Cron Trigger | Action |
|---|---|
| Every minute | AI scoring run - matches unassigned alerts to supervisors |
| Every minute | Escalation check - auto-escalates stale unclaimed alerts |
| Every minute | Push fan-out - broadcasts qualifying alerts to available supervisors |
- Custom Firebase JWT generation (service account signing, no Admin SDK required at edge)
- Rate-limited: max 1 alert/push, 5 escalation checks, 20 factories per cron run
- Supervisor availability scoring at the edge layer
Secondary Worker (WORKER_UPDATE_FILTER_CLAIMED.js):
- Claimed-filter real-time synchronization for UX snappiness
Firebase Cloud Functions
- AI assignment cooldown enforcement
- Factory-level lock acquisition with 15-second TTL (prevents race conditions)
- Supervisor availability tracking
- Alert deduplication and processor matching
Getting Started
Prerequisites
# Flutter SDK (3.x recommended)
flutter --version
# Firebase CLI
npm install -g firebase-tools
firebase login
# Android SDK (API 21+)
# NDK required for Sherpa ONNX native libsInstallation
# 1. Clone the repository
git clone https://github.com/your-org/Smart Industrial Alert - SIAapp.git
cd Smart Industrial Alert - SIAapp
# 2. Install Flutter dependencies
flutter pub get
# 3. Configure environment
cp .env.example .env
# Fill in your Firebase project credentials and Cloudflare Worker URL
# 4. Configure Firebase
flutterfire configure --project=YOUR_FIREBASE_PROJECT_ID
# 5. Run on Android (recommended)
flutter run --releaseFirst Launch
- Voice Enrollment: Supervisors record 3–5 samples to build their voice profile
- Model Download: Sherpa ONNX ASR model (~17 MB) downloads once, then fully offline
- FCM Token: Device registers for push notifications automatically
- Role Assignment: Admin assigns supervisor/manager roles via Firebase console
Configuration
Environment Variables (.env)
CLOUDFLARE_WORKER_URL=https://your-worker.your-subdomain.workers.dev
FIREBASE_API_KEY=...
FIREBASE_APP_ID=...
FIREBASE_MESSAGING_SENDER_ID=...
FIREBASE_PROJECT_ID=...
FIREBASE_STORAGE_BUCKET=...
FIREBASE_DATABASE_URL=...Escalation Thresholds (Cloudflare Worker)
// cloudflare_worker.js
const ESCALATION_THRESHOLDS = {
qualite: 10 * 60 * 1000, // 10 minutes
maintenance: 15 * 60 * 1000, // 15 minutes
defaut_produit: 5 * 60 * 1000, // 5 minutes
manque_ressource: 10 * 60 * 1000, // 10 minutes
};AI Assignment Weights
// lib/services/ai_assignment_service.dart
const double workloadWeight = 0.35;
const double expertiseWeight = 0.30;
const double locationWeight = 0.20;
const double successRateWeight = 0.15;Voice Auth Sensitivity
// lib/services/voice_auth_service_io.dart
const double similarityThreshold = 0.80; // cosine similarity
const double minSNRdB = 6.0; // minimum signal quality
const int minSpeechMs = 600; // minimum speech duration (ms)Project Structure
Smart Industrial Alert - SIAapp/
│
├── lib/
│ ├── main.dart # App entry, Firebase init, auth gate
│ ├── theme.dart # AppTheme light/dark + context extensions
│ │
│ ├── models/ # Data models
│ │ ├── alert_model.dart
│ │ ├── user_model.dart
│ │ ├── collaboration_model.dart
│ │ └── hierarchy_model.dart
│ │
│ ├── providers/ # State management
│ │ └── alert_provider.dart # Central alert + supervisor state
│ │
│ ├── services/ # 30+ service classes
│ │ ├── alert_service.dart
│ │ ├── ai_service.dart # Claude API proxy
│ │ ├── ai_assignment_service.dart # Scoring + auto-assignment
│ │ ├── predictive_intel_service.dart # Morning briefings, risk curves
│ │ ├── voice_service.dart # Platform-conditional entry
│ │ ├── voice_service_io.dart # Android native impl
│ │ ├── voice_service_stub.dart # Non-Android stub
│ │ ├── voice_auth_service_io.dart # TFLite speaker verification
│ │ ├── sherpa_stt_service_io.dart # Offline ASR
│ │ ├── voice_command_parser.dart # Intent + number parsing
│ │ ├── voice_command_dispatcher.dart # Command → AlertProvider bridge
│ │ ├── fcm_service.dart
│ │ ├── offline_db_service.dart
│ │ └── ...
│ │
│ ├── screens/ # 24+ screens
│ │ ├── dashboard_screen.dart
│ │ ├── alerts_tree_screen.dart
│ │ ├── voice_claim_screen.dart
│ │ ├── voice_enrollment_screen.dart
│ │ ├── alert_scan_screen.dart
│ │ ├── admin_escalation_screen.dart
│ │ ├── collaboration_screen.dart
│ │ └── ...
│ │
│ └── widgets/ # Reusable components
│ ├── voice_command_button.dart
│ ├── ai_logs_panel.dart
│ ├── predictive_heatmap_widget.dart
│ └── ...
│
├── android/
│ └── app/src/main/kotlin/com/example/Smart Industrial Alert - SIAapp/
│ ├── MainActivity.kt
│ └── VoiceLockRecorderActivity.kt # Native audio + keyguard bypass
│
├── assets/
│ └── models/
│ └── conformer_tisid_small.tflite # Speaker embedding model
│
├── functions/ # Firebase Cloud Functions (Node.js)
│ └── index.js
│
├── cloudflare_worker.js # Edge AI scoring + escalation cron
├── WORKER_UPDATE_FILTER_CLAIMED.js # Claimed filter sync worker
├── pubspec.yaml # Flutter dependencies
├── firebase.json # Firebase config
└── shorebird.yaml # Code push configurationBuilt With Conviction
"Factory floors don't wait. Neither should your alerts."
Plans that grow with you
White-glove — we set it up with you
- Full Growth features for 30 days
- We onboard your team personally, on your real machines
- Baseline report: alert response before vs. after
- No card, no commitment
Flat per site — unlimited users
- Unlimited users - operators, supervisors & managers
- Alerts from machines, call buttons & SCADA
- AI-assisted repairs + AI shift & dispatch
- Live dashboard & full traceability on every alert
- Priority support (FR/EN)
- 30-day money-back guarantee - no lock-in, cancel anytime
Multi-site & integrations
- Everything in Growth
- Multi-site command dashboard
- SSO & advanced roles
- SCADA/PLC, OPC-UA, MQTT & API integration support
- Dedicated onboarding & support
- Custom SLA commitment