A portable and scalable SCADA/IIoT-I4.0 platform centered on the MongoDB database server.
To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.0 platform built by leveraging mainstream open-source IT tools.
- Standard IT tools applied to SCADA/IoT (MongoDB, PostgreSQL/TimescaleDB, Node.js, C#, Golang, Grafana, etc.).
- MongoDB as the real-time core database, persistence layer, config store, SOE historian.
- Event-based realtime async data processing with MongoDB Change Streams.
- Portability and modular interoperability over Linux, Windows, Mac OSX, x86/64, ARM.
- Windows installer available in the releases section.
- Unlimited tags, servers, and users.
- Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments.
- Modular distributed architecture. Lightweight redundant data acquisition nodes can connect securely over TLS to the database server. E.g. a Raspberry PI can be a data acquisition node.
- Extensibility of the core data model (MongoDB: NoSQL/schema-less).
- HTML5 Web interface. UTF-8/I18N. Mobile access. Web-based configuration management.
- Role-based access control (RBAC).
- Various high-quality protocol drivers.
- Integration with MQTT brokers (compatibility with Sparkplug B).
- Live point configuration updates.
- Inkscape-based SVG synoptic display editor.
- PostgreSQL/TimescaleDB historian integrated with Grafana for easy creation of dashboards.
- Easy development of custom applications with modern stacks like MEAN/MERN, etc. Extensive use of JSON from bottom up.
- Leverage a huge ecosystem of MongoDB/PostgreSQL tools, community, services, etc.
- Easy AI-helped custom app development using templates/API for tools like WindSurf/Cline/Cursor/Copilot/etc.
- Protocol Gateway.
- Secure Protocol Gateway with 1-way air gapped replication (via data diode or tap device).
- Power/Oil/Gas/Manufacturing/etc Local Station HMI.
- SCADA for Control Centers.
- SCADA/IIoT Historian.
- Intranet/Internet HTTPS Gateway - Visualization Server.
- Multilevel Systems Integration (SCADA/IIoT/ERP/MES/PLC).
- Global-Level/Cloud SCADA Systems Integration.
- Edge processing.
- Data concentrator for Big Data / ML processing.
- Digital Transformation, Industry 4.0 enabler.
- 5+ years of usage in 2 big control centers scanning data from 80+ substations, 90k tags.
- 5+ years of usage as HMI for local operation of circa 40 substations up to 230kV level.
- Generic Install Guide
- Windows Installer
- RedHat/Rocky Linux Installer
- Docker Demo
- Schema Documentation
- Config File
- SVG Synoptic Display Editor
- IEC61850 Client Driver
- IEC60870-5-104 Server Driver
- IEC60870-5-104 Client Driver
- IEC60870-5-101 Server Driver
- IEC60870-5-101 Client Driver
- DNP3 Client Driver
- Telegraf Listener Driver
- MQTT Sparkplug-B Client Driver
- OPC-UA Client Driver
- OPC-UA Server Driver
- OPC-DA Client Driver
- PLC4X-GO Modbus Client Driver
- CIP Ethernet/IP PLCTags Client Driver
- Calculations
- Change Stream Data Processor
- Custom Data Processor
- Custom Developments
- Realtime Data Server
- OSHMI2JSON Tool
- Report Generators
- I104M Client Driver
- SAGE-web Displays
- IEC 60870-5-104 Server TCP/TLS
- IEC 60870-5-104 Client TCP/TLS
- IEC 60870-5-101 Server Serial/TCP
- IEC 60870-5-101 Client Serial/TCP
- IEC 60870-5-103 Client
- IEC 61850 MMS Client TCP/TLS
- IEC 61850 MMS Server
- IEC 61850 GOOSE/SV Client
- DNP3 Client TCP/UDP/TLS/Serial - Windows x64 only!
- DNP3 Server TCP/UDP/TLS/Serial
- MQTT/Sparkplug-B Pub/Sub TCP/TLS
- Modbus Client via PLC4X-GO
- ICCP Client TCP/TLS
- ICCP Server TCP/TLS
- Telegraf Client (OPC-UA, MQTT, MODBUS, SNMP, ...)
- OPC UA Client TCP/Secure
- OPC UA Server TCP/Secure
- OPC UA Historical Data Server
- OPC DA Client (Windows)
- OPC AE Client (Windows)
- OPC DA Server (Windows)
- CIP Ethernet/IP (libplctag, experimental)
- Siemens S7
- BACNET
- I104M (legacy adapter for some OSHMI drivers)
- Web-based Viewers
- Web-based Configuration Manager
- Excel-based Configuration
- JWT Authentication
- User auth/Role-based Access Control (RBAC)
- LDAP/AD Authorization
- Inkscape-based SVG Synoptic Editor
- Compiled Cyclic Calculations Engine
- Low-latency/Asynchronous Calculations Engine
- Customizable Change-Stream Processor (for user implemented scripts)
- Basic Alarms Processor
- Advanced Alarms Processor
- PostgreSQL/TimescaleDB Historian
- Grafana Integration
- Metabase Integration (via PostgreSQL/MongoDB connectors)
- One-way realtime replication (over eth diode/tap device) w/ point db sync and historical backfill
- Windows Installer
- Online Demo
- Docker Demo (docker-compose.yaml scripts)
- Install Script for RedHat/Rocky 9.4 Linux x86-64 and arm64
- Linux Image / VM
- Supervisor (Linux process manager) examples
- Project IDX Configuration
- InfluxDB Integration
- Telegraf Integration
- Kafka Integration
- PowerBI Integration (via PostgreSQL connector)
- PowerBI Direct Integration
- Supabase Integration
- NodeRed Integration
- n8n Integration
- Alerta Integration (https://alerta.io/)
- PLC4X-GO Integration (https://plc4x.apache.org/)
- Example templates/API for fast AI-helped custom app developments
- Managed Cloud Service
- Supported LTS versions
With just a Google account, you can spin up a free private instance for test/dev on Google's Project IDX. This is a great way to get started with the project. This will build the code from the Github repo and deploy it to a private Linux VM on the cloud running protocols and providing a web UI for you to interact with. There will be a web-based code editor available for you to develop new apps and view/change the code on the VM. You can also get help from Google's Gemini AI for coding and other tasks. This is free and there no need to install any software on your local machine.
See details here.
This demo provides a public IEC 60870-5-104 server port on IP address 150.230.171.172:2404 (common address = 1) for testing.
The demo data is published as regular MQTT topics to the public broker mqtt://test.mosquitto.org:1883 (about 8600 topics in JsonScadaDemoVPS/# and ACME_Utility/#).
Data is also published as Sparkplug-B to mqtt://test.mosquitto.org:1883 (about 4300 device metrics in spBv1.0/Sparkplug B Devices/+/JSON-SCADA Server/#). Data/birth messages are compressed by Eclipse Tahu Javascript libs.