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-jsThe node accepts multiple parents and sorts every event from every parent into one list.
Configuration
Configuration is optional.
| Key | Type | Required | Default | Description |
|---|---|---|---|---|
dataSourceName | string | No | The runner default store | Name 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_nameishwiofor 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_nameis 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
dataSourceNameor from the runner default store.
Related
- domain-tree-hwio folds the same events into current state.
- domain-tree-entities provides the entity histories you correlate against.
- json-merge combines this history with other per-entity JSON.