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 –

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


3 thoughts on “Using OSHMI – Part 1: Common Use Cases

  1. Hello. I would like to use the software to control dnp3 reclosers. Do you have any tutorial to implement an ied to oshmi. I like it but I would like to know how to use it.

    1. Hi Alvaro, no problem, OSHMI can handle multiple reclosers using DNP3. It is not difficult, really. I can help you for sure. Do you have some recloser that you can connect to and do some testing? Then you can start by configuring the DNP3 driver to connect to the IED. For that please take a look a the DNP3 documentation in the c:\oshmi\docs folder. Configure c:\oshmi\conf\dnp3.ini accordingly and run c:\oshmi\bin\dnp3.exe, pay attention to log messages. Please, let’s follow using the preferred channel for support at so our discussions can help others.
      Ricardo Olsen

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s