Last modified by Xiaoling on 2024/08/19 15:29

From version 47.4
edited by Xiaoling
on 2022/09/17 17:04
Change comment: There is no comment for this version
To version 25.1
edited by Kilight Cao
on 2022/08/02 17:13
Change comment: Uploaded new attachment "mqtt-test.json", version {1}

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Xiaoling
1 +XWiki.Kilight
Content
... ... @@ -1,60 +1,45 @@
1 1  (% class="wikigeneratedid" %)
2 -**Table of Contents:**
2 +
3 3  
4 4  {{toc/}}
5 5  
6 += 1. Introduction =
6 6  
7 7  
8 -
9 -= 1.  Introduction =
10 -
11 -
12 12  The LPS8-V2 of Dragino LoRaWAN gateway can communicate with LoRaWAN ABP End Node, the working is based on the built-in server TTN-Stack.
13 13  
11 +It can be used in some cases such as:
14 14  
15 -**It can be used in some cases such as:**
16 -
17 17  * No internet connection.
18 18  * Users want to get data forward in the gateway and forward it to their server based on MQTT/HTTP.
19 19  * Forward the data to the built-in Application server Node-Red.
20 20  * Just storing the data on the gateway or external storage
21 21  
18 +The basic of this feature is the decoding of **LoRaWAN ABP End Node**. Requirements:
22 22  
23 -
24 -**The basic of this feature is the decoding of** (% style="color:blue" %)**LoRaWAN ABP End Node**(%%). **Requirements:**
25 -
26 26  1. LoRaWAN End Node in ABP mode. Make sure your end node works in this mode. End node most are default set to OTAA mode
27 27  1. LoRaWAN Gateway model: LPS8-V2
28 28  1. System version: Since V.12
29 29  
24 += 2. Quick Start =
30 30  
26 +The default factory version of LPS8-V2 is installed with the Built-in LoRaWAN Server: **The Things Network - Stack (Open Source 3.19 Version).**
31 31  
32 -= 2.  Quick Start =
33 -
34 -
35 -The default factory version of LPS8-V2 is installed with the Built-in LoRaWAN Server: (% style="color:blue" %)**The Things Network - Stack (Open Source 3.19 Version).**
36 -
37 37  Once the gateway is DHCP an IPV4 address, and then you can access the build-in server TTN-Stack.
38 38  
39 39  
31 += 2.1. Configure the gateway mode =
40 40  
41 -== 2.1.  Configure the gateway mode ==
33 +You can access  the gateway's Manage Web UI, via the URL ( __**//http:~/~/<hostname> or http:~/~/<local-IPV4-address> //**__) in your browser
42 42  
43 43  
44 -You can access  the gateway's Manage Web UI, via the URL ( (% style="color:blue" %)__**//http:~/~/<hostname> or http:~/~/<local-IPV4-address> //**__(%%)) in your browser
36 +=== Selecting the right frequency band ===
45 45  
46 -
47 -
48 -=== (% style="color:#037691" %)**Selecting the right frequency band**(%%) ===
49 -
50 -
51 51  [[image:image-20220802142103-1.png]]
52 52  
53 53  
41 +=== Configure the Semtech UDP forwarder ===
54 54  
55 -=== (% style="color:#037691" %)**Configure the Semtech UDP forwarder**(%%) ===
56 -
57 -
58 58  [[image:image-20220802142147-3.png]]
59 59  
60 60  
... ... @@ -61,80 +61,63 @@
61 61  
62 62  == 2.2.  Login to the built-in server TTN-Stack ==
63 63  
49 +You can access the gateway's built-in server of **The Things Network - Stack **via the URL( __**//http:~/~/<hostname>:8080 or http:~/~/<local-IPV4-address:8080> //**__) in your browser.
64 64  
65 -You can access the gateway's built-in server of (% style="color:blue" %)**The Things Network - Stack **(%%)via the URL( __**//http:~/~/<hostname>:8080 or http:~/~/<local-IPV4-address:8080> //**__) in your browser.
66 -
67 67  Such as  __**//http:~/~/dragino-54ff12:8080  or [[http:~~/~~/<Local-IPV4-Address~>>>http://<Local-IPV4-Address>]]//**__
68 68  
69 69  
70 -**Login account:**
54 +Login account:
71 71  
72 - (% style="background-color:yellow" %)**User ID: ** ** admin**
56 +**User ID: ** ** admin**
73 73  
74 - (% style="background-color:yellow" %)**Password: ** ** dragino**
58 +**Password: ** ** dragino**
75 75  
76 76  
77 77  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220725171719-1.png?width=769&height=570&rev=1.1||alt="image-20220725171719-1.png"]]
78 78  
79 79  
64 +== 2.3. Add the gateway & the sensor ==
80 80  
81 -== 2.3.  Add the gateway & the sensor ==
82 -
83 -
84 84  Here only show the image of the finish, more details about how to add the gateway & sensor refer to this wiki:
85 85  
86 86  
69 +=== Add the gateway ===
87 87  
88 -=== (% style="color:#037691" %)**Add the gateway**(%%) ===
89 -
90 -
91 91  [[image:image-20220802142946-5.png]]
92 92  
93 93  
74 +=== Add the Sensor ===
94 94  
95 -=== (% style="color:#037691" %)**Add the Sensor**(%%) ===
96 -
97 -
98 98  [[image:image-20220802143031-6.png||height="794" width="1375"]]
99 99  
100 100  
101 101  
102 -== 2.4.  Add the decoder ==
80 +== 2.4. Add the decoder ==
103 103  
104 -
105 105  If you use dragino sensors then you can find the recorder on this URL:
106 106  
107 -
108 108  [[image:image-20220802143129-7.png]]
109 109  
110 110  
111 111  
112 -== 2.5.  Visual Data ==
88 +== 2.5. Visual Data ==
113 113  
114 -
115 115  In this section, you can be seen that the payload of the sensor has been interpreted as visual data.
116 116  
117 117  And the next part will discuss where to let the data flow。
118 118  
119 -
120 120  [[image:image-20220802143214-8.png]]
121 121  
122 122  
97 += 3. Forward the data or store the data =
123 123  
124 -= 3.  Forward the data or store the data =
125 -
126 -
127 127  You are done most of the work, now you just need to plan the flow of data to where.
128 128  
101 +== 3.1. Forward data to an external server based on MQTT/HTTP. ==
129 129  
130 130  
131 -== 3.1  Forward data to an external server based on MQTT/HTTP. ==
104 +=== MQTT. ===
132 132  
133 -
134 -
135 -=== (% style="color:#037691" %)**MQTT**(%%) ===
136 -
137 -
138 138  You need to connect to this public address on your external server and subscribe to the topic **(v3/<application_name>/devices/<devices_name>/up)**.
139 139  
140 140  
... ... @@ -148,86 +148,38 @@
148 148  
149 149  
150 150  
151 -=== (% style="color:#037691" %)**HTTP**(%%) ===
119 +=== HTTP ===
152 152  
153 -
154 154  [[image:image-20220802145450-11.png||height="676" width="1164"]]
155 155  
156 156  
157 157  
158 -== 3.2  Forward data to the built-in application server Node-Red. ==
125 +== 3.2 Forward data to the built-in application server Node-Red. ==
159 159  
160 160  
161 161  [[image:image-20220802150715-1.png||height="739" width="1171"]]
162 162  
163 163  
131 +== 3.3 Just storing the data on the gateway or external storage. ==
164 164  
165 -== 3.3  Just storing the data on the gateway or external storage. ==
166 166  
167 167  
168 -Data can be stored or read by subscribing to topics: (% style="color:#037691" %)**v3/<application_name>/devices/<devices_name>/up**.
169 169  
170 -Then add the storage node **(write file)**, Users can download the Node-Red flowchart from this link to test data storage:[[attach:test_data_storage.json||target="_blank"]]
136 += 4. Sent the downlink to the sensor =
171 171  
172 -After the configuration is complete, users can find the node logs in the root/ directory
173 173  
139 +Downlinks can be scheduled by publishing the message to the topic v3/{application id}/devices/{device id}/down/push.
174 174  
175 -[[image:image-20220806153310-11.png||height="588" width="1166"]]
141 +**Note**: **Remember that the format of this topic for The Things Stack Open Source deployment would be v3/{application id}/devices/{device id}/down/push.**
176 176  
177 -
178 -[[image:image-20220806153112-9.png||height="575" width="1167"]]
179 -
180 -
181 -
182 -
183 -[[image:image-20220806153048-8.png||height="608" width="1165"]]
184 -
185 -
186 -[[image:image-20220806153150-10.png]]
187 -
188 -
189 -
190 -= 4.  Sent the downlink to the sensor =
191 -
192 -
193 -Downlinks can be scheduled by publishing the message to the topic (% style="color:#037691" %)** v3/<application_name>/devices/<devices_name>/down/push**.
194 -
195 -(% style="color:red" %)**Note**: **Remember that the format of this topic for The Things Stack Open Source deployment would be (v3/<application_name>/devices/<devices_name>/down/push).**
196 -
197 197  [[MQTT Server ~| The Things Stack for LoRaWAN (thethingsindustries.com)>>url:https://www.thethingsindustries.com/docs/integrations/mqtt/]]
198 198  
199 199  
200 200  Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:
201 201  
202 -(% class="box" %)
203 -(((
204 -{
205 - "downlinks": [{
206 - "f_port": 2,
207 - "frm_payload": "AwAA",  
208 - "priority": "HIGH",
209 - "confirmed": true
210 - }]
211 -}
212 -)))
148 +[[image:image-20220802164437-2.png||height="493" width="840"]]
213 213  
214 -[[image:image-20220802170358-4.png||height="656" width="898"]]
215 215  
216 -
217 217  [[image:image-20220802164844-3.png||height="345" width="1131"]]
218 218  
219 -
220 -
221 -**Node-red**
222 -
223 -Users can download the Node-Red flowchart for testing [[attach:mqtt-test.json||target="_blank"]]
224 -
225 -
226 -[[image:image-20220802172021-6.png||height="455" width="1240"]]
227 -
228 -
229 -
230 -= 5.  Trouble Shootings =
231 -
232 -
233 -
153 += 5. Trouble Shootings =
image-20220802171735-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -33.6 KB
Content
image-20220802172021-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -124.8 KB
Content
image-20220806144336-1.jpeg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -112.1 KB
Content
image-20220806144426-2.jpeg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -133.3 KB
Content
image-20220806144606-3.jpeg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -113.4 KB
Content
image-20220806152748-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -185.5 KB
Content
image-20220806152825-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -188.9 KB
Content
image-20220806152923-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -120.8 KB
Content
image-20220806153009-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -99.4 KB
Content
image-20220806153048-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -104.5 KB
Content
image-20220806153112-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -190.1 KB
Content
image-20220806153150-10.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -60.9 KB
Content
image-20220806153310-11.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -167.8 KB
Content
test_data_storage.json
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -4.1 KB
Content
... ... @@ -1,175 +1,0 @@
1 -[
2 - {
3 - "id": "f98b9b23144085b5",
4 - "type": "tab",
5 - "label": "流程 1",
6 - "disabled": false,
7 - "info": "",
8 - "env": []
9 - },
10 - {
11 - "id": "d60e334e17faa4bf",
12 - "type": "mqtt in",
13 - "z": "f98b9b23144085b5",
14 - "name": "lt22222",
15 - "topic": "v3/opwwc/devices/lt21453sa4d65sa4/#",
16 - "qos": "0",
17 - "datatype": "json",
18 - "broker": "8a5006295bbbe3a5",
19 - "nl": false,
20 - "rap": true,
21 - "rh": 0,
22 - "inputs": 0,
23 - "x": 190,
24 - "y": 440,
25 - "wires": [
26 - [
27 - "d50df6c2befc67c2"
28 - ]
29 - ]
30 - },
31 - {
32 - "id": "90106832d11c1e01",
33 - "type": "mqtt out",
34 - "z": "f98b9b23144085b5",
35 - "name": "Downlink",
36 - "topic": "v3/opwwc/devices/eui-70b3d57ed00538acsss/down/push",
37 - "qos": "0",
38 - "retain": "",
39 - "respTopic": "",
40 - "contentType": "",
41 - "userProps": "",
42 - "correl": "",
43 - "expiry": "",
44 - "broker": "8a5006295bbbe3a5",
45 - "x": 580,
46 - "y": 680,
47 - "wires": []
48 - },
49 - {
50 - "id": "39f27fd319d2476e",
51 - "type": "inject",
52 - "z": "f98b9b23144085b5",
53 - "name": "Activate",
54 - "props": [
55 - {
56 - "p": "payload"
57 - },
58 - {
59 - "p": "topic",
60 - "vt": "str"
61 - }
62 - ],
63 - "repeat": "",
64 - "crontab": "",
65 - "once": true,
66 - "onceDelay": 0.1,
67 - "topic": "",
68 - "payload": "",
69 - "payloadType": "date",
70 - "x": 220,
71 - "y": 680,
72 - "wires": [
73 - [
74 - "ad20a4e36d612089"
75 - ]
76 - ]
77 - },
78 - {
79 - "id": "ad20a4e36d612089",
80 - "type": "template",
81 - "z": "f98b9b23144085b5",
82 - "name": "Publish",
83 - "field": "payload",
84 - "fieldType": "msg",
85 - "format": "handlebars",
86 - "syntax": "mustache",
87 - "template": "{\n \"downlinks\": [{\n \"f_port\": 2,\n \"frm_payload\": \"AwAA\",\n \"priority\": \"HIGH\",\n \"confirmed\": true\n }]\n}",
88 - "output": "str",
89 - "x": 400,
90 - "y": 680,
91 - "wires": [
92 - [
93 - "90106832d11c1e01"
94 - ]
95 - ]
96 - },
97 - {
98 - "id": "d50df6c2befc67c2",
99 - "type": "function",
100 - "z": "f98b9b23144085b5",
101 - "name": "",
102 - "func": "var data=msg.payload\nmsg.payload=data[\"uplink_message\"][\"decoded_payload\"]\nreturn msg;",
103 - "outputs": 1,
104 - "noerr": 0,
105 - "initialize": "",
106 - "finalize": "",
107 - "libs": [],
108 - "x": 430,
109 - "y": 440,
110 - "wires": [
111 - [
112 - "3e2fc52d9030e146",
113 - "d74bd02ca7b40615"
114 - ]
115 - ]
116 - },
117 - {
118 - "id": "3e2fc52d9030e146",
119 - "type": "debug",
120 - "z": "f98b9b23144085b5",
121 - "name": "",
122 - "active": true,
123 - "tosidebar": true,
124 - "console": false,
125 - "tostatus": false,
126 - "complete": "false",
127 - "statusVal": "",
128 - "statusType": "auto",
129 - "x": 670,
130 - "y": 420,
131 - "wires": []
132 - },
133 - {
134 - "id": "d74bd02ca7b40615",
135 - "type": "file",
136 - "z": "f98b9b23144085b5",
137 - "name": "",
138 - "filename": "/root/ttn_lt22222.log",
139 - "appendNewline": true,
140 - "createDir": true,
141 - "overwriteFile": "false",
142 - "encoding": "none",
143 - "x": 660,
144 - "y": 300,
145 - "wires": [
146 - []
147 - ]
148 - },
149 - {
150 - "id": "8a5006295bbbe3a5",
151 - "type": "mqtt-broker",
152 - "name": "",
153 - "broker": "127.0.0.1",
154 - "port": "1883",
155 - "clientid": "",
156 - "autoConnect": true,
157 - "usetls": false,
158 - "protocolVersion": "4",
159 - "keepalive": "60",
160 - "cleansession": true,
161 - "birthTopic": "",
162 - "birthQos": "0",
163 - "birthPayload": "",
164 - "birthMsg": {},
165 - "closeTopic": "",
166 - "closeQos": "0",
167 - "closePayload": "",
168 - "closeMsg": {},
169 - "willTopic": "",
170 - "willQos": "0",
171 - "willPayload": "",
172 - "willMsg": {},
173 - "sessionExpiry": ""
174 - }
175 -]