Using OSHMI – Part 2: Installation

The purpose of this article is to help to understand the requirements and the installation process of OSHMI.

System Requirements And Tuning

The hardware requirements will depend on the size and architecture of the system.

For a small system like a single substation up to 3000 tags, a cheap machine can take care of the load.

Recommended minimum hardware for most use cases:

Intel Core I5 or AMD Ryzen 5 processor, 4GB of RAM, 250GB HD, 4k capable GPU, 27″ UHD monitor, Windows 10.

For sure it is possible to use a less capable system, but this possibly will require some additional tuning and testing. For example a server only machine can have only 2GB of RAM and a slower processor (e.g. Intel Atom), this can enable the use of a fan-less rugged hardware.

For Control Centers typically processing 50k tags or more, it is recommended a more capable hardware:

Intel Core I7/AMD Ryzen 7 processor with 4 nuclei or better processor, 16GB of RAM, 512GB SSD,  4k capable GPU, 27″ or greater UHD monitor, gigabit ethernet, Windows 10.

It is possible to use also older versions of Windows. I recommend Windows 10 because it manages UHD 4k monitors in a much better way than the older versions. Even Windows XP can be used but in this case, it is necessary to use an older version of the Chromium browser, 49 is the last version compatible with Windows XP (‘’ package in the OSHMI Sourceforge Files section).

Some Windows tuning sometimes helps a great deal in the performance and responsiveness of the system. Some simple measures that can help (try them one at a time until you reach good performance):

  • Uninstall all the manufacturer bloatware and other unessential software.
  • Disable all energy economy functions, put the system in the maximum performance option.
  • Do not enable screensavers.
  • Remove unessential startup items (using MSConfig).
  • Disable Windows 10 Apps background processing.
  • Disable all Windows privacy options.
  • Disable automatic updates.
  • Remove unnecessary Windows features (as Vista Gadgets, tablet extensions, etc.).
  • Disable Windows UAC.
  • Disable some Windows Services such as Ready Boost, Super Fetch, and Windows Search.
  • Disable Windows Firewall.
  • Do not use third-party antivirus, prefer Windows embedded protection tools.
  • Disable Windows real-time and cloud-based protection.

For mobile clients, it is necessary only a modern HTML5 browser like Chrome, Firefox, Opera or Safari. The performance of SVG Screens can be bad for old or underpowered devices. In general, an intermediary priced current device can handle SVG processing with good performance. Very complex screens with many objects and animations may require a top performant device like expensive flagship phones or tablets.


As stated in the previous article, OSHMI aggregates various open-source projects in a single easy to install package. All the system is pre-configured with reasonable defaults and the required intervention in the configuration files is kept to a minimum.

To install OSHMI first download the latest version from the main repository Execute the installer oshmi_setup_xxx.exe as an administrator user. The system will install to c:\oshmi.

After the setup ends go to c:\oshmi\extprogs and run download_external_progs.bat, this will install some optional utilities and the screen editor Inkscape+SAGE.

The install and updates cycle is designed not to overwrite configuration, database and screen files. So when a new version is installed all the current state of the system is expected to be preserved. None the less I recommend a backup before installing a new version (especially for the conf, svg, charts and scripts folders).

The more important folders under the c:\oshmi are (see the complete list in the configuration manual):

  • bin – executable files
  • conf – configuration files
  • db – database files
  • docs – documentation
  • htdocs – HTML5 files
  • svg – display screen files
  • nginx_php – web server and scripting engines

The setup program creates an OSHMI folder on the desktop. This folder contains shortcuts to many system files and functions. To quickly test the installed system, execute the “_Start_OSHMI” shortcut. This will execute the server subsystem and open the Screen and Alarms Viewers. The system is preconfigured to run a simulation with an example point list and screens. To simulate a command, click on a breaker and push the “Command” button then choose an action like “OPEN” or “CLOSE” and push the action button. To stop the system click on the “Stop_All” icon in the OSHMI folder. To edit and create new SVG screens use the Inkscape+SAGE editor.

