{"id":4421,"date":"2026-03-11T17:13:49","date_gmt":"2026-03-11T09:13:49","guid":{"rendered":"https:\/\/www.ecloudedge.com\/?p=4421"},"modified":"2026-03-12T15:44:18","modified_gmt":"2026-03-12T07:44:18","slug":"command-channels-setting","status":"publish","type":"post","link":"https:\/\/www.ecloudedge.com\/en\/command-channels-setting\/","title":{"rendered":"Command Channels Setting"},"content":{"rendered":"<p class=\"translation-block\">The <strong>Command Channel<\/strong> (also known as Cloud to Device Message) is a messaging mechanism sent fromcloud services toIoT devices, enabling the cloud to proactively control devices, issue commands, or push notifications. It is one of the essential foundations for realizing intelligent networked systems.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Use Case<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Remote Control Commands<\/strong>\uff1aThe cloud notifies devices to perform specific actions, such as turning on lights, rebooting, or updating configurations.<\/li>\n\n\n\n<li><strong>Notification Push<\/strong>\uff1aPushes real-time notifications or warning messages to devices.<\/li>\n\n\n\n<li><strong>Software Update Notification<\/strong>\uff1aNotifies devices that firmware updates are available for download.<\/li>\n\n\n\n<li><strong>Scheduled Task Execution<\/strong>\uff1aFor example, executing an action at a fixed daily time, with commands issued by the cloud.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">NeoEdge Positioning and Role<\/h4>\n\n\n\n<p class=\"translation-block\">As an IoT gateway middleware, NeoEdge assists you in establishing a communication bridge between Cloud Services (IT Applications) and On-site Equipment (OT Devices), without interfering with your actual application logic. In other words, what kind of messages are sent from the Cloud to the On-site Equipment and what objectives are achieved are entirely defined and controlled by you.<\/p>\n\n\n\n<p class=\"translation-block\">NeoEdge enables Cloud to Device control capabilities through simple Command Channel configuration, eliminating additional development or construction costs at the gateway side. However, depending on the architecture and capabilities of your Cloud Service backend, some development integration work may still be required.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">NeoEdge Operational Mechanism<\/h4>\n\n\n\n<p>Understanding the operational logic of NeoEdge is a key step to ensuring the smooth integration of your system design.<\/p>\n\n\n\n<p class=\"translation-block\">In the built-in IT Apps of NeoEdge, the cloud services that support the Command Channel include MQTT Broker and AWS IoT Core. Within the built-in OT Device modules, the equipment types capable of receiving  Cloud to Device Message Messages includeModbus TCP\u3001Modbus RTU, and OPC UA.<\/p>\n\n\n\n<p class=\"translation-block\">In other words, as illustrated in the diagram below, you can send messages from cloud services (MQTT Broker or AWS IoT Core) via MQTT Topic , and the commands will be forwarded to the designated OT devices (Modbus TCP, Modbus RTU, or OPC UA).<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"472\" class=\"wp-image-3574\" style=\"width: 600px;\" src=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D_Context_Digram.jpg\" alt=\"\" srcset=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D_Context_Digram.jpg 501w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D_Context_Digram-300x236.jpg 300w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D_Context_Digram-15x12.jpg 15w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n\n\n\n<p class=\"translation-block\">NeoEdge does not validate the correctness of message content;instead, it forwards the received messages intact to your specified device and data points.Since the results after the device executes the messages cannot be returned in real-time, if you need to obtain execution results, it is recommended to additionally define a response mechanism within the original NeoFlow data acquisition process to complete status monitoring or result reporting.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"> NeoEdge Configuration Steps<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">1. Create Command Channels in the IT App<\/h5>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"413\" class=\"wp-image-3575\" style=\"width: 900px;\" src=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/IT_CommandChannels.jpg\" alt=\"\" srcset=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/IT_CommandChannels.jpg 1330w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/IT_CommandChannels-300x138.jpg 300w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/IT_CommandChannels-1024x470.jpg 1024w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/IT_CommandChannels-768x352.jpg 768w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/IT_CommandChannels-18x8.jpg 18w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n\n\n\n<p class=\"translation-block\">Using the example above,you can configure acceptable Command Channels on the MQTT Broker (including the Channel name and its corresponding MQTT Topic). The key point is: each Channel must correspond to a unique MQTT Topic.We recommend using the Gateway ID combined with the Channel Name as the Topic path to ensure naming consistency and easier management.<\/p>\n\n\n\n<p>The list of variables supported by NeoEdge is as follows:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<table style=\"width: 86.4027%; border-collapse: collapse; height: 196px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 28px;\">\n<td style=\"width: 20%; height: 28px; background-color: #3240a8; padding: 8px;\"><span style=\"color: #ffffff;\">Variable name<\/span><\/td>\n<td style=\"width: 38.4584%; height: 28px; background-color: #3240a8; padding: 8px;\"><span style=\"color: #ffffff;\">Explanation<\/span><\/td>\n<td style=\"width: 17.7351%; height: 28px; background-color: #3240a8; padding: 8px;\"><span style=\"color: #ffffff;\">Example content<\/span><\/td>\n<td style=\"width: 10.7678%; background-color: #3240a8; padding: 8px; text-align: center;\"><span style=\"color: #ffffff;\">Allow in Channel Name<\/span><\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.gatewayID}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway ID (a unique value generated by NeoEdge X)<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">110281604680911360<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">Yes<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.gatewayName}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway Name (a name you assign to the gateway; it must be unique within the same project)<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">My_Gateway_001<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">Yes<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.deviceKey}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway PKI \u2013 Private Key (the device private key generated by NeoEdge X)<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">\u00a0<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">No<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.deviceCert}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway PKI \u2013 X.509 Certificate (the device certificate issued by NeoEdge Central)<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">\u00a0<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">No<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.ipcVendor}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway Manufacturer<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">Moxa<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">Yes<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.ipcModel}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway Model Name<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">UC-2222A<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">Yes<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.longitude}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway Longitude<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">120.590001<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">No<\/td>\n<\/tr>\n<tr style=\"height: 21px;\">\n<td style=\"width: 20%; height: 21px; padding: 8px;\">{neoedge.latitude}<\/td>\n<td style=\"width: 38.4584%; height: 21px; padding: 8px;\">Gateway Latitude<\/td>\n<td style=\"width: 17.7351%; height: 21px; padding: 8px;\">24.897777<\/td>\n<td style=\"width: 10.7678%; padding: 8px; text-align: center;\">No<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading\">In NeoFlow, Connect Command Channel to OT Device Tag<\/h5>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"493\" class=\"wp-image-3576\" style=\"width: 900px;\" src=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/LinkCommandToDevice.jpg\" alt=\"\" srcset=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/LinkCommandToDevice.jpg 934w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/LinkCommandToDevice-300x164.jpg 300w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/LinkCommandToDevice-768x421.jpg 768w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/LinkCommandToDevice-18x10.jpg 18w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n\n\n\n<p class=\"translation-block\">As shown in the figure above,you can use NeoFlow to connect the Channel Name to the corresponding OT Device Tag. It is particularly important to note that only Writable Device Tags are supported for connection and control; please verify the relevant settings to ensure that commands can be successfully delivered to the device.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">3. Deploy NeoFlow to the Gateway<\/h5>\n\n\n\n<p class=\"translation-block\">Finally, deploy NeoFlow to the Gateway to complete the overall configuration process.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Testing and Monitoring<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">1. Configure MQTT Broker to Grant Necessary Permissions to the Gateway<\/h5>\n\n\n\n<p>You may need to adjust the MQTT Broker authorization to grant the Gateway permission to receive messages. Using AWS IoT Core as an example, you need to grant the \"Receive\" permission. The complete Policy is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{ &quot;Version&quot;: &quot;2012-10-17&quot;, &quot;Statement&quot;: [ { &quot;Effect&quot;: &quot;Allow&quot;, &quot;Action&quot;: &quot;iot:Connect&quot;, &quot;Resource&quot;: &quot;arn:aws:iot:*:*:client\/${iot:ClientId}&quot; }, { &quot;Effect&quot;: &quot;Allow&quot;, &quot;Action&quot;: &quot;iot:Publish&quot;, &quot;Resource&quot;: &quot;*&quot; }, { &quot;Effect&quot;: &quot;Allow&quot;, &quot;Action&quot;: &quot;iot:Receive&quot;, &quot;Resource&quot;: &quot;*&quot; }, { &quot;Effect&quot;: &quot;Allow&quot;, &quot;Action&quot;: &quot;iot:Subscribe&quot;, &quot;Resource&quot;: &quot;*&quot; } ] }<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">2. Obtain the Gateway ID<\/h5>\n\n\n\n<p class=\"translation-block\">Before sending commands to the IIoT Gateway, you need to obtain the Gateway ID or  Gateway Name according to the Command Channel configuration and construct the Command Channel\uff08MQTT Topic\uff09. This information can be queried through the NeoEdge Central operation interface or obtained using the provided RESTful API.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"259\" class=\"wp-image-3577\" style=\"width: 900px;\" src=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/GatewayID_Name.jpg\" alt=\"\" srcset=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/GatewayID_Name.jpg 1268w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/GatewayID_Name-300x86.jpg 300w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/GatewayID_Name-1024x295.jpg 1024w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/GatewayID_Name-768x221.jpg 768w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/GatewayID_Name-18x5.jpg 18w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n\n\n\n<p class=\"translation-block\">According to the settings above, your  Command Channel Topic will be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>neoedge\/110281604680911360\/c2d-message\/Fan_Speed <\/li>\n\n\n\n<li>neoedge\/110281604680911360\/c2d-message\/Light_Control<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">3. Send Command<\/h5>\n\n\n\n<p>Send a message to the MQTT Topic based on the tools, APIs, or SDKs provided by your MQTT Broker. Using AWS IoT Core as an example, you can send a Cloud to Device Message via the Web UI as follows:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"403\" class=\"wp-image-3582\" style=\"width: 800px;\" src=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/Publish_Message.jpg\" alt=\"\" srcset=\"https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/Publish_Message.jpg 1045w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/Publish_Message-300x151.jpg 300w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/Publish_Message-1024x516.jpg 1024w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/Publish_Message-768x387.jpg 768w, https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/Publish_Message-18x9.jpg 18w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">4. Live Monitor<\/h5>\n\n\n\n<p>Before sending a Cloud to Device Message, you can open Live Monitor on NeoEdge Central to monitor whether the Gateway has received the message and whether the message has been successfully forwarded to the designated OT Device.<\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Command Channel\uff08\u53c8\u7a31 Cloud to Device Message\uff09\u662f\u4e00\u7a2e\u7531\u96f2\u7aef\u670d\u52d9\u50b3\u9001\u81f3\u7269 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3561,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-4421","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-support-documents"],"blocksy_meta":[],"uagb_featured_image_src":{"full":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D.jpg",1920,1080,false],"thumbnail":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D-150x150.jpg",150,150,true],"medium":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D-768x432.jpg",768,432,true],"large":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D-1536x864.jpg",1536,864,true],"2048x2048":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D.jpg",1920,1080,false],"trp-custom-language-flag":["https:\/\/www.ecloudedge.com\/wp-content\/uploads\/2025\/06\/C2D-18x10.jpg",18,10,true]},"uagb_author_info":{"display_name":"kevinkao","author_link":"https:\/\/www.ecloudedge.com\/en\/author\/kevinkao\/"},"uagb_comment_info":2,"uagb_excerpt":"Command Channel\uff08\u53c8\u7a31 Cloud to Device Message\uff09\u662f\u4e00\u7a2e\u7531\u96f2\u7aef\u670d\u52d9\u50b3\u9001\u81f3\u7269&hellip;","_links":{"self":[{"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/posts\/4421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/comments?post=4421"}],"version-history":[{"count":4,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/posts\/4421\/revisions"}],"predecessor-version":[{"id":4437,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/posts\/4421\/revisions\/4437"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/media\/3561"}],"wp:attachment":[{"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/media?parent=4421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/categories?post=4421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ecloudedge.com\/en\/wp-json\/wp\/v2\/tags?post=4421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}