This emulator is designed for demonstration purposes to connect sample clients to Thingsboard via the MQTT Sparkplug API.
docker run -e SPARKPLUG_SERVER_URL='tcp://thingsboard.cloud:1883' \
-e SPARKPLUG_CLIENT_MQTT_USERNAME='YOUR_THINGSBOARD_DEVICE_TOKEN' \
thingsboard/tb-sparkplug-emulator:latest
Note: Do not use
localhost
inside a Docker container — it refers to the container itself. Use your actual IP address (e.g.,192.168.x.x
) orhost.docker.internal
(on macOS/Windows). On Linux, consider using--network host
.
- localhost -> Address = 192.168.28.74; Port = 1883, YOUR_THINGSBOARD_DEVICE_TOKEN = n03suscyeul0o1dn6b09.
docker run -e SPARKPLUG_SERVER_URL='tcp://t192.168.28.74:1883' \
-e SPARKPLUG_CLIENT_MQTT_USERNAME='n03suscyeul0o1dn6b09' \
thingsboard/tb-sparkplug-emulator:latest
Variable | Description | Default Value |
---|---|---|
SPARKPLUG_SERVER_URL |
MQTT broker URL | tcp://demo.thingsboard.io:1883 |
SPARKPLUG_CLIENT_GROUP_ID |
Sparkplug Group ID | Sparkplug Group 1 |
SPARKPLUG_CLIENT_NODE_ID |
Sparkplug Node ID | Sparkplug Node 1 |
SPARKPLUG_CLIENT_MQTT_CLIENT_ID |
Sparkplug MQTT Client ID | Sparkplug Node 1 |
SPARKPLUG_CLIENT_MQTT_USERNAME |
MQTT client username (for authentication) | — |
SPARKPLUG_CLIENT_MQTT_PASSWORD |
MQTT client password | — |
SPARKPLUG_PUBLISH_INTERVAL |
Interval for publishing metrics in milliseconds | 10000 |
SPARKPLUG_CLIENT_CONFIG_FILE_PATH |
Alternative path for configuration file | — |
SPARKPLUG_CLIENT_METRICS_FILE_PATH |
Alternative path for metrics descriptor file | — |
The default Sparkplug metrics descriptor is located here:
This file contains a simple JSON structure describing the device ID and a list of metrics.
The special node
flag in the first JSON object defines metrics for the EoN Node itself.
You can supply your own metrics file using the environment variable SPARKPLUG_CLIENT_METRICS_FILE_PATH
.
mvn clean install
or
mvn clean package -DskipTests
Set environment variables:
export SPARKPLUG_SERVER_URL=tcp://demo.thingsboard.io:1883
export SPARKPLUG_CLIENT_MQTT_USERNAME=YOUR_THINGSBOARD_DEVICE_TOKEN
- version can vary
java -jar sparkplug-{version}-jar-with-dependencies.jar
or
java -jar sparkplug-3.0.1-jar-with-dependencies.jar
SPARKPLUG_SERVER_URL=tcp://localhost:1883 \
SPARKPLUG_CLIENT_MQTT_USERNAME=n03suscyeul0o1dn6b09 \
java -jar sparkplug-3.0.1-jar-with-dependencies.jar
or
export SPARKPLUG_SERVER_URL=tcp://localhost:1883
export SPARKPLUG_CLIENT_MQTT_USERNAME=n03suscyeul0o1dn6b09
java -jar sparkplug-3.0.1-jar-with-dependencies.jar
docker run -e SPARKPLUG_SERVER_URL='tcp://demo.thingsboard.io:1883' \
-e SPARKPLUG_CLIENT_MQTT_USERNAME='YOUR_THINGSBOARD_DEVICE_TOKEN' \
thingsboard/tb-sparkplug-emulator:latest
For more detailed information, see the Thingsboard Sparkplug API documentation.
If you need, I can help add clarifications or improvements.