Skip to content

Commit

Permalink
Version 0.41-alpha
Browse files Browse the repository at this point in the history
  • Loading branch information
riclolsen committed Nov 29, 2024
1 parent 2195d0f commit 8bfd94e
Show file tree
Hide file tree
Showing 10 changed files with 132 additions and 51 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
48 changes: 29 additions & 19 deletions index.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](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](docs/install.md#rhel94-and-compatible-systems-automated-installation)
- [Install Guide](docs/install.md)
- [Docker Demo](demo-docker/README.md)
Expand All @@ -109,52 +110,57 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
- [OPC-DA Client Driver](src/OPC-DA-Client/README.md)
- [PLC4X-GO Modbus Client Driver](src/plc4x-client/README.md)
- [CIP Ethernet/IP PLCTags Client Driver](src/libplctag/PLCTagsClient/README.md)
- [I104M Client Driver](src/i104m/README.md)
- [Calculations](src/calculations/README.md)
- [Change Stream Data Processor](src/cs_data_processor/README.md)
- [Custom Data Processor](src/cs_custom_processor/README.md)
- [Custom Developments](src/custom-developments/README.md)
- [Realtime Data Server](src/server_realtime_auth/README.md)
- [OSHMI2JSON Tool](src/oshmi2json/README.md)
- [Report Generators](docs/report_generators.md)
- [I104M Client Driver](src/i104m/README.md)
- [SAGE-web Displays](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 (many data sources available such as 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
- [ ] OPC UA 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
- [ ] Low-latency/Interpreted Calculations Engine
- [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
- [x] PostgreSQL/TimescaleDB Historian
Expand All @@ -167,14 +173,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
13 changes: 11 additions & 2 deletions platform-windows/json-scada.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ RequestExecutionLevel admin

;--------------------------------

!define VERSION "v.0.40"
!define VERSION_ "0.40.0.0"
!define VERSION "v.0.41"
!define VERSION_ "0.41.0.0"

Function .onInit
System::Call 'keexrnel32::CreateMutexA(i 0, i 0, t "MutexJsonScadaInstall") i .r1 ?e'
Expand Down Expand Up @@ -446,6 +446,15 @@ SetRegView 64
SetOutPath $INSTDIR\src\log-io\ui\build
File /a /r "..\src\log-io\ui\build\*.*"

SetOutPath $INSTDIR\src\custom-developments
File /a "..\src\custom-developments\README.md"
SetOutPath $INSTDIR\src\custom-developments\basic_bargraph
File /a /r /x "..\src\custom-developments\basic_bargraph\node_modules" "..\src\custom-developments\basic_bargraph\*.*"
SetOutPath $INSTDIR\src\custom-developments\advanced_dashboard
File /a /r /x "..\src\custom-developments\advanced_dashboard\node_modules" "..\src\custom-developments\advanced_dashboard\*.*"
SetOutPath $INSTDIR\src\custom-developments\transformer_with_command
File /a /r /x "..\src\custom-developments\transformer_with_command\node_modules" "..\src\custom-developments\transformer_with_command\*.*"

SetOutPath $INSTDIR\platform-windows\browser-runtime
File /a /r "..\platform-windows\browser-runtime\*.*"

Expand Down
33 changes: 30 additions & 3 deletions platform-windows/release_notes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,38 @@ See official repo:
Inkscape+SAGE:
* See http://wiki.inkscape.org/wiki/index.php/Compiling_Inkscape_on_Windows_with_MSYS2.


-------------------------------------------------------------------

Notes for version 0.41:

* ATTENTION: The default SVG folder has been moved to "c:\json-scada\svg\".

* Default login credentials: username=admin password=jsonscada.
* Metabase credentials: username=json@scada.com password=jsonscada123.
* New custom developments example templates for easy AI-helped app developments.
* MongoDB drivers for Dotnet projects updated.
* Faster data updates on viewers.
* IEC61850 Client: updated libiec61850 version to 1.6.0, added TLS support.
* NPM packages updated.
* MongoDB Compass updated to 1.44.7.
* Grafana updated to 11.3.1.
* Nodejs runtime updated to 22.11.0.

Requirements and recommendations:

* Windows 10/11 64 bits or Server >=2019, Windows PowerShell. At least 20GB of free space in the "C:" drive.
* Administrative rights. Corporate Windows policies may cause problems with the creation of services and the opening of TCP ports.
* Free TCP ports 6688, 6689, 27017, 5432, 80, 8080, 3000, 3001, 9000. Other ports may be required for optional services and protocols.
* If the server already has MongoDB, PostgreSQL, Grafana, Metabase, Nginx or another webserver, please uninstall, disable or watch out for possible conflicts.
* Do not update previously installed JSON-SCADA. Please uninstall previous JSON-SCADA versions before installing a new version.
* If using VirtualBox configure "paravirtualization interface"=KVM, otherwise Nodejs errors may occur.
* MongoDB requires AVX instructions on x86 CPU.
-------------------------------------------------------------------

Notes for version 0.40:

* ATTENTION: The default SVG folder was moved to "c:\json-scada\svg\".
* ATTENTION: The default SVG folder has been moved to "c:\json-scada\svg\".

* Default login credentials: username=admin password=jsonscada.
* Metabase credentials: username=json@scada.com password=jsonscada123.
Expand All @@ -150,7 +177,7 @@ Notes for version 0.40:
Requirements and recommendations:

* Windows 10/11 64 bits or Server >=2019, Windows PowerShell. At least 20GB of free space in the "C:" drive.
* Administrative rights. corporate Windows policies may cause problems with the creation of services and the opening of TCP ports.
* Administrative rights. Corporate Windows policies may cause problems with the creation of services and the opening of TCP ports.
* Free TCP ports 6688, 6689, 27017, 5432, 80, 8080, 3000, 3001, 9000. Other ports may be required for optional services and protocols.
* If the server already has MongoDB, PostgreSQL, Grafana, Metabase, Nginx or another webserver, please uninstall, disable or watch out for possible conflicts.
* Do not update previously installed JSON-SCADA. Please uninstall previous JSON-SCADA versions before installing a new version.
Expand All @@ -161,7 +188,7 @@ Requirements and recommendations:

Notes for version 0.39:

* ATTENTION: The default SVG folder was moved to "c:\json-scada\svg\".
* ATTENTION: The default SVG folder has been moved to "c:\json-scada\svg\".

* Default login credentials: username=admin password=jsonscada.
* Metabase credentials: username=json@scada.com password=jsonscada123.
Expand Down
2 changes: 1 addition & 1 deletion src/AdminUI/public/i18n/messages_i18n-en_us.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
var Msg =
{
NomeProduto: '{json:scada}',
VersaoProduto: '0.40',
VersaoProduto: '0.41',

NomeVisorTelas: 'Display Viewer',
NomeVisorEventos: 'Events Viewer',
Expand Down
2 changes: 1 addition & 1 deletion src/AdminUI/public/i18n/messages_i18n-pt_br.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
var Msg =
{
NomeProduto: '{json:scada}',
VersaoProduto: '0.40',
VersaoProduto: '0.41',

NomeVisorTelas: 'Visor de Telas',
NomeVisorEventos: 'Visor de Eventos',
Expand Down
2 changes: 1 addition & 1 deletion src/AdminUI/public/i18n/messages_i18n-uk_ua.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
var Msg =
{
NomeProduto: '{json:scada}',
VersaoProduto: '0.40',
VersaoProduto: '0.41',

NomeVisorTelas: 'Перегляд ',
NomeVisorEventos: 'Події',
Expand Down
2 changes: 1 addition & 1 deletion src/AdminUI/public/i18n/messages_i18n.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
var Msg =
{
NomeProduto: '{json:scada}',
VersaoProduto: '0.40',
VersaoProduto: '0.41',

NomeVisorTelas: 'Display Viewer',
NomeVisorEventos: 'Events Viewer',
Expand Down
Loading

0 comments on commit 8bfd94e

Please sign in to comment.