Changes for page MQTT Forward Instruction

Last modified by Kilight Cao on 2024/08/31 16:26

From version 44.5
edited by Xiaoling
on 2022/07/14 15:55
Change comment: There is no comment for this version
To version 23.1
edited by Xiaoling
on 2022/05/27 14:12
Change comment: Uploaded new attachment "image-20220527141235-21.png", version {1}

Summary

Details

Page properties
Content
... ... @@ -1,21 +1,19 @@
1 -**~ Table of Contents:**
1 +**~ Contents:**
2 2  
3 3  {{toc/}}
4 4  
5 5  
6 -= 1.  Introduction =
6 += 1. Introduction =
7 7  
8 -
9 9  Dragino LoRa/LoRaWAN gateway support MQTT forwarding. It can forward the sensor data from LoRa network to MQTT server , and vice verse.
10 10  
11 11  
12 -== 1.1  Support Devices ==
11 +== 1.1 Support Devices ==
13 13  
14 -
15 15  This MQTT forward instruction is for below devices:
16 16  
17 17  * Firmware Version > LG02_LG08-5.3.1580178039 [[Firmware Download>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
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]])
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]])
19 19  * LG02, OLG02
20 20  * LG308, DLOS8
21 21  * LPS8
... ... @@ -22,11 +22,8 @@
22 22  * LIG16
23 23  * MS14 series if installed with the same firmware. (in this case, the MQTT forward will work , but no LoRa support)
24 24  
23 += 2. Firmware Change Log for MQTT feature =
25 25  
26 -
27 -= 2.  Firmware Change Log for MQTT feature =
28 -
29 -
30 30  (((
31 31  This instruction is wrote start from LG02_LG08-5.3.1580178039. Below is related change log since this version of firmware.
32 32  )))
... ... @@ -34,18 +34,14 @@
34 34  * LG02_LG08-5.3.1580178039
35 35  ** Initiate version
36 36  
32 += 3. MQTT forward operating principle =
37 37  
34 +== 3.1 Network Structure ==
38 38  
39 -= 3.  MQTT forward operating principle =
40 -
41 -
42 -== 3.1  Network Structure ==
43 -
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,
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,
49 49  
50 50  [[image:image-20220527133547-1.png]]
51 51  
... ... @@ -52,13 +52,12 @@
52 52  General MQTT structure
53 53  
54 54  
55 -== 3.2  How sensor data is forwarded ==
46 +== 3.2 How sensor data is forwarded ==
56 56  
57 -
58 58  In this MQTT forward feature, the key point is how the gateway process the sensor data.
59 59  
60 60  
61 -=== 3.2.1  Upstream ===
51 +=== 3.2.1 Upstream ===
62 62  
63 63  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.
64 64  
... ... @@ -70,12 +70,10 @@
70 70  
71 71  (((
72 72  Upstream path
73 -
74 -
75 75  )))
76 76  
77 77  (((
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>**
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>
79 79  )))
80 80  
81 81  (((
... ... @@ -82,9 +82,8 @@
82 82  
83 83  )))
84 84  
85 -=== 3.2.2  Downstream ===
73 +=== 3.2.2 Downstream ===
86 86  
87 -
88 88  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.
89 89  
90 90  (((
... ... @@ -96,9 +96,8 @@
96 96  Downstream path
97 97  
98 98  
99 -== 3.3  Macro Definition ==
86 +== 3.3 Macro Definition ==
100 100  
101 -
102 102  The MQTT publish command use Macro settings to generate flexible upstream payload for MQTT publish.
103 103  
104 104  (((
... ... @@ -107,9 +107,8 @@
107 107  
108 108  )))
109 109  
110 -=== 3.3.1  -t topic macro ===
96 +=== 3.3.1 -t topic macro ===
111 111  
112 -
113 113  * CHANNEL: Remote Channel ID
114 114  * CLIENTID: Client ID , Same as -i
115 115  * WRITE_API: Remote Channel Write API
... ... @@ -116,12 +116,8 @@
116 116  * USERNAME: User ID (-u)
117 117  * HOSTNAME: Device Hostname
118 118  
104 +=== 3.3.2 -m message macro ===
119 119  
120 -
121 -
122 -=== 3.3.2  -m message macro ===
123 -
124 -
125 125  * HOSTNAME: Device Hostname
126 126  * CHANNEL: Remote Channel ID
127 127  * DATA: Sensor Data without time stamp and rssi
... ... @@ -128,19 +128,14 @@
128 128  * META: Completely sensor data with time stamp and rssi
129 129  * JSON: Convert META to json format.
130 130  
112 +=== 3.3.3 Example for Macro ===
131 131  
132 -
133 -
134 -=== 3.3.3  Example for Macro ===
135 -
136 -
137 137  [[image:image-20220527134251-4.png]]
138 138  
139 139  MQTT Publish configure
140 140  
118 +Above screen shots shows below format:
141 141  
142 -**Above screen shots shows below format:**
143 -
144 144  * -t: CLIENTID/CHANNEL/data
145 145  * -m: DATA
146 146  
... ... @@ -150,16 +150,13 @@
150 150  
151 151  Sensor Data
152 152  
153 -
154 154  (((
155 155  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.
156 156  )))
157 157  
158 158  
134 +== 3.4 Modify the MQTT to support more options ==
159 159  
160 -== 3.4  Modify the MQTT to support more options ==
161 -
162 -
163 163  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:
164 164  
165 165  (% class="box" %)
... ... @@ -177,9 +177,9 @@
177 177   [-u username [-P password]]
178 178   [~-~-will-topic [~-~-will-payload payload] [~-~-will-qos qos] [~-~-will-retain]]
179 179   [{~-~-cafile file | ~-~-capath dir} [~-~-cert file] [~-~-key file]
180 - [~-~-ciphers ciphers] [~-~-insecure]
181 - [~-~-tls-alpn protocol]
182 - [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]]
153 + [~-~-ciphers ciphers] [~-~-insecure]
154 + [~-~-tls-alpn protocol]
155 + [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]]
183 183   [~-~-psk hex-key ~-~-psk-identity identity [~-~-ciphers ciphers]]
184 184   [~-~-proxy socks-url]
185 185   [~-~-property command identifier value]
... ... @@ -359,7 +359,6 @@
359 359  
360 360  go to mqtt configure menu
361 361  
362 -
363 363  (((
364 364  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.
365 365  )))
... ... @@ -477,7 +477,6 @@
477 477  LoRa Parameter should match
478 478  
479 479  
480 -
481 481  Below is the test result after the Arduino Sketch is running.
482 482  
483 483  [[image:image-20220527140459-19.png]]
... ... @@ -485,7 +485,6 @@
485 485  Upstream Data Flow
486 486  
487 487  
488 -
489 489  [[image:image-20220527140542-20.png]]
490 490  
491 491  Downstream Data Flow
... ... @@ -494,23 +494,23 @@
494 494  === 4.5.2 Use LoRaWAN Protocol for communication ~-~- For LG308/LPS8/DLOS8 ===
495 495  
496 496  (((
497 -Since firmware (% style="color:#4f81bd" %)**LG02_LG08~-~-build-v5.3.1585192026-20200326-1109,**(%%) Dragino LoRaWAN gateways support the communication to LoRaWAN (% style="color:#4f81bd" %)**ABP end node**(%%) locally without the need of LoRaWAN server. This feature allow us to integrate MQTT in the gateway to support LoRaWAN to MQTT forwarding or visa verse.
467 +Since firmware (% class="mark" %)**LG02_LG08~-~-build-v5.3.1585192026-20200326-1109,**(%%) Dragino LoRaWAN gateways support the communication to LoRaWAN (% class="mark" %)**ABP end node**(%%) locally without the need of LoRaWAN server. This feature allow us to integrate MQTT in the gateway to support LoRaWAN to MQTT forwarding or visa verse.
498 498  )))
499 499  
500 500  (((
501 -When use test this feature, please use the version higher then : (% style="color:#4f81bd" %)**LG02_LG08~-~-build-v5.4.1593400722-20200629-1120**(%%), in this version, the upload format is changed and readable, which is easier for integration.
502 -(% style="color:#4f81bd" %)**Video Instruction**(%%): (% style="color:blue" %)[[https:~~/~~/youtu.be/qJTY441-t90>>url:https://youtu.be/qJTY441-t90]]
471 +When use test this feature, please use the version higher then : (% class="mark" %)**LG02_LG08~-~-build-v5.4.1593400722-20200629-1120**(%%), in this version, the upload format is changed and readable, which is easier for integration.
472 +(% class="mark" %)**Video Instruction**(%%):[[https:~~/~~/youtu.be/qJTY441-t90>>url:https://youtu.be/qJTY441-t90]]
503 503  )))
504 504  
505 505  (((
506 -(% style="color:#4f81bd" %)**Step 1**(%%): Refer [[Communicate with ABP End Node>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308]] to know how to set up LG308 to work with LoRaWAN End node.
476 +**Step 1**: Refer [[Communicate with ABP End Node>>url:https://wiki.dragino.com/index.php/Communication_with_ABP_End_Node]] to know how to set up LG308 to work with LoRaWAN End node.
507 507  )))
508 508  
509 509  (((
510 -(% style="color:#4f81bd" %)**Step 2**(%%): Make sure your Radio settings match the End Node settings.
480 +**Step 2**: Make sure your Radio settings match the End Node settings.
511 511  )))
512 512  
513 -[[image:image-20220527141235-21.png]]
483 +[[image:https://wiki.dragino.com/images/thumb/f/f7/LG308_MQTT_5.png/600px-LG308_MQTT_5.png||height="387" width="600"]]
514 514  
515 515  Use Same Frequency Band as End Node
516 516  
... ... @@ -517,83 +517,86 @@
517 517  
518 518  (((
519 519  (((
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.
490 +**Step 3**: Set up publish format and MQTT channel. The LG308 will store the Data from End node in HEX format in the file. And we need to config the format to META
521 521  )))
522 522  )))
523 523  
524 -[[image:image-20220613191345-4.png]]
494 +[[image:https://wiki.dragino.com/images/thumb/8/8d/LG308_MQTT_3.png/600px-LG308_MQTT_3.png||height="385" width="600"]]
525 525  
496 +Publish mush use META as data format for LG308
526 526  
527 527  
528 -(% style="color:#4f81bd" %)**Step 4**(%%): Map the Device Address to Remote ID in MQTT server.
499 +**Step 4**: Map the Device Address to Remote ID in MQTT server.
529 529  
530 -[[image:image-20220613190635-2.png]]
501 +[[image:https://wiki.dragino.com/images/thumb/7/7f/LG308_MQTT_4.png/600px-LG308_MQTT_4.png||height="335" width="600"]]
531 531  
503 +Map Dev Addr to remote ID
532 532  
533 533  
534 -(% style="color:#4f81bd" %)**Step 5: Upstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server
506 +**Step 5: Upstream**: Save the change, we can see the log info via "sytem log", End Node and MQTT Server
535 535  
536 -[[image:image-20220527141843-24.png]]
508 +[[image:https://wiki.dragino.com/images/thumb/b/be/LG308_MQTT_6.png/600px-LG308_MQTT_6.png||height="279" width="600"]]
537 537  
510 +Upstream Process
538 538  
512 +[[image:https://wiki.dragino.com/images/thumb/0/07/LG308_MQTT_6_1.png/600px-LG308_MQTT_6_1.png||height="246" width="600"]]
539 539  
540 -
541 -[[image:image-20220527141933-25.png]]
542 -
543 543  Choose ASCII Format
544 544  
516 +[[image:https://wiki.dragino.com/images/thumb/a/a3/LG308_MQTT_6_2.png/600px-LG308_MQTT_6_2.png||height="248" width="600"]]
545 545  
546 -
547 -[[image:image-20220527142028-26.png]]
548 -
549 549  LHT65 Decoder
550 550  
551 551  
521 +**Step 6: Set up subscribe:** Subscribe a topci for downstream.
552 552  
553 -(% style="color:#4f81bd" %)**Step 6: Set up subscribe**(%%)**:** Subscribe a topci for downstream.
523 +[[image:https://wiki.dragino.com/images/thumb/b/b9/LG308_MQTT_7.png/600px-LG308_MQTT_7.png||height="176" width="600"]]
554 554  
555 -[[image:image-20220613191426-5.png]]
525 +Subscribe to a topic
556 556  
557 557  
528 +**Step 7**: Downstream: Save the change, we can see the log info via "sytem log", End Node and MQTT Server.
558 558  
559 -(% style="color:#4f81bd" %)**Step 7: Downstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server.
530 +[[image:https://wiki.dragino.com/images/thumb/9/97/LG308_MQTT_8.png/600px-LG308_MQTT_8.png||height="298" width="600"]]
560 560  
561 -[[image:image-20220527142239-28.png]]
532 +Downstream Flow
562 562  
534 +(% class="mark" %)**Notice: The text use for Downstream must meet the requirement from [[LG308 Downstream Payload>>url:https://wiki.dragino.com/index.php/Communication_with_ABP_End_Node#Downstream]]**
563 563  
564 564  
565 -=== MQTT Downstream format ===
537 += 5. Example For Different MQTT Servers =
566 566  
539 +(% style="width:731.222px" %)
540 +|=(% style="width: 270px;" %)(((
541 +[[image:https://wiki.dragino.com/images/thumb/7/73/ThingSpeak1.png/200px-ThingSpeak1.png||alt="ThingSpeak1.png" height="114" width="233"]]
567 567  
568 -mosquitto_pub -h $server_address -p $server_port -t $Client_ID -m "**dev_addr,imme/time,txt/hex,payload**"
543 +== [[ThingSpeak Server>>url:http://www.thingspeak.com/]] ==
569 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 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**"
546 +[[Examples>>url:https://wiki.dragino.com/index.php/ThingSpeak_Examples]]
547 +)))|=(% style="width: 242px;" %)(((
548 +[[image:https://wiki.dragino.com/images/thumb/3/3b/Lewei50.png/200px-Lewei50.png||alt="Lewei50.png" height="65" width="223"]]
576 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 581  
582 -Or use [[MQTT.fx>>https://mqttfx.jensd.de/index.php/download]]
551 +== [[乐联网平台>>url:https://www.lewei50.com/]] ==
583 583  
584 -[[image:image-20220613192816-6.png||height="440" width="1056"]]
585 585  
586 -(% 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"]]**
554 +[[lewei Example>>url:https://wiki.dragino.com/index.php/Lewei_Example_mqtt]]
555 +)))|=(% style="width: 214px;" %)(((
556 +[[image:https://wiki.dragino.com/images/thumb/a/aa/AWS-IOT.png/200px-AWS-IOT.png||alt="AWS-IOT.png" height="112" width="183"]]
587 587  
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]]
558 +== [[AWS-IOT>>url:https://aws.amazon.com/cn/iot-platform/how-it-works/]] ==
589 589  
590 -= 5. How to Debug =
591 591  
592 -User can login the gateway's console and run (% style="color:#4f81bd" %)**logread -f**(%%). It will shows the output when there is packet arrive.User can see if it is correct.
561 +[[AWS Examples>>url:https://wiki.dragino.com/index.php/MQTT_Forward_to_Amazon_AWS-IOT]]
562 +)))
593 593  
564 += 6. How to Debug =
594 594  
595 -= 6. How to ask for Support =
566 +User can login the gateway's console and run (% class="mark" %)**logread -f**(%%). It will shows the output when there is packet arrive.User can see if it is correct.
596 596  
568 += 7. How to ask for Support =
569 +
597 597  If a user still not have trouble making it works. please send a mail to support@dragino.com with the below info:
598 598  
599 599  * Detail of your LoRaWAN end node.
image-20220527141450-22.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -46.5 KB
Content
image-20220527141727-23.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -23.6 KB
Content
image-20220527141843-24.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -164.3 KB
Content
image-20220527141933-25.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -100.1 KB
Content
image-20220527142028-26.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -95.2 KB
Content
image-20220527142115-27.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -9.3 KB
Content
image-20220527142239-28.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -181.1 KB
Content
image-20220527142638-29.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -62.3 KB
Content
image-20220527142706-30.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -43.1 KB
Content
image-20220527142733-31.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -10.3 KB
Content
image-20220527142820-32.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -155.6 KB
Content
image-20220613190254-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -55.7 KB
Content
image-20220613190635-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -44.1 KB
Content
image-20220613191154-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -56.1 KB
Content
image-20220613191345-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -55.4 KB
Content
image-20220613191426-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -55.8 KB
Content
image-20220613192816-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -22.1 KB
Content