udmi

UDMI / Docs / Specs / Subblocks

Subblocks API

The Subblocks API defines a high-level interface between UDMI core services and ancillary applications. These messages are similar to those used for device communication, but are Specifically segmented by designated subblocks that partition functionality into atomic chunks. Specifically, the subblock state/config are a limited form of the overall device state/config, and only expose the relevant pieces.

The basic mode of this interface is a “read only” subscription to a PubSub topic (normally udmi_target) that then provides a complete view of updates as they flow through the system. For example, a cloud-to-device config update would be published on this topic as a “update to device config.” This level of visibility should be sufficient to completely mirror the visible state of the system (barring issues like loss-of-message etc…).

The various subblocks are detailed below. Each subblock (or subFolder if you’re looking at the PubSub message envelope), has several basic subTypes that manifest themselves from different sources:

In all cases, the Subblock API messages encode the relevant subblock ID { pointset, discovery, … } in the message envelope’s subFolder field. The subType field encodes the relevant type { event, config, state, model }.

System

Pointset

A pointset covers the structures necessary to model a device point with associated data readings. This is typically what is thought of as ‘device telemetry’ and represents the expected end value of the device-to-cloud connection.

Discovery

Discovery covers systems that are actively searching for systems on a network (of some kind), and returning results about what was discovered and what their capabilities are. This provides a mechanism for doing things like a BACnet discovery sequence.

Audit

Audit covers an external “black box” audit of a system for vulnerabilities or other characteristics. E.g., doing a port-scan of a device to see what network ports are open would be part of a network exposure audit.

Mapping

The mapping process covers the determination of a translation from a set of identifiers or points to a canonical or other set of identifiers or points. E.g., there’s a mapping process that goes on to correlate a BACnet MAC address (such as 9832C2) with an associated IoT ID (such as FCU-323).