welcome to hemelix

This site provides free resources for automation systems and software design purposes. There will be many useful technical articles for automation
designersThere will be a complete example of how to develop a home automation system (as a complete example) that is controllable remotely. This will guide you through all the content you need to start. It will show the necessary technical articles and code snippets for these purposes. This knowledge can be applied to any practical industrial automation system. If we go through this site we shall have complete knowledge of how to build a fictitious home automation system (a shortcut version) as shown in the right-hand side image (hopefully when we have the complete solution).

SCADA Software

We shall develop a simple SCADA software by using Beckhoff and Siemens framework from scratch. We should be able to control the hardware which is located at our home. There are three displays on the top of the image where we can see SCADA software for our home automation system. We can control different controllable unit that is located at the fictitious home. Our SCADA software will be HTML5 based so it will work in desktop, tablet, and mobile phone browsers. A command can be generated from the SCADA system for example to open the main gate of the house. All the status of the controlled devices can be shown in the remote display. We shall build a reporting system to indicate how our system performs. Read more..

Computer network and firewall

There are plenty of articles that you need to know to build a network system. Hemelix provides plenty of computer network articles starting from level 0. 

We shall use a firewall to protect our data on the internet. A firewall typically establishes a barrier between a trusted internal network and an untrusted external network, such as the Internet. Read more ..

SQL Database

We shall use a SQL database to store our data on a remote server. We shall run the actual software on this computer.  Different kinds of reports can be generated based on the user data in the system. The data or the report can be accessed from the desktop, tablet, or mobile phone. Read more..

OPC-UA Server and client

We shall demonstrate how to develop the OPC-UA server from scratch. We shall use the OPC-UA server to control the actual device. We shall use a unified automation OPC-UA server and Matrikon OPC-UA. Again this will be an end to end development and the code will be available for

download. Read more..

Raspberry pi option 1

Raspberry pi will be used where we shall run our OPC-UA server. The input and output will control the actual device at home. The control will happen over the internet. For example, if we want to open the main gate of the house then from html5 based SCADA will put an output active in the raspberry pi. This is marked as option 1 in the picture. Read more …

plc controls the hardwares option 2

In this option, we shall use a PLC (Siemens and Beckhoff) to control the devices in the house. All the different devices are attached to the PLC via the input-output card. PLC is a relatively expensive device and those are not used for a normal home automation system. Read more..

Controlled devices

Since this is a fictitious example, we shall control the following devices either by raspberry pi or PLC


This is a digital lock of the main door of our fictitious house. We can tell the system to open the door, lock the door remotely. We can check the system if the door is open or closed. We can generate alarms also. For example, if the main door of the home is opened for more than 30 minutes, we can generate an alarm that can be visible in the SCADA software. We can create a method in the OPC-UA server or create variables that can be set true or false from the SCADA.



We can read the room temperature and set the room temperature. We can get an alarm if the room temperature of the home is above 50-degree Celsius. This data will be read from an analog channel of the Raspberry pi or from the PLC analog input card.


Our home floor has circulating water. Warm or cold water will be circulated around the floor depending on temperature. Warm or cold water will be activated by a solenoid valve. OPC-UA server will do the work for us.

AC motor:

Our hose has a main gate that can be opened or closed remotely. When the door needs to open or closed then we run the motor. Open and close position is sensed by 2 proximity sensors. We have also thru beam (light sensor) that will indicate if there is any obstacle while it is closing. We shall use Magnetic contractors to generate a signal to start the AC motors. Though we shall not use VFD we shall discuss VFD in detail.

List of all variables which will be controlled by the fictitious home automation system

Ask questions related to Hemelix sample code and design at Google group https://groups.google.com/g/hemelix