<
From version < 44.5 >
edited by Xiaoling
on 2022/07/14 15:55
To version < 37.7 >
edited by Xiaoling
on 2022/06/01 10:44
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,17 +1,15 @@
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/]]
... ... @@ -24,9 +24,8 @@
24 24  
25 25  
26 26  
27 -= 2.  Firmware Change Log for MQTT feature =
25 += 2. Firmware Change Log for MQTT feature =
28 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  
34 += 3. MQTT forward operating principle =
37 37  
36 +== 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,
40 +* 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.
41 +* 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 ==
48 +== 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 ===
53 +=== 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>**
68 +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 ===
75 +=== 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 ==
88 +== 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 ===
98 +=== 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  
106 +=== 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  
114 +=== 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  
120 +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  
136 +== 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]]
155 + [~-~-ciphers ciphers] [~-~-insecure]
156 + [~-~-tls-alpn protocol]
157 + [~-~-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
... ... @@ -517,18 +517,20 @@
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.
492 +(% 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**
521 521  )))
522 522  )))
523 523  
524 -[[image:image-20220613191345-4.png]]
496 +[[image:image-20220527141450-22.png]]
525 525  
498 +Publish mush use META as data format for LG308
526 526  
527 527  
528 528  (% style="color:#4f81bd" %)**Step 4**(%%): Map the Device Address to Remote ID in MQTT server.
529 529  
530 -[[image:image-20220613190635-2.png]]
503 +[[image:image-20220527141727-23.png]]
531 531  
505 +Map Dev Addr to remote ID
532 532  
533 533  
534 534  (% style="color:#4f81bd" %)**Step 5: Upstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server
... ... @@ -535,25 +535,24 @@
535 535  
536 536  [[image:image-20220527141843-24.png]]
537 537  
512 +Upstream Process
538 538  
539 539  
540 -
541 541  [[image:image-20220527141933-25.png]]
542 542  
543 543  Choose ASCII Format
544 544  
545 545  
546 -
547 547  [[image:image-20220527142028-26.png]]
548 548  
549 549  LHT65 Decoder
550 550  
551 551  
552 -
553 553  (% style="color:#4f81bd" %)**Step 6: Set up subscribe**(%%)**:** Subscribe a topci for downstream.
554 554  
555 -[[image:image-20220613191426-5.png]]
527 +[[image:image-20220527142115-27.png]]
556 556  
529 +Subscribe to a topic
557 557  
558 558  
559 559  (% style="color:#4f81bd" %)**Step 7: Downstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server.
... ... @@ -560,32 +560,10 @@
560 560  
561 561  [[image:image-20220527142239-28.png]]
562 562  
536 +Downstream Flow
563 563  
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 -
586 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"]]**
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]]
589 589  
590 590  = 5. How to Debug =
591 591  
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
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0