Introducing macchina.io EDGE 2024.1

I am proud to announce the new 2024.1 release of macchina.io EDGE. After more than one year of development, and incorporating the experience gained from multiple customer projects, this release brings a large number of improvements.

macchina.io EDGE update
macchina.io EDGE update

JavaScript Engine Improvements

New features include an upgraded JavaScript engine and new JavaScript APIs, including filesystem and crypto, as well as improvements and bug fixes in existing JavaScript APIs. The new file module gives full access to the filesystem, including creating, reading and writing files, as well as navigating directories. The new crypto module currently provides access to hashing algorithms, with encryption and decryption support planned for the next release. The net module has been improved as well. The servlet engine now supports file uploads. 

Datapoints and Connectors

With this release, we introduce the Datapoints APIs. These are more generalized interfaces than the existing devices and sensors APIs and can be used for a number of purposes. Devices and datapoints can now also be organized in a hierarchical way, using the new Composite and DeviceTree classes.

Along with Datapoints come the new Connectors, which automatically connect datapoints with a communication protocol. For a start, a Modbus connector is provided, which allows a macchina.io EDGE application to expose datapoints to clients via the Modbus TCP and RTU protocols. More connectors will be provided in the future.

BLE

The BtLE APIs for accessing the system’s Bluetooth LE protocol stack (BlueZ) has been extended with support for scanning for devices. Furthermore, the interfaces for accessing peripherals with the GATT protocol have been improved. There’s also a chapter in the documentation describing the BtLE API.

ONVIF

The WSDL and XML Schema code generator in the Remoting NG framework now can process the ONVIF service descriptions and generate C++ client and server code for communicating with network cameras that support ONVIF. A sample C++ program for accessing an ONVIF-capable network camera is included. 

REST APIs

New REST APIs are available for bundle management, users and permissions management and system management, with more APIs planned for upcoming releases. This is great for integrating macchina.io EDGE with other applications, e.g. in a container-based edge computing scenario.

Build System

The build system has been improved to allow you to enable or disable the various components of macchina.io EDGE via a configuration file. Furthermore, macchina.io EDGE is now easier to use as an SDK, by allowing to install the header files and libraries to a location outside the macchina.io EDGE source tree.

Web UI

The web user interface has been modernized, and new apps have been added. This includes a log file viewer, a device tree viewer, a list of services and a BLE peripheral browser. Existing apps have been improved. The settings app can now export and import settings.

macchina.io EDGE Launcher
 

Improved Documentation

The documentation has been much improved and extended, including new chapters on Modbus and MQTT programming.

Getting macchina.io EDGE

Current customers can get the latest macchina.io EDGE source code from our GitLab server.

A GPL-licensed open source version with reduced feature set is available on GitHub.

There’s also a Docker image available which can be run with:

docker run -p 22080:22080 macchina/edge

The web user interface can then be accessed at http://localhost:22080. Username and password is edgeadmin.