There is a command group 'az_iot_device'. This group of commands could 'leverage device simulation and other device centric operations such as device to cloud or cloud to device messaging capabilities'. The group of commands has global parameter '--debug' which means 'Increase logging verbosity to show all debug logs.'. The group of commands has global parameter '--help -h' which means 'Show this help message and exit.'. The group of commands has global parameter '--only-show-errors' which means 'Only show errors, suppressing warnings.'. The group of commands has global parameter '--output -o' which means 'Output format.'. The group of commands has global parameter '--query' which means 'JMESPath query string. See <a href="http://jmespath.org/">http://jmespath.org/</a> for more information and examples.'. The group of commands has global parameter '--subscription' which means 'Name or ID of subscription. You can configure the default subscription using `az account set -s NAME_OR_ID`.'. The group of commands has global parameter '--verbose' which means 'Increase logging verbosity. Use --debug for full debug logs.'. This group contains a child command 'az_iot_device_send d2c message'.The syntax is: az iot device send-d2c-message --device-id
                               [--certificate-file-path]
                               [--da]
                               [--data-file-path]
                               [--dtmi]
                               [--hub-name]
                               [--key]
                               [--key-file-path]
                               [--login]
                               [--mc]
                               [--pass]
                               [--properties]
                               [--resource-group]. The 1th example of the child command would be to use it to 'basic usage', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id}. The 2th example of the child command would be to use it to 'basic usage for device registering the model id of  dtmi com example thermostat 1  upon connection', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --model-id 'dtmi:com:example:Thermostat;1'. The 3th example of the child command would be to use it to 'basic usage for device with x509 authentication', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path}. The 4th example of the child command would be to use it to 'basic usage for device with x509 authentication in which the key file has a passphrase', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path} --pass {passphrase}. The 5th example of the child command would be to use it to 'basic usage with custom data', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --data {message_body}. The 6th example of the child command would be to use it to 'send application properties', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --props 'key0=value0;key1=value1'. The 7th example of the child command would be to use it to 'send system properties  message id and correlation id', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.mid=<id>;$.cid=<id>'. The 8th example of the child command would be to use it to 'send custom data by specifying content type and content encoding in system properties', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.ct=<content-type>;$.ce=<content-encoding>' --data {message_body}. The 9th example of the child command would be to use it to 'send custom data in binary format by specifying content encoding in system properties', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.ct=application/octet-stream' --data-file-path {file_path}. The 10th example of the child command would be to use it to 'send custom data in json format by specifying content type and content encoding in system properties', the syntax is: az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.ct=application/json;$.ce=utf-8' --data-file-path {file_path}. The parameter '--device-id -d' is required. It is used to target device id.. The parameter '--certificate-file-path --cp' is optional. path to certificate file.. The parameter '--da --data' is optional. message body. provide text or raw json.. The parameter '--data-file-path --dfp' is optional. provide path to file for message body payload. please note when the payload needs to be sent in binary format, set the content type to application/octet-stream.. The parameter '--dtmi --model-id' is optional. the digital twin model id the device will report when connecting to the hub. see https://docs.microsoft.com/en-us/azure/iot-develop/overview-iot-plug-and-play for more details.. The parameter '--hub-name -n' is optional. iot hub name or hostname. required if --login is not provided.. The parameter '--key --symmetric-key' is optional. symmetric key to use for the device. if the symmetric key and other device authentication arguments are provided, symmetric key takes priority.. The parameter '--key-file-path --kp' is optional. path to key file.. The parameter '--login -l' is optional. this command supports an entity connection string with rights to perform action. use to avoid session login via "az login". if both an entity connection string and name are provided the connection string takes priority. required if --hub-name is not provided.. The parameter '--mc --msg-count' is optional. number of device messages to send to iot hub.. The parameter '--pass --passphrase' is optional. passphrase for key file.. The parameter '--properties --props -p' is optional. message property bag in key-value pairs with the following format: a=b;c=d. for mqtt messaging - you are able to send system properties using $.<name>=value. for instance $.cid=12345 sets the system correlation id property. other system property identifier examples include $.ct for content type, $.mid for message id and $.ce for content encoding.. The parameter '--resource-group -g' is optional. name of resource group. you can configure the default group using `az configure --defaults group=<name>`.. 