- Overview
- Core Platform Features
- Edge-Specific Features
- Device Connectivity
- Entity Management
- Security Features
- Integration Capabilities
- Performance Features
- Monitoring Features
- OTA Updates
- Batch Operations
- Next Steps
Overview
IndustryOS Edge provides comprehensive edge computing capabilities whilst maintaining seamless synchronisation with the IndustryOS Cloud Platform. This page covers the key features available on edge instances.
Core Platform Features
Local Data Processing
Rule Engine:
- Full rule chain capability on edge
- 50+ node types for data processing
- JavaScript and TBEL script support
- Asynchronous processing with actor model
- Configurable throughput (10,000+ msg/sec)
Example Use Case:
1
2
3
4
5
6
7
8
// Filter anomalies before cloud push
var temp = msg.temperature;
if (temp < 10 || temp > 30) {
// Send anomalies to cloud
return {msg: msg, metadata: metadata, msgType: "Push to Cloud"};
}
// Keep normal readings local only
return {msg: msg, metadata: metadata, msgType: "Local Only"};
Local Storage
PostgreSQL Database:
- Complete time-series storage
- Partitioned tables (monthly partitions)
- Configurable retention (default: 90 days)
- Automatic partition management
Data Types:
- Telemetry (time-series data)
- Attributes (configuration)
- Entities (devices, assets)
- Alarms (active and historical)
- Events (connectivity, errors)
Storage Capacity:
| Edge Hardware | Storage | Devices | Retention |
|---|---|---|---|
| Light (20GB) | 15GB data | 100 | 30 days |
| Medium (100GB) | 90GB data | 500 | 90 days |
| Heavy (500GB+) | 450GB+ data | 2000+ | 180+ days |
Offline Operation
Full Capabilities Offline:
- Accept device telemetry (MQTT/HTTP/CoAP)
- Process rule chains
- Create and clear alarms
- Display dashboards
- Execute RPC commands
- User authentication
- Dashboard updates
Message Queuing:
1
2
3
4
5
6
Offline Period:
Device → Edge → Local DB
→ Queue (for cloud)
Online Period:
Queue → Cloud (automatic drain)
Queue Management:
- Persistent queue (survives restarts)
- Configurable max size (default: 100k messages)
- Priority handling (alarms > entities > telemetry)
- Batch transmission (1000 records/batch)
Real-Time Dashboards
Dashboard Engine:
- 100+ widget types
- Custom HTML/CSS/JavaScript widgets
- Real-time websocket updates
- Mobile-responsive design
- Offline rendering
Widget Categories:
- Charts: Time series, bar, pie, state
- Maps: Google Maps, OpenStreetMap, image maps
- Controls: Buttons, sliders, switches
- Tables: Entity tables, alarms, events
- Gauges: Radial, linear, compass
- Cards: Value cards, timeseries cards
Data Sources:
- Latest telemetry
- Historical data (time ranges)
- Attributes (server/client/shared)
- Alarms
- Entity relationships
Edge-Specific Features
Traffic Filtering
Reduce bandwidth by filtering data before cloud push:
Threshold Filtering:
1
2
3
4
5
// Only push when temperature exceeds threshold
if (msg.temperature > metadata.ss_tempThreshold) {
return pushToCloud(msg);
}
return saveLocal(msg);
Aggregation:
1
2
3
4
5
6
7
8
9
Raw Data (edge):
- 1 msg/second/device
- 86,400 messages/day/device
- Full resolution local storage
Aggregated Data (cloud):
- 1 avg/hour/device
- 24 messages/day/device
- 99.97% bandwidth reduction
Delta Filtering:
1
2
3
4
5
6
7
8
9
// Only push significant changes
var lastValue = metadata.lastSentValue || 0;
var delta = Math.abs(msg.temperature - lastValue);
if (delta > 0.5) {
metadata.lastSentValue = msg.temperature;
return pushToCloud(msg);
}
return saveLocal(msg);
Local Alarms
Instant Alarm Creation:
- No cloud round-trip required
- Sub-second response times
- Offline alarm support
Alarm Types:
- Threshold: Single value comparison (temp > 30)
- Duration: Condition persists (temp > 30 for 5 min)
- Complex: Multi-condition logic (temp > 30 AND humidity > 80)
- Clear: Auto-clear when condition resolves
Alarm Severities:
- CRITICAL: Immediate action required
- MAJOR: Significant issue
- MINOR: Warning condition
- WARNING: Informational
- INDETERMINATE: Unknown state
Alarm Lifecycle:
1
2
3
4
5
6
7
1. Create alarm (edge rule chain)
2. Save to edge database
3. Display in edge UI
4. Push to cloud (when connected)
5. Acknowledge (edge or cloud)
6. Clear (condition resolves)
7. Archive (move to history)
Example:
1
2
3
4
5
6
7
8
// Create alarm node configuration
{
"alarmType": "High Temperature",
"severity": "CRITICAL",
"propagate": true,
"relationTypes": ["Contains"],
"alarmDetailsBuildJs": "var details = {temp: msg.temperature, threshold: 30}; return details;"
}
Bidirectional Synchronisation
Edge → Cloud (Uplink):
- Device telemetry (filtered)
- Alarms
- New entities (devices, assets)
- Attribute updates
- Events
Cloud → Edge (Downlink):
- Dashboard assignments
- Rule chain templates
- Device provisioning
- Configuration updates
- Firmware packages (OTA)
Sync Protocol:
- Transport: gRPC over TLS
- Port: 7070 (cloud)
- Authentication: Edge key + secret
- Reconnection: Automatic with exponential backoff
- Compression: gzip (optional)
Cloud Integration
gRPC Connection:
1
2
3
4
5
6
7
8
Edge Instance
|
| gRPC (TLS)
| Port 7070
|
▼
Cloud Platform
(Edge Management Service)
Connection States:
- CONNECTED: Active bidirectional sync
- DISCONNECTED: Offline, queuing messages
- CONNECTING: Attempting reconnection
- ERROR: Authentication or network failure
Health Monitoring:
1
2
3
4
5
6
7
8
{
"cloudConnection": "CONNECTED",
"lastSyncTime": "2024-03-15T10:30:00Z",
"queueSize": 42,
"syncErrors": 0,
"bytesSent": 1048576,
"bytesReceived": 524288
}
Device Connectivity
Supported Protocols
MQTT:
- Ports: 1883 (plain), 8883 (TLS)
- QoS: 0, 1, 2 support
- Persistent Sessions: Supported
- Last Will: Supported
- Authentication: Access token, username/password, X.509
HTTP:
- Port: 8080 (configurable)
- Methods: POST for telemetry/attributes/RPC
- TLS: Supported (HTTPS)
- Authentication: Access token in URL or header
CoAP:
- Ports: 5683 (plain), 5684 (DTLS)
- Methods: POST, GET
- Observe: Supported (attribute subscriptions)
- Authentication: Access token
Device Management
Device Lifecycle:
- Create device on edge UI
- Copy access token
- Configure device with token
- Device connects to edge
- Edge marks device active
- Edge provisions device to cloud
Device Profiles:
- Default configurations
- Transport settings
- Alarm rules
- Dashboard templates
Bulk Operations:
- Import devices (CSV, JSON)
- Export device list
- Batch attribute updates
- Mass alarm acknowledgement
Entity Management
Entity Types
Devices:
- Physical equipment
- Sensors, actuators, controllers
- Access token authentication
- Telemetry and attributes
Assets:
- Logical groupings
- Buildings, production lines
- Hierarchical organisation
- No direct telemetry
Customers:
- Single customer per edge
- Owns all entities
- User management
Edge Instance:
- Represents edge in cloud
- Manages entity ownership
- Tracks sync status
Entity Relations
Relation Types:
- Contains: Asset contains devices
- Manages: Edge manages devices
- Uses: Device uses gateway
Example Hierarchy:
1
2
3
4
5
6
7
8
9
10
11
12
13
Factory Edge
|
├── Factory Building (Asset)
│ |
│ ├── Production Line 1 (Asset)
│ │ ├── Robot Arm (Device)
│ │ └── Conveyor (Device)
│ │
│ └── Production Line 2 (Asset)
│ └── CNC Machine (Device)
│
└── Warehouse (Asset)
└── Temperature Sensor (Device)
Querying Relations:
1
GET /api/relations?fromId=<ASSET_ID>&fromType=ASSET
Response:
1
2
3
4
5
6
7
[
{
"from": {"id": "<ASSET_ID>", "entityType": "ASSET"},
"to": {"id": "<DEVICE_ID>", "entityType": "DEVICE"},
"type": "Contains"
}
]
Security Features
Authentication
Device Authentication:
- Access tokens (UUID-based)
- X.509 certificates (MQTT TLS)
- Username/password (MQTT)
User Authentication:
- Local username/password
- OAuth 2.0 (cloud-synced)
- JWT token sessions
- Two-factor authentication (optional)
Edge-Cloud Authentication:
- Edge routing key (UUID)
- Edge routing secret (credential)
- Mutual TLS (optional)
Encryption
Device Connections:
- MQTT over TLS (port 8883)
- HTTPS (port 8080 with TLS)
- CoAP over DTLS (port 5684)
Cloud Connection:
- gRPC over TLS (mandatory)
- Certificate validation
- Encrypted credentials
Data at Rest:
- PostgreSQL encryption (optional)
- Encrypted configuration files
- Secure credential storage
Access Control
Role-Based Access Control:
- Tenant Administrator (full access)
- Customer User (limited access)
- Generic roles (configurable)
Permissions:
- Read/Write entities
- Modify rule chains
- Access dashboards
- Manage users
- View audit logs
Integration Capabilities
REST API
Complete REST API on edge:
Device API:
1
2
3
4
POST /api/v1/<TOKEN>/telemetry
POST /api/v1/<TOKEN>/attributes
POST /api/v1/<TOKEN>/rpc
GET /api/v1/<TOKEN>/attributes
Platform API:
1
2
3
GET /api/device/<DEVICE_ID>
POST /api/plugins/telemetry/DEVICE/<DEVICE_ID>/timeseries/ANY?scope=ANY&keys=<KEYS>
GET /api/alarm/<ENTITY_TYPE>/<ENTITY_ID>?searchStatus=ACTIVE
Remote Integrations
HTTP Integration:
- Push data to external REST endpoints
- Webhook support
- Custom headers and authentication
MQTT Integration:
- Subscribe to external MQTT brokers
- Publish to cloud MQTT services
- Topic mapping and transformation
OPC-UA Integration:
- Connect to OPC-UA servers
- Node browsing and subscription
- Data type conversion
Custom Integrations:
- JavaScript-based converters
- Protocol adapters
- Data transformation
Performance Features
Rule Engine Performance
Actor-Based Processing:
- Parallel message handling
- Configurable thread pools
- Non-blocking I/O
Throughput:
| Edge Hardware | Messages/sec | Devices |
|---|---|---|
| 2 cores, 1GB RAM | 1,000 | 100 |
| 4 cores, 2GB RAM | 5,000 | 500 |
| 8 cores, 4GB RAM | 10,000+ | 2000 |
Database Performance
Optimisations:
- Partitioned tables (monthly)
- Indexes on entity_id, ts
- Connection pooling
- Batch inserts
Query Performance:
- Latest values: < 10ms
- Historical range (1 hour): < 100ms
- Historical range (1 day): < 1000ms
Transport Performance
MQTT:
- 10,000+ concurrent connections (4-core)
- QoS 0: Minimal overhead
- QoS 1: Guaranteed delivery
HTTP:
- Connection pooling
- Keep-alive support
- Compression (gzip)
Monitoring Features
System Monitoring
Metrics Available:
- CPU usage (%)
- Memory usage (MB)
- Disk space (GB free)
- Database connections (active/idle)
- Queue size (messages pending)
- Cloud connection status
Health Check Endpoint:
1
GET /api/edge/health
Response:
1
2
3
4
5
6
7
8
9
10
11
{
"status": "UP",
"cloudConnection": "CONNECTED",
"database": "UP",
"diskSpace": {
"status": "UP",
"free": 53687091200,
"threshold": 10485760
},
"queueSize": 42
}
Application Monitoring
Telemetry Stats:
- Messages received (total, /sec)
- Messages processed (total, /sec)
- Messages queued (total)
- Processing latency (avg, p95, p99)
Rule Engine Stats:
- Nodes executed
- Script execution time
- Error count
Alerting
System Alerts:
- Disk space < 10%
- Queue size > 50,000
- Cloud disconnected > 1 hour
- Database errors
Custom Alerts:
- Create via rule chains
- Email notifications
- Webhook calls
- SMS (via integrations)
OTA Updates
Software Package Management
Edge Software Updates:
- Download packages from cloud
- Version management
- Rollback capability
Device Firmware Updates:
- Firmware package distribution
- OTA update scheduling
- Update status tracking
Update Process:
- Upload package to cloud
- Assign to edge instance(s)
- Edge downloads package
- Edge schedules update
- Update applied (edge or devices)
- Status reported back to cloud
Batch Operations
Multi-Edge Management
From Cloud:
- Update rule chains on multiple edges
- Deploy dashboards to edge groups
- Push configuration changes
- Distribute firmware packages
Edge Groups:
- Organise edges by location, version, etc.
- Apply batch operations to groups
- Monitor group health