By default, the system is configured to allow only HTTP access to the local machine (localhost, To allow external access, edit the “c:\oshmi\conf\nginx_access_control.conf” file to add the desired IP addresses. You can do this to test access on tablets or cell phones. To open the Screen Viewer on a remote device, enter the URL http://w.x.y.z:51909/htdocs/screen.html (replace w.x.y.z by the server IP address) in a compatible browser (Chrome, Firefox, Safari or Opera). It is possible to change the HTTP port, enable HTTPS, add client certificates and enable user auth by tampering with the Nginx configuration.

That’s it: following these simple instructions you should easily have a running system. The next step is to learn how to configure the system: a matter for the next articles.


OSHMI is available at


Copyright © 2017 Ricardo L. Olsen. All rights reserved.

Company: DSC Systems – HTML5 Synoptic Toolkit.

XPlain SCADA@cloud service.

For free assistance on OSHMI, professional support, managed cloud hosted SCADA service, partnerships, or customization of applications for device manufacturers, please contact me on LinkedIn



==> Part 1 – Use Cases


Using OSHMI – Part 1: Common Use Cases


The Open Substation HMI (OSHMI) is a modern open-source HTML5 based HMI conceived from the ground up for substation operation, even though it can for sure be used in any other automation field such as industrial, building, IoT, etc.

In this series of articles, I will cover many aspects of the usage of the software: the installation, the configuration of point databases and protocols, the creation of graphics, scripting, etc. Let’s begin with some common use cases for the system.

The guiding philosophy of the project is to keep things as simple as possible by the means of integrating ready made established open source tools such as Nginx, PHP, Lua, SQLite, Chromium, Inkscape, etc. The use of web standards and technologies is also a priority: SVG, Javascript, JSON, HTTP, OData, D3JS, Vega, etc. This gives the project a clear path of improvement by the continuous development of the underlying technologies, also it maintains the development at a higher level on top of all these tools. Additionally, the use of open standards allows for an easy integration with other systems and tools.

OSHMI is modular and flexible enough that it can be used in many different ways. The system is composed of three modules that can be separated or joined as desired:

  • The protocol driver
  • The real-time web server
  • The client user interface
OSHMI Modular Architecture

For example, for local substation control, it is possible to use a single PC with all three modules integrated. For a Control Center application, you can use 2 redundant servers with the protocol driver and real-time web server modules, and as many client PCs as needed with just the user interface part. It is also possible to have the protocol driver next to the controlled process, the real-time web server on the cloud and the client interface on a mobile device (phone, tablet, etc.). Learning to configure and combine these modules you can cover many use cases, taking into consideration cost and performance of server and client devices, security requirements, bandwidth and communication channel characteristics, locations for operation, etc.


A single machine with all OSHMI modules
OSHMI Control Center Architecture

For an IoT scenario, it is possible to use a protocol converter, if necessary to cover all the needed protocols, and hosting all the system in the cloud to be accessed securely from anywhere.

The use of the Nginx HTTP server makes it simple to secure client/server communications by the possibility of using HTTPS, user authentication, and client certificates. Other web servers as Apache can be customized and the real-time web server module can run also on a Linux OS if desired.

The embedded database backend is SQLite based, but it is possible with some scripting to forward historical data to a MySQL, MS SQL Server, PostgreSQL, InfluxDB, or other SGBD for a more robust backend if necessary to store big quantities of data (more than 20GB) or when there will be many clients accessing historical data simultaneously (more than 10).

In short, the OSHMI system allows for a great deal of flexibility and customization. The open source characteristic, the use of web standards and the generally available subsystems permit almost any type of customization necessary to cover many use cases effectively and at the same time minimizes costs.

OSHMI is available at:


Copyright © 2017 Ricardo L. Olsen. All rights reserved.

Company: DSC Systems – HTML5 Synoptic Toolkit.

XPlain SCADA@cloud service.

For free assistance on OSHMI, professional support, managed cloud hosted SCADA service, partnerships, or customization of applications for device manufacturers, please contact me on LinkedIn



==> Part 2 – Installation