Payloads and Metrics
HiveMQtt.Sparkplug supports Sparkplug B protobuf payloads and metric composition for both Host and Edge workflows.
Metric Builder
For scalar and simple metric types, use SparkplugMetricBuilder:
var temperatureMetric = SparkplugMetricBuilder
.Create("temperature")
.WithFloatValue(22.5)
.Build();
DataSet, Template, and File Metrics
For complex metric types, construct payload metrics using protobuf types:
- Build a base metric and then set
Datatypeand the complex payload fields. - Or create
Payload.Types.Metricdirectly and populate all required members.
Example pattern:
var metric = new Payload.Types.Metric
{
Name = "datasetExample",
Datatype = (uint)DataType.DataSet,
DatasetValue = new Payload.Types.DataSet
{
NumOfColumns = 2,
Columns = { "col1", "col2" },
Types = { (uint)DataType.String, (uint)DataType.Int32 }
}
};
See Sparkplug protobuf schema details:
Topic Model
Sparkplug topics follow:
spBv1.0/{group_id}/{message_type}/{edge_node_id}[/{device_id}]
Use topic build/parse helpers in the Sparkplug package where available to reduce formatting errors.