Microsoft describes very well how to send a command to an IoT device using a REST call. (https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-direct-methods)
This also works as described with an IoT Hub.
In the Microsoft example, a command is sent via
az iot hub generate-sas-token -n <iothubName> --du <duration>
a corresponding SAS token is generated. Unfortunately, this does not work with IoT Central, as the host name of the IoT Hub on which it is based is not known.
I have now been able to determine the IoT Hub via the DPS and have also generated a corresponding SAS token for my device. With this, it is also possible to send data to the device.
In the Microsoft example, however, the SAS token looks different:
https://<iothubName>.azure-devices.net/twins/<deviceId>/methods?api-version=2021-04-12\
-H 'Authorization: SharedAccessSignature sr=iothubname.azure-devices.net&sig=x&se=x&skn=iothubowner' \
-H 'Content-Type: application/json' \
-d '{
}, "methodName": "reboot",
"responseTimeoutInSeconds": 200,
"payload": {
"input1": "someInput",
"input2": "anotherInput"
}
}'
If I compare this with my SAS tokens, I notice that they are completely different. What is the reason for this and where can I get the SAS token with which I can initiate commands?