Hello WAGO Community ![]()
I’m currently integrating a WAGO PLC with Azure IoT Hub via MQTT over TLS 1.2, and I’m experiencing an issue with cloud-to-device communication.
Here’s the situation:
-
The PLC connects successfully to the IoT Hub and publishes device-to-cloud telemetry messages without any problem.
-
When I send a devicebound command from Azure, the IoT Hub reports the message as delivered successfully — it’s sent on the following topic:
devices/mqtt-dev-01/messages/devicebound/%24.to=%2Fdevices%2Fmqtt-dev-01%2Fmessages%2Fdevicebound
- The payload looks like this:
{
"CommandId": 28,
"CommandParameters": [
{
"Name": "CMD570_Ligar_inversor",
"Value": "true"
}
]
}
or
{
"CommandId": 29,
"CommandParameters": [
{
"Name": "CMD571_Desligar_inversor",
"Value": "false"
}
]
}
The issue is that the PLC does not react or send any response after the command is delivered.
I’ve verified that:
-
The MQTT connection is active and secure (port 8883, TLS enabled);
-
Telemetry messages are being successfully published to the IoT Hub;
-
The PLC is subscribed to the topic
devices/mqtt-dev-01/messages/devicebound/#.
I suspect the problem might be related to how the MQTT payload is being received or parsed on the PLC side.
Has anyone experienced similar behavior or can advise how to confirm whether the PLC is actually receiving devicebound messages and how to properly parse the JSON content?
Also, are there any known limitations or additional configurations required for WAGO’s MQTT client to handle commands from Azure IoT Hub?
Thanks in advance for your support! ![]()