Native Sparkplug
Last updated
Last updated
Sparkplug is a specification maintained by the Eclipse Sparkplug Working Group under the Eclipse Foundation. Its goal is to provide improved Plug & Play IIoT over MQTT. You can get more information from .
Neowit supports the current version of the specification and we provide an MQTT broker and an optional Primary Host Application that you can use to synchronize your Edge Node application with.
The integration settings page will show the connection details you need to use to connect to our MQTT broker. See our page for more details on this.
Neowit has implemented a Host application that will passively listen to all NBIRTH / NDEATH / DBIRTH / DDEATH / DDATA messages and automatically ingest metrics if they match the criteria described below.
The host will publish its STATE to the following topic: "spBv1.0/STATE/<:integrationID>". If you're app or edge node supports syncing with a Sparkplug Primary Host application, you can set the app id to be id of the integration.
If you want the devices and sensors to automatically show up in the Neowit app, you need to specify a set of metrics that Neowit can use to describe the Device and its sensors. This is done in the Sparkplug DBIRTH message, as per the specification the DBIRTH message should contain all metrics that are available on the device. If you want to change the specification after you've sent a DBIRTH you can use NDEATH / NBIRTH as per the specification.
/neowit/v1/device/name
String (12)
A human readable name
/neowit/v1/device/vendor
String (12)
Vendor of device
/neowit/v1/device/model
String (12)
Model of device
/neowit/v1/device/deepLink
String (12)
Optional http link for more information
For each metric you want to be associated with the device, you need to give it a metric name that can be understood by our metric store. The name of the available metric types are available in a table from the integration configuration page. After you found a suitable sensor name, you can construct your metric using the following pattern "/neowit/v1/sensor/name/:SENSOR_NAME". For example if you want to send a temperature metric, you'd use the metric name "/neowit/v1/sensor/name/TEMP".
Currently, we support the following Sparkplug data types for ingress into our metrics storage.
Int8
1
Int16
2
Int32
3
Int64
4
UInt8
5
UInt16
6
UInt32
7
UInt64
8
Float
9
Double
10
Boolean
11
The below DBIRTH (shown as JSON instead of protobuf to make it human readable) will be translated to a Neowit Device as follows:
After the Edge application has announced all of its supported sensors in the DBIRTH message, it can then start publishing DDATA of the update metrics for persisting in our metrics store.