# json-scada-devel **Repository Path**: xinxin2017/json-scada-devel ## Basic Information - **Project Name**: json-scada-devel - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-10-26 - **Last Updated**: 2026-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README JSON:SCADA Logo # {json:scada} A portable and scalable SCADA/IIoT-I4.0 platform centered on the MongoDB database server. ![](https://img.shields.io/badge/nodejs-20-green 'Node.js 20+') ![](https://img.shields.io/badge/golang-1.26-green 'Go 1.26+') ![](https://img.shields.io/badge/dotnet-8.0-green 'Dotnet 8.0') ![](https://img.shields.io/badge/mongodb-6.0-green 'MongoDB 6.0+') ![](https://img.shields.io/badge/postgresql-16-green 'PostgreSQL 16+') ![](https://img.shields.io/badge/timescaledb-2.0-green 'TimescaleDB 2.0') ![](https://img.shields.io/badge/grafana-11-green 'Grafana 11+') ![](https://img.shields.io/badge/linux-x86--64-green 'Linux x86-64') ![](https://img.shields.io/badge/linux-ARM-green 'Linux ARM-64') ![](https://img.shields.io/badge/windows-x86--64-green 'Windows x86-64') ![](https://img.shields.io/badge/IEC61850-green 'IEC61850') ![](https://img.shields.io/badge/ICCP-green 'ICCP') ![](https://img.shields.io/badge/IEC60870--5--104-green 'IEC60870-5-104') ![](https://img.shields.io/badge/IEC60870--5--101-green 'IEC60870-5-101') ![](https://img.shields.io/badge/DNP3-green 'DNP3') ![](https://img.shields.io/badge/MQTT-green 'MQTT') ![](https://img.shields.io/badge/Sparkplug--B-green 'Sparkplug B') ![](https://img.shields.io/badge/OPC--UA-green 'OPC-UA') ![](https://img.shields.io/badge/OPC--DA-green 'OPC-DA') ![](https://img.shields.io/badge/Modbus-green 'Modbus') ![](https://img.shields.io/badge/license-GPL-green 'License GPL') ![](https://img.shields.io/badge/contributors-welcome-green 'Contributors Welcome') [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/riclolsen/json-scada) ## Mission Statement To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.0 platform built by leveraging mainstream open-source IT tools. ## Screenshots ![screenshots](https://github.com/riclolsen/json-scada/raw/master/docs/screenshots/anim-screenshots.gif '{json:scada} Screenshots') ## Running Via Docker sudo docker run -p 80:80 -p 9000:9000 -p 4840:4840 -p 2404:2404 -p 20000:20000 -d --name=json_scada ricardolo/json-scada:latest Open http://127.0.0.1 on a browser (user="admin" and password="jsonscada"). See details here: [Docker Image](https://github.com/riclolsen/json-scada/blob/master/docs/docker_image.md). Other installation options and instructions are available in the [Installation Guide](https://github.com/riclolsen/json-scada/blob/master/docs/install.md). ## Major features - 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, x86/64, ARM. - Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/latest). - 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 and web-base SVG synoptic display editors. - 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. ## Use cases - 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. ## Real-world usage - 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. ## Architecture ![architecture](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/riclolsen/json-scada/master/docs/JSON-SCADA_Arquitecture.txt '{json:scada} Architecture') ## Documentation - [Generic Install Guide](https://github.com/riclolsen/json-scada/blob/master/docs/install.md) - [Windows Installer](https://github.com/riclolsen/json-scada/releases/latest) - [RHEL/Rocky/Alma/Oracle Linux 9/10 Installer Script](https://github.com/riclolsen/json-scada/blob/master/docs/install.md#rhel-910-and-compatible-systems-rockyalmaoracle-linux-scripted-installation) - [Ubuntu Linux 24.04/26.04 Installer Script](https://github.com/riclolsen/json-scada/blob/master/docs/install.md#ubuntu-24042604-scripted-installation) - [Docker Image](https://github.com/riclolsen/json-scada/blob/master/docs/docker_image.md) - [Docker Compose Demo](https://github.com/riclolsen/json-scada/blob/master/demo-docker/README.md) - [Schema Documentation](https://github.com/riclolsen/json-scada/blob/master/docs/schema.md) - [Config File](https://github.com/riclolsen/json-scada/blob/master/conf/README.md) - [SVG Synoptic Display Editor](https://github.com/riclolsen/json-scada/blob/master/src/svg-display-editor/README.md) - [IEC61850 Client Driver (GO)](https://github.com/riclolsen/json-scada/blob/master/src/iec61850/iec61850_client/README.md) - [IEC61850 Server Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/iec61850/iec61850_server/README.md) - [IEC60870-5-104 Server Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/iec60870-5/cmd/iec104server/README.md) - [IEC60870-5-104 Client Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/iec60870-5/cmd/iec104client/README.md) - [IEC60870-5-101 Server Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/iec60870-5/cmd/iec101server/README.md) - [IEC60870-5-101 Client Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/iec60870-5/cmd/iec101client/README.md) - [ICCP TASE2 Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/iccp/iccp-client/README.md) - [ICCP TASE2 Server Driver](https://github.com/riclolsen/json-scada/blob/master/src/iccp/iccp-server/README.md) - [DNP3 Client Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/dnp3-go/cmd/dnp3client/README.md) - [DNP3 Server Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/dnp3-go/cmd/dnp3server/README.md) - [Telegraf Listener Driver](https://github.com/riclolsen/json-scada/blob/master/src/telegraf-listener/README.md) - [Node-RED Integration Driver (bidirectional)](https://github.com/riclolsen/json-scada/blob/master/src/node-red-driver/README.md) - [N8N Integration Driver (bidirectional)](https://github.com/riclolsen/json-scada/blob/master/src/n8n-client/README.md) - [MQTT Sparkplug-B Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/mqtt-sparkplug/README.md) - [OPC-UA Client Driver (Go)](https://github.com/riclolsen/json-scada/blob/master/src/OPC-UA-Client-Go/README.md) - [OPC-UA Server Driver](https://github.com/riclolsen/json-scada/blob/master/src/OPC-UA-Server/README.md) - [OPC-DA Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/OPC-DA-Client/README.md) - [OPC-DA Server Driver](https://github.com/riclolsen/json-scada/blob/master/src/OPC-DA-Server/README.md) - [PLC4J Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/plc4j-client/README.md) - [Modbus Client Driver (native TCP/TLS/RTU/RTU-over-TCP, all byte orders)](https://github.com/riclolsen/json-scada/blob/master/src/modbus/README-client.md) - [Modbus Server Driver (native TCP/TLS/RTU/RTU-over-TCP, all byte orders)](https://github.com/riclolsen/json-scada/blob/master/src/modbus/README-server.md) - [Calculations](https://github.com/riclolsen/json-scada/blob/master/src/calculations/README.md) - [Change Stream Data Processor](https://github.com/riclolsen/json-scada/blob/master/src/cs_data_processor/README.md) - [Custom Data Processor](https://github.com/riclolsen/json-scada/blob/master/src/cs_custom_processor/README.md) - [Custom Developments](https://github.com/riclolsen/json-scada/blob/master/src/custom-developments/README.md) - [Realtime Data Server](https://github.com/riclolsen/json-scada/blob/master/src/server_realtime_auth/README.md) - [Report Generators](https://github.com/riclolsen/json-scada/blob/master/docs/report_generators.md) - [Deep Wiki](https://deepwiki.com/riclolsen/json-scada) ## Protocols Roadmap - [x] IEC 60870-5-104 Server TCP/TLS - [x] IEC 60870-5-104 Client TCP/TLS - [x] IEC 60870-5-101 Server Serial/TCP - [x] IEC 60870-5-101 Client Serial/TCP - [x] IEC 60870-5-103 Client Serial/TCP - [x] IEC 61850 MMS Client TCP/TLS - [x] IEC 61850 MMS Server TCP/TLS - [ ] IEC 61850 GOOSE/SV Client - [x] DNP3 Client TCP/UDP/TLS/Serial - [x] DNP3 Server TCP/UDP/TLS/Serial - [x] Various protocols (Modbus, S7, etc.) via PLC4X-Java - [x] Modbus Client (native) TCP/TLS/RTU/RTU-over-TCP, all byte orders - [x] Modbus Server (native) TCP/TLS/RTU/RTU-over-TCP, all byte orders - [x] ICCP Client TCP/TLS - [x] ICCP Server TCP/TLS - [x] Telegraf Client (many data sources available such as MQTT, MODBUS, SNMP, ...) - [x] MQTT/Sparkplug-B Pub/Sub TCP/TLS - [x] OPC UA PubSub over MQTT with JSON payloads client - [x] OPC UA Client TCP/Secure - [x] OPC UA Server TCP/Secure - [x] OPC UA Historical Data Server - [x] OPC DA Client (Windows) - [x] OPC DA Server (Windows) - [x] ONVIF Camera control and streaming ## Features Roadmap - [x] Web-based Viewers - [x] Web-based Configuration Manager - [x] Excel-based Configuration - [x] JWT Authentication - [x] User auth/Role-based Access Control (RBAC) - [x] LDAP/AD Authorization - [x] Inkscape-based SVG Synoptic Display Editor - [x] Web-based SVG Synoptic Display Editor - [x] Skill file for AI-assisted SVG creation with SCADA markup - [x] MCP Server to help with AI query, development and testing - [x] Template nodejs app with Typescript submodule to access JSON-SCADA data structures, manage connections and redundancy - [x] Compiled Cyclic Calculations Engine - [ ] Low-latency/Asynchronous Calculations Engine - [x] Customizable Change-Stream Processor (for user implemented scripts) - [x] Basic Alarms Processor - [ ] Advanced Alarms Processor - [ ] Receipt runtime/editor - [x] PostgreSQL/TimescaleDB Historian - [x] Grafana Integration - [x] Metabase Integration (via PostgreSQL/MongoDB connectors) - [x] One-way realtime replication (over eth diode/tap device) w/ point db sync and historical backfill - [x] Windows Installer - [x] Docker Image - [x] Docker Compose Demo (docker-compose.yaml scripts) - [x] Install Script for RedHat/Rocky/Alma 9/10 Linux x86-64 and arm64 - [x] Install Script for Ubuntu 24.04/26.04 Linux x86-64 and arm64 - [x] Online Demo - [x] Supervisor (Linux process manager) examples - [ ] InfluxDB Integration - [x] Telegraf Integration - [x] PowerBI Integration (via PostgreSQL connector) - [ ] Kafka/Redpanda/Benthos Integration - [ ] Eclipse 4diac - [ ] Supabase Integration - [x] Node-RED Integration (bidirectional driver + node-red-contrib-jsonscada) - [x] n8n Integration (bidirectional driver + n8n-nodes-jsonscada) - [ ] Alerta Integration (https://alerta.io/) - [ ] Open PLC Integration - [x] Example templates/API for fast AI-helped custom app developments ## Enterprise Services (available on request) - [x] Customizations - [x] Linux Image / VM - [x] Managed Cloud Service - [x] Supported LTS versions - [x] Commercial Redistribution License (Dual Licensing) ## Online Demo (substations simulation) - http://150.230.171.172 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. ## Developer Contact - https://www.linkedin.com/in/ricardo-olsen/