Hat Open is open-source framework of tools and libraries for developing applications used for remote monitoring, control and management of intelligent electronic devices such as IoT devices, PLCs, industrial automation or home automation systems.

Hat Core is part of Hat Open providing collection of components and libraries on which Hat Open system is based.

Development of Hat Open and associated repositories is sponsored by Končar - Power Plant and Electric Traction Engineering Inc. (Končar KET -

For more information see:


This project is currently in state of active development. Features, functionality and API are unstable.


Hat Open consists of multiple interconnected parts. Each part implements a specific functionality. For easier reusability, provided implementation is split into multiple packages:

Python packages

Python packages require Python 3.8 and can be installed with pip:

$ pip install <package-name>

where package-name is one of following:

JavaScript packages

JavaScript packages can be installed with npm:

$ npm install <package-name>

where package-name is one of following:


Build tool used for Hat is pydoit ( It can be installed with pip by running:

$ pip install doit

For listing available doit tasks, use:

$ doit list

Default task:

$ doit

creates dist folder containing built packages.


Package managers used for managing dependencies:

  • pacman

    Package manager of Arch linux distribution. Available on Windows as part of msys2 (

  • pip

    Package manager available as part of CPython installation.

  • yarn

    Package manager for NodeJS.

List of all dependencies for building and running hat components is available in:

  • (windows only)

  • requirements.pacman.linux.txt (archlinux only)

  • requirements.pip.txt

  • package.json

Python code targets CPython 3.8 only.


Documentation can be built with:

$ doit docs

which creates build/docs folder containing documentation.