Changes for page Communicate with ABP End Node on the LPS8-V2 Gateway
Last modified by Xiaoling on 2024/08/19 15:29
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 12 added, 0 removed)
- image-20220806144336-1.jpeg
- image-20220806144426-2.jpeg
- image-20220806144606-3.jpeg
- image-20220806152748-4.png
- image-20220806152825-5.png
- image-20220806152923-6.png
- image-20220806153009-7.png
- image-20220806153048-8.png
- image-20220806153112-9.png
- image-20220806153150-10.png
- image-20220806153310-11.png
- test_data_storage.json
Details
- Page properties
-
- Content
-
... ... @@ -11,6 +11,7 @@ 11 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 14 + 14 14 **It can be used in some cases such as:** 15 15 16 16 * No internet connection. ... ... @@ -19,8 +19,6 @@ 19 19 * Just storing the data on the gateway or external storage 20 20 21 21 22 - 23 - 24 24 **The basic of this feature is the decoding of** (% style="color:blue" %)**LoRaWAN ABP End Node**(%%). **Requirements:** 25 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 ... ... @@ -29,8 +29,6 @@ 29 29 30 30 31 31 32 - 33 - 34 34 = 2. Quick Start = 35 35 36 36 ... ... @@ -39,7 +39,6 @@ 39 39 Once the gateway is DHCP an IPV4 address, and then you can access the build-in server TTN-Stack. 40 40 41 41 42 - 43 43 == 2.1. Configure the gateway mode == 44 44 45 45 ... ... @@ -46,7 +46,6 @@ 46 46 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 47 47 48 48 49 - 50 50 === (% style="color:#037691" %)**Selecting the right frequency band**(%%) === 51 51 52 52 ... ... @@ -53,7 +53,6 @@ 53 53 [[image:image-20220802142103-1.png]] 54 54 55 55 56 - 57 57 === (% style="color:#037691" %)**Configure the Semtech UDP forwarder**(%%) === 58 58 59 59 ... ... @@ -60,16 +60,15 @@ 60 60 [[image:image-20220802142147-3.png]] 61 61 62 62 63 - 64 64 == 2.2. Login to the built-in server TTN-Stack == 65 65 66 66 67 -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. 60 +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. 68 68 69 69 Such as __**//http:~/~/dragino-54ff12:8080 or [[http:~~/~~/<Local-IPV4-Address~>>>http://<Local-IPV4-Address>]]//**__ 70 70 71 71 72 -Login account: 65 +**Login account:** 73 73 74 74 (% style="background-color:yellow" %)**User ID: ** ** admin** 75 75 ... ... @@ -79,7 +79,6 @@ 79 79 [[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"]] 80 80 81 81 82 - 83 83 == 2.3. Add the gateway & the sensor == 84 84 85 85 ... ... @@ -86,85 +86,112 @@ 86 86 Here only show the image of the finish, more details about how to add the gateway & sensor refer to this wiki: 87 87 88 88 89 -=== Add the gateway === 81 +=== (% style="color:#037691" %)**Add the gateway**(%%) === 90 90 83 + 91 91 [[image:image-20220802142946-5.png]] 92 92 93 93 94 -=== Add the Sensor === 87 +=== (% style="color:#037691" %)**Add the Sensor**(%%) === 95 95 89 + 96 96 [[image:image-20220802143031-6.png||height="794" width="1375"]] 97 97 98 98 93 +== 2.4. Add the decoder == 99 99 100 -== 2.4. Add the decoder == 101 101 102 102 If you use dragino sensors then you can find the recorder on this URL: 103 103 98 + 104 104 [[image:image-20220802143129-7.png]] 105 105 106 106 102 +== 2.5. Visual Data == 107 107 108 -== 2.5. Visual Data == 109 109 110 110 In this section, you can be seen that the payload of the sensor has been interpreted as visual data. 111 111 112 112 And the next part will discuss where to let the data flow。 113 113 109 + 114 114 [[image:image-20220802143214-8.png]] 115 115 116 116 117 -= 3. Forward the data or store the data = 113 += 3. Forward the data or store the data = 118 118 115 + 119 119 You are done most of the work, now you just need to plan the flow of data to where. 120 120 121 -== 3.1. Forward data to an external server based on MQTT/HTTP. == 122 122 119 +== 3.1 Forward data to an external server based on MQTT/HTTP. == 123 123 124 -=== MQTT. === 125 125 126 - Youneedto connect tothis public addresson yourexternalserver and subscribeto the topic**(v3/<application_name>/devices/<devices_name>/up)**.122 +=== (% style="color:blue" %)**MQTT**(%%) === 127 127 128 128 125 +You need to connect to this public address on your external server and subscribe to the topic (% style="color:#037691" %)**(v3/<application_name>/devices/<devices_name>/up)**. 126 + 127 + 129 129 [[image:image-20220802144754-9.png]] 130 130 131 131 132 -**subscribe to the topic and get the data** 131 +(% style="color:#037691" %)**subscribe to the topic and get the data** 133 133 134 134 [[image:image-20220802145408-10.png]] 135 135 136 136 137 137 137 +=== (% style="color:blue" %)**HTTP**(%%) === 138 138 139 -=== HTTP === 140 140 141 141 [[image:image-20220802145450-11.png||height="676" width="1164"]] 142 142 143 143 143 +== 3.2 Forward data to the built-in application server Node-Red. == 144 144 145 -== 3.2 Forward data to the built-in application server Node-Red. == 146 146 147 - 148 148 [[image:image-20220802150715-1.png||height="739" width="1171"]] 149 149 150 150 151 -== 3.3 Just storing the data on the gateway or external storage. == 149 +== 3.3 Just storing the data on the gateway or external storage. == 152 152 153 153 152 +Data can be stored or read by subscribing to topics: (% style="color:#037691" %)**v3/<application_name>/devices/<devices_name>/up**. 154 154 154 +Then add the storage node (% style="color:#037691" %)**(write file)**(%%), Users can download the Node-Red flowchart from this link to test data storage:[[attach:test_data_storage.json||target="_blank"]] 155 155 156 - = 4. Sent thedownlinkto thesensor=156 +After the configuration is complete, users can find the node logs in the root/ directory 157 157 158 158 159 - Downlinks can bescheduled bypublishingthemessage to thetopic**v3/<application_name>/devices/<devices_name>/down/push**.159 +[[image:image-20220806153310-11.png||height="588" width="1166"]] 160 160 161 -**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).** 162 162 162 +[[image:image-20220806153112-9.png||height="575" width="1167"]] 163 + 164 + 165 +[[image:image-20220806153048-8.png||height="608" width="1165"]] 166 + 167 + 168 +[[image:image-20220806153150-10.png]] 169 + 170 + 171 += 4. Sent the downlink to the sensor = 172 + 173 + 174 +Downlinks can be scheduled by publishing the message to the topic (% style="color:#037691" %)** v3/<application_name>/devices/<devices_name>/down/push**. 175 + 176 + 177 +(% 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).** 178 + 179 + 163 163 [[MQTT Server ~| The Things Stack for LoRaWAN (thethingsindustries.com)>>url:https://www.thethingsindustries.com/docs/integrations/mqtt/]] 164 164 165 165 166 -Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:183 +Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. 167 167 185 +Example: 186 + 168 168 (% class="box" %) 169 169 ((( 170 170 { ... ... @@ -183,7 +183,7 @@ 183 183 [[image:image-20220802164844-3.png||height="345" width="1131"]] 184 184 185 185 186 -Node-red 205 +(% style="color:blue" %)**Node-red** 187 187 188 188 Users can download the Node-Red flowchart for testing [[attach:mqtt-test.json||target="_blank"]] 189 189 ... ... @@ -190,4 +190,8 @@ 190 190 191 191 [[image:image-20220802172021-6.png||height="455" width="1240"]] 192 192 193 -= 5. Trouble Shootings = 212 + 213 += 5. Trouble Shootings = 214 + 215 + 216 +
- image-20220806144336-1.jpeg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +112.1 KB - Content
- image-20220806144426-2.jpeg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +133.3 KB - Content
- image-20220806144606-3.jpeg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +113.4 KB - Content
- image-20220806152748-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +185.5 KB - Content
- image-20220806152825-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +188.9 KB - Content
- image-20220806152923-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +120.8 KB - Content
- image-20220806153009-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +99.4 KB - Content
- image-20220806153048-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +104.5 KB - Content
- image-20220806153112-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +190.1 KB - Content
- image-20220806153150-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +60.9 KB - Content
- image-20220806153310-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +167.8 KB - Content
- test_data_storage.json
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +4.1 KB - Content
-
... ... @@ -1,0 +1,175 @@ 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 +]