Changes for page MQTT Forward Instruction
Last modified by Kilight Cao on 2024/08/31 16:26
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -24,7 +24,6 @@ 24 24 25 25 26 26 27 - 28 28 = 2. Firmware Change Log for MQTT feature = 29 29 30 30 ... ... @@ -37,15 +37,16 @@ 37 37 38 38 39 39 39 += 3. MQTT forward operating principle = 40 40 41 -= 3. MQTT forward operating principle = 42 42 43 -== 3.1 Network Structure == 42 +== 3.1 Network Structure == 44 44 44 + 45 45 Below shows the network structure for MQTT forwarding. 46 46 47 -* For Uplink: The sensor sends data to LoRa Gateway via LoRa wireless, The gateway will process these data and forward to remote MQTT Broker via Internet. 48 -* For Downlink: The gateway subscribe a topic in the MQTT broker, when there is update on the topic, the gateway will know and broadcast the data to Local LoRa network, 47 +* **For Uplink:** The sensor sends data to LoRa Gateway via LoRa wireless, The gateway will process these data and forward to remote MQTT Broker via Internet. 48 +* **For Downlink:** The gateway subscribe a topic in the MQTT broker, when there is update on the topic, the gateway will know and broadcast the data to Local LoRa network, 49 49 50 50 [[image:image-20220527133547-1.png]] 51 51 ... ... @@ -52,12 +52,13 @@ 52 52 General MQTT structure 53 53 54 54 55 -== 3.2 How sensor data is forwarded == 55 +== 3.2 How sensor data is forwarded == 56 56 57 + 57 57 In this MQTT forward feature, the key point is how the gateway process the sensor data. 58 58 59 59 60 -=== 3.2.1 Upstream === 61 +=== 3.2.1 Upstream === 61 61 62 62 Assume there are two sensor nodes, their ID are Node1 ID: 6734 , Node2 ID: 7456. In the remote MQTT broker there are two topics: Topic1: /channel/765800, Topic2: /channel/367860. We can set up in the gateway to map Node1 to Topic1 and Node2 to Topic2. So when there is a sensor data from Node1, the gateway will forward the data to Topic1, when there is sensor data from Node2, the gateway will forward to Topic2. 63 63 ... ... @@ -69,10 +69,12 @@ 69 69 70 70 ((( 71 71 Upstream path 73 + 74 + 72 72 ))) 73 73 74 74 ((( 75 -Note: The sensor data can base or LoRa or other method, as long as there are data on the file /var/iot/channels. /span> 78 +(% style="color:red" %)**Note: The sensor data can base or LoRa or other method, as long as there are data on the file /var/iot/channels. /span>** 76 76 ))) 77 77 78 78 ((( ... ... @@ -79,8 +79,9 @@ 79 79 80 80 ))) 81 81 82 -=== 3.2.2 Downstream === 85 +=== 3.2.2 Downstream === 83 83 87 + 84 84 The gateway subscribes to a topic of the remote MQTT broker topic. When there is some one publish a value on this topic. The gateway will get it and broadcast to local LoRa Network. 85 85 86 86 ((( ... ... @@ -92,8 +92,9 @@ 92 92 Downstream path 93 93 94 94 95 -== 3.3 Macro Definition == 99 +== 3.3 Macro Definition == 96 96 101 + 97 97 The MQTT publish command use Macro settings to generate flexible upstream payload for MQTT publish. 98 98 99 99 ((( ... ... @@ -102,8 +102,9 @@ 102 102 103 103 ))) 104 104 105 -=== 3.3.1 -t topic macro === 110 +=== 3.3.1 -t topic macro === 106 106 112 + 107 107 * CHANNEL: Remote Channel ID 108 108 * CLIENTID: Client ID , Same as -i 109 109 * WRITE_API: Remote Channel Write API ... ... @@ -110,8 +110,12 @@ 110 110 * USERNAME: User ID (-u) 111 111 * HOSTNAME: Device Hostname 112 112 113 -=== 3.3.2 -m message macro === 114 114 120 + 121 + 122 +=== 3.3.2 -m message macro === 123 + 124 + 115 115 * HOSTNAME: Device Hostname 116 116 * CHANNEL: Remote Channel ID 117 117 * DATA: Sensor Data without time stamp and rssi ... ... @@ -118,14 +118,18 @@ 118 118 * META: Completely sensor data with time stamp and rssi 119 119 * JSON: Convert META to json format. 120 120 121 -=== 3.3.3 Example for Macro === 122 122 132 + 133 + 134 +=== 3.3.3 Example for Macro === 135 + 136 + 123 123 [[image:image-20220527134251-4.png]] 124 124 125 125 MQTT Publish configure 126 126 127 127 128 -Above screen shots shows below format: 142 +**Above screen shots shows below format:** 129 129 130 130 * -t: CLIENTID/CHANNEL/data 131 131 * -m: DATA ... ... @@ -142,8 +142,10 @@ 142 142 ))) 143 143 144 144 145 -== 3.4 Modify the MQTT to support more options == 146 146 160 +== 3.4 Modify the MQTT to support more options == 161 + 162 + 147 147 The MQTT Client Utility used in Dragino is **mosquitto_pub** and **mosquitto_sub**. User can add more options to the mqtt commands. User can check the valid options by command mosquitto_pub ~-~-help. as below: 148 148 149 149 (% class="box" %) ... ... @@ -161,9 +161,9 @@ 161 161 [-u username [-P password]] 162 162 [~-~-will-topic [~-~-will-payload payload] [~-~-will-qos qos] [~-~-will-retain]] 163 163 [{~-~-cafile file | ~-~-capath dir} [~-~-cert file] [~-~-key file] 164 - 165 - 166 - 180 + [~-~-ciphers ciphers] [~-~-insecure] 181 + [~-~-tls-alpn protocol] 182 + [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]] 167 167 [~-~-psk hex-key ~-~-psk-identity identity [~-~-ciphers ciphers]] 168 168 [~-~-proxy socks-url] 169 169 [~-~-property command identifier value]