Skip to content

Commit

Permalink
Merge pull request #174 from json-scada/master
Browse files Browse the repository at this point in the history
Version 0.41-alpha
  • Loading branch information
riclolsen authored Nov 29, 2024
2 parents 83415c1 + 8bfd94e commit 01d30ff
Show file tree
Hide file tree
Showing 136 changed files with 34,506 additions and 3,520 deletions.
46 changes: 27 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ A portable and scalable SCADA/IIoT-I4.0 platform centered on the MongoDB databas
![](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/macosx-x86--64-green 'Mac OSX x86-64')
![](https://img.shields.io/badge/macosx-ARM--M1-yellow 'Mac ARM M1')
![](https://img.shields.io/badge/macosx-ARM--M1-yellow 'Mac ARM Mx')

![](https://img.shields.io/badge/IEC61850-green 'IEC61850')
![](https://img.shields.io/badge/IEC60870--5--104-green 'IEC60870-5-104')
Expand Down Expand Up @@ -48,7 +48,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
- 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](https://github.com/riclolsen/json-scada/releases/tag/V0.40-alpha).
- Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.41-alpha).
- 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.
Expand All @@ -62,6 +62,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
- 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

Expand Down Expand Up @@ -89,7 +90,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
## Documentation

- [Generic Install Guide](https://github.com/riclolsen/json-scada/blob/master/docs/install.md)
- [Windows Installer](https://github.com/riclolsen/json-scada/releases/tag/V0.40-alpha)
- [Windows Installer](https://github.com/riclolsen/json-scada/releases/tag/V0.41-alpha)
- [RedHat/Rocky Linux Installer](https://github.com/riclolsen/json-scada/blob/master/docs/install.md#rhel94-and-compatible-systems-automated-installation)
- [Docker 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)
Expand All @@ -108,53 +109,56 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
- [OPC-DA Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/OPC-DA-Client/README.md)
- [PLC4X-GO Modbus Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/plc4x-client/README.md)
- [CIP Ethernet/IP PLCTags Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/libplctag/PLCTagsClient/README.md)
- [I104M Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/i104m/README.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)
- [OSHMI2JSON Tool](https://github.com/riclolsen/json-scada/blob/master/src/oshmi2json/README.md)
- [Report Generators](https://github.com/riclolsen/json-scada/blob/master/docs/report_generators.md)
- [I104M Client Driver](https://github.com/riclolsen/json-scada/blob/master/src/i104m/README.md)
- [SAGE-web Displays](https://github.com/riclolsen/json-scada/blob/master/src/htdocs/sage-cepel-displays/README.md)

## 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-101 Server Serial/TCP
- [x] IEC 60870-5-101 Client Serial/TCP
- [ ] IEC 60870-5-103 Client
- [x] DNP3 Client (TCP, UDP, TLS, Serial) - Windows x64 only!
- [ ] DNP3 Server (TCP, UDP, TLS, Serial)
- [x] MQTT/Sparkplug-B Client
- [x] IEC 61850 MMS Client TCP/TLS
- [ ] IEC 61850 MMS Server
- [ ] IEC 61850 GOOSE/SV Client
- [x] DNP3 Client TCP/UDP/TLS/Serial - Windows x64 only!
- [ ] DNP3 Server TCP/UDP/TLS/Serial
- [x] MQTT/Sparkplug-B Pub/Sub TCP/TLS
- [x] Modbus Client via PLC4X-GO
- [x] I104M (adapter for some OSHMI drivers)
- [ ] ICCP Client
- [ ] ICCP Server
- [ ] ICCP Client TCP/TLS
- [ ] ICCP Server TCP/TLS
- [x] Telegraf Client (OPC-UA, MQTT, MODBUS, SNMP, ...)
- [x] OPC UA Client
- [x] OPC UA Server
- [x] OPC UA Client TCP/Secure
- [x] OPC UA Server TCP/Secure
- [ ] OPC UA Historical Data Server
- [x] OPC DA Client (Windows)
- [ ] OPC AE Client (Windows)
- [ ] OPC DA Server (Windows)
- [x] IEC 61850 MMS Client
- [ ] IEC 61850 MMS Server
- [ ] IEC 61850 GOOSE Client
- [x] CIP Ethernet/IP (libplctag, experimental)
- [ ] Siemens S7
- [ ] BACNET
- [x] I104M (legacy adapter for some OSHMI drivers)

## 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)
- [ ] LDAP/AD Authorization
- [x] Inkscape-based SVG Synoptic Editor
- [x] Compiled Calculations Engine
- [x] Compiled Cyclic Calculations Engine
- [ ] Low-latency/Asynchronous Calculations Engine
- [x] Customizable Change-Stream Processor (for user implemented scripts)
- [ ] Low-latency/Interpreted Calculations Engine
- [x] Basic Alarms Processor
- [ ] Advanced Alarms Processor
- [x] PostgreSQL/TimescaleDB Historian
Expand All @@ -167,14 +171,18 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
- [x] Install Script for RedHat/Rocky 9.4 Linux x86-64 and arm64
- [ ] Linux Image / VM
- [x] Supervisor (Linux process manager) examples
- [ ] Project IDX Configuration
- [ ] InfluxDB Integration
- [x] Telegraf Integration
- [ ] Kafka Integration
- [x] PowerBI Integration (via PostgreSQL connector)
- [ ] PowerBI Direct Integration
- [ ] Supabase Integration
- [ ] NodeRed Integration
- [ ] n8n Integration
- [ ] Alerta Integration (https://alerta.io/)
- [x] PLC4X-GO Integration (https://plc4x.apache.org/)
- [x] Example templates/API for fast AI-helped custom app developments
- [ ] Managed Cloud Service
- [ ] Supported LTS versions

Expand Down
6 changes: 3 additions & 3 deletions conf-templates/config_viewers.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
//var EventsViewer_AckTxtColor = '#606060'; // acknowledged event color
//var EventsViewer_ElimTxtColor = '#B0B0B0'; // eliminated event color (until removed)
//
//var EventsViewer_RefreshTime = 15; // refresh time in seconds (digital changes triggers a faster refresh)
//var EventsViewer_RefreshTime = 12; // refresh time in seconds (digital changes triggers a faster refresh)
//
// var EventsViewer_MaxRealtimeEvents = 750; // maximum number of realtime events to show
//var EventsViewer_MaxHistoricalEvents = 2500; // maximum number of historical events to query from server at each request
Expand Down Expand Up @@ -66,7 +66,7 @@
//
//var TabularViewer_LineColor = '#DCDCEE'; // line color
//
//var TabularViewer_RefreshTime = 7; // refresh time (seconds)
//var TabularViewer_RefreshTime = 3; // refresh time (seconds)
//
//// locale and time zone for date/time formatting (leave empty for browser defaults)
//// see https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
Expand All @@ -78,7 +78,7 @@
//
//// Screen Viewer ---------------------------------------------------------------------------------
//
//var ScreenViewer_RefreshTime = 5; // refresh time in seconds (digital changes triggers a faster refresh)
//var ScreenViewer_RefreshTime = 3; // refresh time in seconds (digital changes triggers a faster refresh)
//
//// SVG Screen dimensions (must match <svg> tag dimensions on SVG screens)
//// <svg width="2400" height="1500">
Expand Down
Loading

0 comments on commit 01d30ff

Please sign in to comment.