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)
-
Attachments (0 modified, 6 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,19 +1,21 @@ 1 -**~ Contents:** 1 +**~ Table of Contents:** 2 2 3 3 {{toc/}} 4 4 5 5 6 -= 1. Introduction = 6 += 1. Introduction = 7 7 8 + 8 8 Dragino LoRa/LoRaWAN gateway support MQTT forwarding. It can forward the sensor data from LoRa network to MQTT server , and vice verse. 9 9 10 10 11 -== 1.1 Support Devices == 12 +== 1.1 Support Devices == 12 12 14 + 13 13 This MQTT forward instruction is for below devices: 14 14 15 15 * Firmware Version > LG02_LG08-5.3.1580178039 [[Firmware Download>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]] 16 -* LG01N, OLG01N ((% style="color:red" %)**Warning**(%%): LG01-P LG01-S use another instruction: [[MQTT for LG01-P/LG01S>> url:https://wiki.dragino.com/index.php/Through_MQTT_to_upload_data]])18 +* LG01N, OLG01N ((% style="color:red" %)**Warning**(%%): LG01-P LG01-S use another instruction: [[MQTT for LG01-P/LG01S>>doc:Through MQTT to upload data.WebHome]]) 17 17 * LG02, OLG02 18 18 * LG308, DLOS8 19 19 * LPS8 ... ... @@ -20,8 +20,11 @@ 20 20 * LIG16 21 21 * MS14 series if installed with the same firmware. (in this case, the MQTT forward will work , but no LoRa support) 22 22 23 -= 2. Firmware Change Log for MQTT feature = 24 24 26 + 27 += 2. Firmware Change Log for MQTT feature = 28 + 29 + 25 25 ((( 26 26 This instruction is wrote start from LG02_LG08-5.3.1580178039. Below is related change log since this version of firmware. 27 27 ))) ... ... @@ -29,14 +29,18 @@ 29 29 * LG02_LG08-5.3.1580178039 30 30 ** Initiate version 31 31 32 -= 3. MQTT forward operating principle = 33 33 34 -== 3.1 Network Structure == 35 35 39 += 3. MQTT forward operating principle = 40 + 41 + 42 +== 3.1 Network Structure == 43 + 44 + 36 36 Below shows the network structure for MQTT forwarding. 37 37 38 -* 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. 39 -* 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, 40 40 41 41 [[image:image-20220527133547-1.png]] 42 42 ... ... @@ -43,12 +43,13 @@ 43 43 General MQTT structure 44 44 45 45 46 -== 3.2 How sensor data is forwarded == 55 +== 3.2 How sensor data is forwarded == 47 47 57 + 48 48 In this MQTT forward feature, the key point is how the gateway process the sensor data. 49 49 50 50 51 -=== 3.2.1 Upstream === 61 +=== 3.2.1 Upstream === 52 52 53 53 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. 54 54 ... ... @@ -60,10 +60,12 @@ 60 60 61 61 ((( 62 62 Upstream path 73 + 74 + 63 63 ))) 64 64 65 65 ((( 66 -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>** 67 67 ))) 68 68 69 69 ((( ... ... @@ -70,8 +70,9 @@ 70 70 71 71 ))) 72 72 73 -=== 3.2.2 Downstream === 85 +=== 3.2.2 Downstream === 74 74 87 + 75 75 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. 76 76 77 77 ((( ... ... @@ -83,8 +83,9 @@ 83 83 Downstream path 84 84 85 85 86 -== 3.3 Macro Definition == 99 +== 3.3 Macro Definition == 87 87 101 + 88 88 The MQTT publish command use Macro settings to generate flexible upstream payload for MQTT publish. 89 89 90 90 ((( ... ... @@ -93,8 +93,9 @@ 93 93 94 94 ))) 95 95 96 -=== 3.3.1 -t topic macro === 110 +=== 3.3.1 -t topic macro === 97 97 112 + 98 98 * CHANNEL: Remote Channel ID 99 99 * CLIENTID: Client ID , Same as -i 100 100 * WRITE_API: Remote Channel Write API ... ... @@ -101,8 +101,12 @@ 101 101 * USERNAME: User ID (-u) 102 102 * HOSTNAME: Device Hostname 103 103 104 -=== 3.3.2 -m message macro === 105 105 120 + 121 + 122 +=== 3.3.2 -m message macro === 123 + 124 + 106 106 * HOSTNAME: Device Hostname 107 107 * CHANNEL: Remote Channel ID 108 108 * DATA: Sensor Data without time stamp and rssi ... ... @@ -109,14 +109,19 @@ 109 109 * META: Completely sensor data with time stamp and rssi 110 110 * JSON: Convert META to json format. 111 111 112 -=== 3.3.3 Example for Macro === 113 113 132 + 133 + 134 +=== 3.3.3 Example for Macro === 135 + 136 + 114 114 [[image:image-20220527134251-4.png]] 115 115 116 116 MQTT Publish configure 117 117 118 -Above screen shots shows below format: 119 119 142 +**Above screen shots shows below format:** 143 + 120 120 * -t: CLIENTID/CHANNEL/data 121 121 * -m: DATA 122 122 ... ... @@ -126,13 +126,16 @@ 126 126 127 127 Sensor Data 128 128 153 + 129 129 ((( 130 130 According to above macro. Gateway will publish (% style="color:#4f81bd" %)**field1=22.0&field2=49.0**(%%) to topic: (% style="color:#4f81bd" %)**dragino-1b7060/78901/data**(%%), where 78901 is the remote channel for this node ID. 131 131 ))) 132 132 133 133 134 -== 3.4 Modify the MQTT to support more options == 135 135 160 +== 3.4 Modify the MQTT to support more options == 161 + 162 + 136 136 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: 137 137 138 138 (% class="box" %) ... ... @@ -150,9 +150,9 @@ 150 150 [-u username [-P password]] 151 151 [~-~-will-topic [~-~-will-payload payload] [~-~-will-qos qos] [~-~-will-retain]] 152 152 [{~-~-cafile file | ~-~-capath dir} [~-~-cert file] [~-~-key file] 153 - 154 - 155 - 180 + [~-~-ciphers ciphers] [~-~-insecure] 181 + [~-~-tls-alpn protocol] 182 + [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]] 156 156 [~-~-psk hex-key ~-~-psk-identity identity [~-~-ciphers ciphers]] 157 157 [~-~-proxy socks-url] 158 158 [~-~-property command identifier value] ... ... @@ -332,6 +332,7 @@ 332 332 333 333 go to mqtt configure menu 334 334 362 + 335 335 ((( 336 336 Select (% style="color:#4f81bd" %)**Forward to MQTT server**. (% style="color:red" %)**Notice**(%%): This option is removed from the latest firmware, in the latest firmware, if user submit "SAVE & APPLY" in MQTT page, the gateway will use MQTT service. 337 337 ))) ... ... @@ -449,6 +449,7 @@ 449 449 LoRa Parameter should match 450 450 451 451 480 + 452 452 Below is the test result after the Arduino Sketch is running. 453 453 454 454 [[image:image-20220527140459-19.png]] ... ... @@ -456,6 +456,7 @@ 456 456 Upstream Data Flow 457 457 458 458 488 + 459 459 [[image:image-20220527140542-20.png]] 460 460 461 461 Downstream Data Flow ... ... @@ -487,20 +487,18 @@ 487 487 488 488 ((( 489 489 ((( 490 -(% style="color:#4f81bd" %)**Step 3**(%%): Set up publish format and MQTT channel. The LG308 will store the Data from End node in (% style="color:#4f81bd" %)**HEX format**(%%) in the file. And we need to config the format to (% style="color:#4f81bd" %)**META**520 +(% style="color:#4f81bd" %)**Step 3**(%%): Set up publish format and MQTT channel. The LG308 will store the Data from End node in (% style="color:#4f81bd" %)**HEX format**(%%) in the file. 491 491 ))) 492 492 ))) 493 493 494 -[[image:image-20220 527141450-22.png]]524 +[[image:image-20220613191345-4.png]] 495 495 496 -Publish mush use META as data format for LG308 497 497 498 498 499 499 (% style="color:#4f81bd" %)**Step 4**(%%): Map the Device Address to Remote ID in MQTT server. 500 500 501 -[[image:image-20220 527141727-23.png]]530 +[[image:image-20220613190635-2.png]] 502 502 503 -Map Dev Addr to remote ID 504 504 505 505 506 506 (% style="color:#4f81bd" %)**Step 5: Upstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server ... ... @@ -507,24 +507,25 @@ 507 507 508 508 [[image:image-20220527141843-24.png]] 509 509 510 -Upstream Process 511 511 512 512 540 + 513 513 [[image:image-20220527141933-25.png]] 514 514 515 515 Choose ASCII Format 516 516 517 517 546 + 518 518 [[image:image-20220527142028-26.png]] 519 519 520 520 LHT65 Decoder 521 521 522 522 552 + 523 523 (% style="color:#4f81bd" %)**Step 6: Set up subscribe**(%%)**:** Subscribe a topci for downstream. 524 524 525 -[[image:image-20220 527142115-27.png]]555 +[[image:image-20220613191426-5.png]] 526 526 527 -Subscribe to a topic 528 528 529 529 530 530 (% style="color:#4f81bd" %)**Step 7: Downstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server. ... ... @@ -531,10 +531,32 @@ 531 531 532 532 [[image:image-20220527142239-28.png]] 533 533 534 -Downstream Flow 535 535 564 + 565 +=== MQTT Downstream format === 566 + 567 + 568 +mosquitto_pub -h $server_address -p $server_port -t $Client_ID -m "**dev_addr,imme/time,txt/hex,payload**" 569 + 570 +(% class="box infomessage" %) 571 +((( 572 +mosquitto_pub -h 10.130.2.192 -p 1883 -t dragino-1d25dc/ -m "260211D,time,txt,hello" 573 +))) 574 + 575 +mosquitto_pub -h $server_address -p $server_port -t $Client_ID -m "**dev_addr,imme/time,txt/hex,payload,txpw,txbw,SF,frequency,rxwindow**" 576 + 577 +(% class="box infomessage" %) 578 +((( 579 +mosquitto_pub -h 10.130.2.192 -p 1883 -t dragino-1d25dc/ -m "260211D,time,txt,hello,20,1,SF12,923300000,2 > /var/iot/push/test" 580 +))) 581 + 582 +Or use [[MQTT.fx>>https://mqttfx.jensd.de/index.php/download]] 583 + 584 +[[image:image-20220613192816-6.png||height="440" width="1056"]] 585 + 536 536 (% style="color:red" %)**Notice: The text use for Downstream must meet the requirement from [[LG308 Downstream Payload>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308||anchor="H2.2Downstream"]]** 537 537 588 +Check out this link for more mosquito-related directives [[https:~~/~~/mosquitto.org/man/mosquitto_pub-1.html>>https://mosquitto.org/man/mosquitto_pub-1.html]] 538 538 539 539 = 5. How to Debug = 540 540
- image-20220613190254-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +55.7 KB - Content
- image-20220613190635-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +44.1 KB - Content
- image-20220613191154-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +56.1 KB - Content
- image-20220613191345-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +55.4 KB - Content
- image-20220613191426-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +55.8 KB - Content
- image-20220613192816-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +22.1 KB - Content