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

Summary

Details

Page properties
Content
... ... @@ -1,15 +1,17 @@
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/]]
... ... @@ -22,8 +22,9 @@
22 22  
23 23  
24 24  
25 -= 2. Firmware Change Log for MQTT feature =
27 += 2.  Firmware Change Log for MQTT feature =
26 26  
29 +
27 27  (((
28 28  This instruction is wrote start from LG02_LG08-5.3.1580178039. Below is related change log since this version of firmware.
29 29  )))
... ... @@ -33,14 +33,16 @@
33 33  
34 34  
35 35  
36 -= 3. MQTT forward operating principle =
39 += 3.  MQTT forward operating principle =
37 37  
38 -== 3.1 Network Structure ==
39 39  
42 +== 3.1  Network Structure ==
43 +
44 +
40 40  Below shows the network structure for MQTT forwarding.
41 41  
42 -* 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.
43 -* 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,
44 44  
45 45  [[image:image-20220527133547-1.png]]
46 46  
... ... @@ -47,12 +47,13 @@
47 47  General MQTT structure
48 48  
49 49  
50 -== 3.2 How sensor data is forwarded ==
55 +== 3.2  How sensor data is forwarded ==
51 51  
57 +
52 52  In this MQTT forward feature, the key point is how the gateway process the sensor data.
53 53  
54 54  
55 -=== 3.2.1 Upstream ===
61 +=== 3.2.1  Upstream ===
56 56  
57 57  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.
58 58  
... ... @@ -64,10 +64,12 @@
64 64  
65 65  (((
66 66  Upstream path
73 +
74 +
67 67  )))
68 68  
69 69  (((
70 -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>**
71 71  )))
72 72  
73 73  (((
... ... @@ -74,8 +74,9 @@
74 74  
75 75  )))
76 76  
77 -=== 3.2.2 Downstream ===
85 +=== 3.2.2  Downstream ===
78 78  
87 +
79 79  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.
80 80  
81 81  (((
... ... @@ -87,8 +87,9 @@
87 87  Downstream path
88 88  
89 89  
90 -== 3.3 Macro Definition ==
99 +== 3.3  Macro Definition ==
91 91  
101 +
92 92  The MQTT publish command use Macro settings to generate flexible upstream payload for MQTT publish.
93 93  
94 94  (((
... ... @@ -97,8 +97,9 @@
97 97  
98 98  )))
99 99  
100 -=== 3.3.1 -t topic macro ===
110 +=== 3.3.1  -t topic macro ===
101 101  
112 +
102 102  * CHANNEL: Remote Channel ID
103 103  * CLIENTID: Client ID , Same as -i
104 104  * WRITE_API: Remote Channel Write API
... ... @@ -107,8 +107,10 @@
107 107  
108 108  
109 109  
110 -=== 3.3.2 -m message macro ===
111 111  
122 +=== 3.3.2  -m message macro ===
123 +
124 +
112 112  * HOSTNAME: Device Hostname
113 113  * CHANNEL: Remote Channel ID
114 114  * DATA: Sensor Data without time stamp and rssi
... ... @@ -117,14 +117,17 @@
117 117  
118 118  
119 119  
120 -=== 3.3.3 Example for Macro ===
121 121  
134 +=== 3.3.3  Example for Macro ===
135 +
136 +
122 122  [[image:image-20220527134251-4.png]]
123 123  
124 124  MQTT Publish configure
125 125  
126 -Above screen shots shows below format:
127 127  
142 +**Above screen shots shows below format:**
143 +
128 128  * -t: CLIENTID/CHANNEL/data
129 129  * -m: DATA
130 130  
... ... @@ -134,13 +134,16 @@
134 134  
135 135  Sensor Data
136 136  
153 +
137 137  (((
138 138  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.
139 139  )))
140 140  
141 141  
142 -== 3.4 Modify the MQTT to support more options ==
143 143  
160 +== 3.4  Modify the MQTT to support more options ==
161 +
162 +
144 144  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:
145 145  
146 146  (% class="box" %)
... ... @@ -158,9 +158,9 @@
158 158   [-u username [-P password]]
159 159   [~-~-will-topic [~-~-will-payload payload] [~-~-will-qos qos] [~-~-will-retain]]
160 160   [{~-~-cafile file | ~-~-capath dir} [~-~-cert file] [~-~-key file]
161 - [~-~-ciphers ciphers] [~-~-insecure]
162 - [~-~-tls-alpn protocol]
163 - [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]]
180 + [~-~-ciphers ciphers] [~-~-insecure]
181 + [~-~-tls-alpn protocol]
182 + [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]]
164 164   [~-~-psk hex-key ~-~-psk-identity identity [~-~-ciphers ciphers]]
165 165   [~-~-proxy socks-url]
166 166   [~-~-property command identifier value]
... ... @@ -340,6 +340,7 @@
340 340  
341 341  go to mqtt configure menu
342 342  
362 +
343 343  (((
344 344  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.
345 345  )))
... ... @@ -457,6 +457,7 @@
457 457  LoRa Parameter should match
458 458  
459 459  
480 +
460 460  Below is the test result after the Arduino Sketch is running.
461 461  
462 462  [[image:image-20220527140459-19.png]]
... ... @@ -464,6 +464,7 @@
464 464  Upstream Data Flow
465 465  
466 466  
488 +
467 467  [[image:image-20220527140542-20.png]]
468 468  
469 469  Downstream Data Flow
... ... @@ -495,20 +495,18 @@
495 495  
496 496  (((
497 497  (((
498 -(% 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.
499 499  )))
500 500  )))
501 501  
502 -[[image:image-20220527141450-22.png]]
524 +[[image:image-20220613191345-4.png]]
503 503  
504 -Publish mush use META as data format for LG308
505 505  
506 506  
507 507  (% style="color:#4f81bd" %)**Step 4**(%%): Map the Device Address to Remote ID in MQTT server.
508 508  
509 -[[image:image-20220527141727-23.png]]
530 +[[image:image-20220613190635-2.png]]
510 510  
511 -Map Dev Addr to remote ID
512 512  
513 513  
514 514  (% style="color:#4f81bd" %)**Step 5: Upstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server
... ... @@ -515,24 +515,25 @@
515 515  
516 516  [[image:image-20220527141843-24.png]]
517 517  
518 -Upstream Process
519 519  
520 520  
540 +
521 521  [[image:image-20220527141933-25.png]]
522 522  
523 523  Choose ASCII Format
524 524  
525 525  
546 +
526 526  [[image:image-20220527142028-26.png]]
527 527  
528 528  LHT65 Decoder
529 529  
530 530  
552 +
531 531  (% style="color:#4f81bd" %)**Step 6: Set up subscribe**(%%)**:** Subscribe a topci for downstream.
532 532  
533 -[[image:image-20220527142115-27.png]]
555 +[[image:image-20220613191426-5.png]]
534 534  
535 -Subscribe to a topic
536 536  
537 537  
538 538  (% style="color:#4f81bd" %)**Step 7: Downstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server.
... ... @@ -539,10 +539,32 @@
539 539  
540 540  [[image:image-20220527142239-28.png]]
541 541  
542 -Downstream Flow
543 543  
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 +
544 544  (% 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"]]**
545 545  
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]]
546 546  
547 547  = 5. How to Debug =
548 548  
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
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0