Release 0.9 of the open-source thin-edge.io project delivers many improvements to connect and manage lightweight IoT edge devices.
Historically creating smart connected industrial products has been the domain of a few battle-hardened experts. Some of them becoming a Phil Collins of product development with competences in hardware, software, security, and cloud technologies.
Unfortunately, our relentless demand for connectiveness in more of our stuff has turned a steady drip of demand into a raging torrent, forcing the development teams to scale quickly and focus on what adds value. And also recognise what doesn’t add value. The hygiene factors of the product, if you like.
What you do with the sensor measurements and events to make the product more effective, efficient, and robust are definitely value adding. Whereas securely connecting the product and maintaining the software on it are common to all industrial products and are considered hygiene factors. And how should you deliver hygiene factors? In the most cost-efficient way possible. Which is typically not to build and maintain it yourself.
With many enterprises coming to the same conclusion, the thin-edge.io project was born. thin-edge.io is the first open-source, cloud-agnostic IoT framework designed for resource constrained edge devices. Or like ChatGPT recommends I explain it to my grandmother:
“thin-edge.io is a new tool that helps tiny computers communicate and work efficiently. It’s simple to use and can be used on many different kinds of tiny computers that use Linux.”
The thin-edge.io project has been progressively evolving the software based on user feedback over the last couple of years, with the recent 0.9 release containing a suite of updates. Let me summarize the first 8 updates.
HTTP Port Configuration
The HTTP port on which the data is transferred with your IoT platform can be configured to best match the deployment architecture.
Two new keys are added to tedge config list
- http.port can be set or unset
- http.address is read-only and is equal to mqtt.bind_address or mqtt.external.bind_address (depending on which is set).
Extended Logging and Debugging
The type and amount of logging and debugging can be extended using a configuration file which is remotely configurable and automatically activated when changed after restarting the service.
tedge_mapper = "info"
tedge_agent = "warn"
tedge_watchdog = "info"
Automatic Installation of Latest Software Version
The latest version of any software, including thin-edge.io itself, can be automatically installed and activated on the edge device at any point in time without knowledge of the number of that version.
Error Message Response
The error messages have been refined to improve their intelligibility and enhanced around certificate management.
Transfer of Alarms
As well as measurements and events, thin-edge.io now natively transfers the alarms created by edge applications to your IoT platform.
Child Device Configuration Management Enhancements
A time-out has been added to avoid the state where a child device has not confirmed the completion of a configuration management operation, and the operation is held in a prolonged pending state.
Quality and Robustness Improvements
The refactoring initiative has delivered several enhancements which are not directly visible but have made substantial improvements in quality. One of these is the strict adherence to the Debian standard for package naming to smooth downstream package building with various tools.
Apama Streaming Analytics Integration
To provide seamless integration, thin-edge.io contributor Software AG has now included the thin-edge.io plug-in for their Apama streaming analytics engine in the base Debian package for Apama. Installing Apama can now be done via the Apama Debian repository and the Apama plug-in in the thin-edge.io project repository will be retired.
All these updates, and the many other smaller ones, make it even easier for you to securely connect and manage your connected industrial products. The technical low down on release 0.9 of thin-edge.io can be found on the project’s GitHub release page.