Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.
DevelopersRunnerscore-utilsdomain-tree-hwio-events

domain-tree-hwio-events

domain-tree-hwio-events decodes raw capture protobuf bytes and emits every hardware input and output (HWIO) event in time order. Nothing is folded or deduplicated.

HWIO events describe physical controls and indicators. The capture carries them as json_event records on a reserved entity id (9999999). This node is the sibling of domain-tree-hwio. Both decode the same stream, but this one keeps the timing of each occurrence so a timeline widget can place hardware events on a clock.

It is a separate node template rather than a second output of domain-tree-hwio. A consumer cannot select one output of a multi-output parent, so a second output would have changed what existing consumers receive.

When to use

Use this node when a downstream node needs to know when hardware events happened, for example to correlate a trigger event with a change in an entity’s health.

Pipeline position

input-node (agnostic-input) -> domain-tree-hwio-events -> json-merge -> system-arbex-js

The node accepts multiple parents and sorts every event from every parent into one list.

Configuration

Configuration is optional.

KeyTypeRequiredDefaultDescription
dataSourceNamestringNoThe runner default storeName of the data source the output JSON is written to.

Output

One JSON object with a single events array, sorted by time_ms. Field and event names come from the capture. The values below are illustrative.

{ "events": [ { "time_ms": 1777383599000, "event_name": "hwio", "fields": { "BUTTON_IR": "0" } }, { "time_ms": 1777384607751, "event_name": "TriggerEvent", "fields": { "CrewMember": "OPERATOR" } } ] }
  • event_name is hwio for a state-bus tick. Some capture sources leave the name empty for the same kind of tick. Treat both as the state bus.
  • Any other event_name is a discrete hardware event.
  • Two events with identical fields at different times both appear. The node treats them as separate real occurrences.

The output is written as a node output to the configured data source.

Limitations

  • The output grows with the number of events. It is not a snapshot.
  • Time stamps of independent streams are not guaranteed to be ordered relative to each other. When you correlate a hardware event with an entity change, use a symmetric time window rather than a forward-only one.
  • The node fails when no data source can be resolved, either from dataSourceName or from the runner default store.
Opens your browser's print dialog. Choose "Save as PDF" as the destination.