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 - https://www.koncar-ket.hr).
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 require Python 3.8 and can be installed with pip:
$ pip install <package-name>
package-name is one of following:
Async utility library
Qt utility library
Parsing expression grammar
Chatter communication protocol
Simple binary serialization
Juggler communication protocol
Python Duktape JS wrapper
Hat specific sqlite3 build
ASN.1 parser and encoder
Syslog server and logging handler
Simple cross-platform daemon/service manager
Redundancy and service discovery server
Event pub/sub communication and storage
Remote communication device gateway
Build tool used for Hat is pydoit (http://pydoit.org/). It can be installed with pip by running:
$ pip install doit
For listing available doit tasks, use:
$ doit list
creates dist folder containing built packages.
Package managers used for managing dependencies:
Package manager of Arch linux distribution. Available on Windows as part of msys2 (http://www.msys2.org/).
Package manager available as part of CPython installation.
Package manager for NodeJS.
List of all dependencies for building and running hat components is available in:
requirements.pacman.win.txt (windows only)
requirements.pacman.linux.txt (archlinux only)
Python code targets CPython 3.8 only.
Documentation can be built with:
$ doit docs
which creates build/docs folder containing documentation.