Receives messages from one MQTT topic and re-publishes them on one or many other topics.
572
Simple service that receives messages from MQTT topics and republishes them under different topic paths. Useful for bridging, renaming, or fan-out of MQTT messages — for example, ensuring that turning on a pool redox system also activates the pump.
The service is configured via appsettings.json (or environment variable overrides):
| Setting | Description | Default |
|---|---|---|
MqttTranslatorSettings__MqttServerConfig__Server | MQTT broker hostname | localhost |
MqttTranslatorSettings__MqttServerConfig__Port | MQTT broker port | 1883 |
MqttTranslatorSettings__MqttServerConfig__ClientId | Client ID for the MQTT connection | MqttTranslator |
MqttTranslatorSettings__MqttServerConfig__Username | MQTT username | |
MqttTranslatorSettings__MqttServerConfig__Password | MQTT password | |
MqttTranslatorSettings__MqttMappingConfigFile | Path to the JSON mapping config file | sample-mapping.json |
The mapping config file defines source-to-destination topic translations. See src/mqtttranslator/sample-mapping.json for the format.
Pull and run the published image:
docker pull mszcool/mqtt-topics-translator:latest
docker run -d \
-e MqttTranslatorSettings__MqttServerConfig__Server=your-broker \
-e MqttTranslatorSettings__MqttServerConfig__Port=1883 \
-e MqttTranslatorSettings__MqttServerConfig__ClientId=MqttTranslator \
-e MqttTranslatorSettings__MqttServerConfig__Username=user \
-e MqttTranslatorSettings__MqttServerConfig__Password=pass \
-e MqttTranslatorSettings__MqttMappingConfigFile=/app/mapping/mapping.json \
-v /path/to/your/mapping.json:/app/mapping/mapping.json:ro \
mszcool/mqtt-topics-translator:latest
Or use a specific version:
docker pull mszcool/mqtt-topics-translator:20260324.0
{
"description": "Contains mappings for the pool translator, and for ensuring that the pump is always turned on when redox or ph is turned on",
"translations": [
{
"sourceTopic": "pooltranslatortest/test1",
"destinationTopics":
[
"pooltranslatortestresult/cmnd/test1",
"pooltranslatortestresult/cmnd/test2"
]
},
{
"sourceTopic": "pooltranslatortest/test2",
"destinationTopics":
[
"pooltranslatortestresult/stat/test1"
]
},
{
"sourceTopic": "pooltranslatortest/test3",
"destinationTopics":
[
"pooltranslatortestresult/stat/test1"
]
},
{
"sourceTopic": "pooltranslatortest/test4",
"ifMessageValue": "only if this is here",
"destinationTopics":
[
"pooltranslatortestresult/stat/test42"
]
}
]
}
See LICENSE for details.
Content type
Image
Digest
sha256:2a17a7711…
Size
88.1 MB
Last updated
about 2 months ago
docker pull mszcool/mqtt-topics-translator