Results of Cumulocity Device Management & thin-edge.io Hackathon

Love to innovate!

To foster innovation at Cumulocity, we do at least 1-2 internal hackathons where people from all departments join and build “the next cool thing” in just a few days.

So we did beginning of July where we focused on Device Management and thin-edge.io. For the first time ever, we did it fully remotely so colleagues from different locations and time zones could join and participate.

Let me share the results of that hackathon with you!

Disclaimer: All the results are prototypes and might not be ready to be shipped or used as part of the product.

Key results

Prior to the hackathon, we started an ideation where we collected 30 ideas to be worked on during the hackathon. To spoil some of them which weren’ and picked:

  • Native CoAP support via MQTT Service
  • Dynamic Mapper runtime for thin-edge
  • Merge device location and tracking in device management
  • Reimplement Device Availability externally out of core using modern tools

At the hackathon 23 participants of R&D, Presales, Professional Services, and Product Management assembled 8 Teams to build 8 solutions.

Here are the solutions the teams have developed:

Team Kepwarriors - Kepware and Cumulocity for Industrial SEMs

Kepware is a common industrial connectivity solution that is used to connect OT devices. Team Kepwarriors tried to bridge OT devices connected via Kepware and let them easily connect to Cumulocity leveraging OPC-UA and MQTT.

The team managed to implement a real end-to-end demo and invested also time in writing articles to motivate when this is useful and when OPC-UA vs. MQTT should be used.

Team DynamAIte - AI Dynamic Mapper

The problem the team tried to solve is that in Dynamic Mapper, users have to create mappings manually. For complex mappings, this might be complicated, even when guided by the tool.

The team managed to enable Dynamic Mapper with AI. They integrated the AI Agent Manager, built a MCP Server to evaluate JSONata Expressions, and developed and further improved the AI Agents for JSONata & JavaScript Mappings.

The main task was to evaluate multiple potential mappings and document how the AI agent perform initially and after re-prompting. These results were directly used to improve the AI Agents.

The result is a fully AI enabled Dynamic Mapper with AI agents that produce pretty good initial results of mappings.

Read more here:

Team Parquet Pitchers - File-driver for thin-edge.io

Team Parquet Pitchers tried to find a solution to the problem that users want to decide which data should be sent Cumulocity an operational store and which data should be side-loaded directly to a data lake.

They built a file-driver mapper in rust for thin-edge that produces parquet files and write them to a data lake.

Team Null Hardware - Simulator Plugin

Team Null Hardware investigated in re-inventing the Simulators in Cumulocity. The current simulators are limited in their functionality and might be costly when running forever.

So they investigated the simulator of the former Analytics Builder and extracted the simulator part of it and repackaged it as a UI-plugin.

They started with position updated & value series simulation.

As this simulator is running as a UI Plugin in the browser, it will only run when you have an open browser windows. As soon as you log out the simulator will stop.

Team LwM2M Breakers - LWM2M Service Connection Store Persistence & Operation recovery

The LwM2M Breakers tried to address the problem that the LWM2M Server keeps connection information in memory. When restarted this information is lost which causes interruptions.

They already focused on this topic in one of the last hackathons and now continued working in this by making it working together with k8s.

As a solution, they introduced a K8S persistent volume to store & retrieve the connection information to/from and avoid connection interruptions on restart of the leshan server.

Team thin-edge-MEA-DB (same name as solution)

The problem team thin-edge-mea-db wanted to address is that thin-edge currently relies on the MQTT as only persistence which is lacking of flexibility.

In case of outages of target systems currently the broker is just storing everything and there is no mechanism to define which messages should be dropped.

As a solution they wanted to allow user to define persistence rules for messages and a local database where these messages are stored. Things like “store measurements for the last hour only” should be made possible by this approach.

The pretty new “generic mapper” approach of thin-edge.io is used and new database input & output added to ingest and retrieve data from it.

Next steps would be to consume local messages from the MEA database instead of MQTT, drain messages when acked by cloud, pile up messages in network outages and define user-defines rules to reduce messages when limits are reached.

You can check out the full PR here:

Team Cumulocity OmniOps - New “Action set operation” to send actions to a device in a single operation

Team OmniOps tries to address the problem that sequentially executed operations are difficult to handle because each operation is independent from each other.

As a solution they developed a new data model of an operation that includes multiple actions.

After assembling the actions in a specific order the execution of each step can be monitored.

Team DashAlert - Rethink Alarm Management

The current Alarm Management is very generic and especially for field service technicians more insights into data is needed to resolve an alarm.

The solution is a new AI-enabled Alarm details view that can dynamically generate tab-views and charts for related data.

This flexible tools allows to create charts, chats, detail pages, overviews and many more bound to the need of a specific user profile.

Summary

The results speak for themselves. We had 2 awesome days of innovation at our internal DM & thin-edge hackathon where the colleagues tried something new, socialized with others of different departments, learned and innovate new stuff.

Be assured that this will not be the last (internal) hackathon. Stay tuned also for our next public hackathon which is currently in the making!

Which solution do you like most? Is there any idea you have in your head that should be covered in one of our next (internal) hackathon?

Leave us a comment with your feedback!

3 Likes