-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflows.json
180 lines (180 loc) · 33.1 KB
/
flows.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
[
{
"id": "17461278.af96ee",
"type": "udp in",
"z": "ff31324a.133b3",
"name": "",
"iface": "",
"port": "1688",
"ipv": "udp4",
"multicast": "false",
"group": "",
"datatype": "buffer",
"x": 200,
"y": 160,
"wires": [
[
"ff549a77.0e10c8"
]
]
},
{
"id": "ff549a77.0e10c8",
"type": "function",
"z": "ff31324a.133b3",
"name": "Remove Binary Prefix and parse DevAddr",
"func": "// https://github.com/Lora-net/packet_forwarder/blob/master/PROTOCOL.TXT\n\nfunction reverse (src) {\n var buffer = Buffer.allocUnsafe(src.length)\n for (var i = 0, j = src.length - 1; i <= j; ++i, --j) {\n buffer[i] = src[j]\n buffer[j] = src[i]\n }\n \n return buffer\n}\n\n\ninputBuf = msg.payload;\nfullMessage = inputBuf.toString(\"ascii\",12);\nmessage = JSON.parse(fullMessage);\n\n//head_raw=msg.payload.substring(0,12);\n//head = Buffer.from(head_raw,'binary').toString(\"hex\");\n\ngwmac_raw=msg.payload.slice(4,12);\ngwmac = gwmac_raw.toString(\"hex\");\n\nif (message.rxpk && message.rxpk.length > 0 && message.rxpk[0].data) {\n var payloadBase64 = message.rxpk[0].data;\n var bufferDevice = Buffer.from(payloadBase64, 'base64').slice(1,5);\n bufferDevice = reverse(bufferDevice);\n message.rxpk[0].DevAddr = bufferDevice.toString('hex').toUpperCase();\n \n var frameCounter = Buffer.from(payloadBase64, 'base64').slice(6,8);\n frameCounter = reverse(frameCounter);\n message.rxpk[0].FrameCounter = parseInt(frameCounter.toString('hex'), 16);\n}\n\nmsg.payload = message;\nmsg.payload.gateway = \"eui-\" + gwmac;\n//msg.payload.head = head;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 460,
"y": 160,
"wires": [
[
"fa0b35fa.b56618"
]
]
},
{
"id": "83823ed7.9e038",
"type": "function",
"z": "ff31324a.133b3",
"name": "Prepare for influx",
"func": "// Filter if no received packet (e.g. status)\nif (!msg.payload.rxpk) {\n return;\n}\n\n// Extract all information\nDevAddr = msg.payload.rxpk[0].DevAddr;\nframeCounter = msg.payload.rxpk[0].FrameCounter;\nrawData = msg.payload.rxpk[0].data;\n\nDataRate = msg.payload.rxpk[0].datr;\nSNR = msg.payload.rxpk[0].lsnr;\nRSSI = msg.payload.rxpk[0].rssi;\nfrequency = msg.payload.rxpk[0].freq;\ncodingRate = msg.payload.rxpk[0].codr;\nairtime = msg.payload.airtime;\n\ntry {\n network = msg.network.operator\n} catch(err) {\n network = \"(unknown)\"\n}\n\nGatewayId = msg.payload.gateway;\n\n// Prepare for fields and tags for influxdb\nmsg.payload = [{\n rawData: rawData,\n SNR: SNR,\n RSSI: RSSI,\n frequency: frequency,\n codingRate: codingRate,\n frameCounter: frameCounter,\n airtime: airtime\n},\n{\n DevAddr: DevAddr,\n GatewayId: GatewayId,\n DataRate: DataRate,\n Network: network\n}];\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 270,
"y": 280,
"wires": [
[
"bf85d786.e714f8"
]
]
},
{
"id": "bf85d786.e714f8",
"type": "influxdb out",
"z": "ff31324a.133b3",
"influxdb": "c6ab92ee.256e8",
"name": "",
"measurement": "gateway-raw-packets",
"precision": "",
"retentionPolicy": "",
"x": 550,
"y": 280,
"wires": []
},
{
"id": "43cad400.caf38c",
"type": "debug",
"z": "ff31324a.133b3",
"name": "",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 830,
"y": 280,
"wires": []
},
{
"id": "82f9b47b.8e25d8",
"type": "function",
"z": "ff31324a.133b3",
"name": "Match LoRaWAN Network",
"func": "// Filter if no received packet (e.g. status)\nif (!msg.payload.rxpk) {\n return;\n}\n\n// From https://www.thethingsnetwork.org/docs/lorawan/prefix-assignments.html\n// as of 2020-03-03\nvar networks = [ {\"operator\": \"Private/experimental nodes\", \"netid\": \"000000\", \"prefix\":\"00000000/7\", \"range_start\": \"00000000\", \"range_end\":\"01FFFFFF\", \"region\": \"Local\"},\n{\"operator\": \"Private/experimental nodes\", \"netid\": \"000001\", \"prefix\":\"02000000/7\", \"range_start\": \"02000000\", \"range_end\":\"03FFFFFF\", \"region\": \"Local\"},\n{\"operator\": \"Actility\", \"netid\": \"000002\", \"prefix\":\"04000000/7\", \"range_start\": \"04000000\", \"range_end\":\"05FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Proximus\", \"netid\": \"000003\", \"prefix\":\"06000000/7\", \"range_start\": \"06000000\", \"range_end\":\"07FFFFFF\", \"region\": \"Europe\"},\n{\"operator\": \"Swisscom\", \"netid\": \"000004\", \"prefix\":\"08000000/7\", \"range_start\": \"08000000\", \"range_end\":\"09FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000005\", \"prefix\":\"0A000000/7\", \"range_start\": \"0A000000\", \"range_end\":\"0BFFFFFF\", \"region\": \"\"},\n{\"operator\": \"La Poste\", \"netid\": \"000006\", \"prefix\":\"0C000000/7\", \"range_start\": \"0C000000\", \"range_end\":\"0DFFFFFF\", \"region\": \"Europe\"},\n{\"operator\": \"Bouygues Telecom\", \"netid\": \"000007\", \"prefix\":\"0E000000/7\", \"range_start\": \"0E000000\", \"range_end\":\"0FFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Orbiwise\", \"netid\": \"000008\", \"prefix\":\"10000000/7\", \"range_start\": \"10000000\", \"range_end\":\"11FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"SENET\", \"netid\": \"000009\", \"prefix\":\"12000000/7\", \"range_start\": \"12000000\", \"range_end\":\"13FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"KPN\", \"netid\": \"00000A\", \"prefix\":\"14000000/7\", \"range_start\": \"14000000\", \"range_end\":\"15FFFFFF\", \"region\": \"Europe\"},\n{\"operator\": \"EveryNet\", \"netid\": \"00000B\", \"prefix\":\"16000000/7\", \"range_start\": \"16000000\", \"range_end\":\"17FFFFFF\", \"region\": \"Russia\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00000C\", \"prefix\":\"18000000/7\", \"range_start\": \"18000000\", \"range_end\":\"19FFFFFF\", \"region\": \"\"},\n{\"operator\": \"SK Telecom\", \"netid\": \"00000D\", \"prefix\":\"1A000000/7\", \"range_start\": \"1A000000\", \"range_end\":\"1BFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"SagemCom\", \"netid\": \"00000E\", \"prefix\":\"1C000000/7\", \"range_start\": \"1C000000\", \"range_end\":\"1DFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Orange\", \"netid\": \"00000F\", \"prefix\":\"1E000000/7\", \"range_start\": \"1E000000\", \"range_end\":\"1FFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"A2A Smart City\", \"netid\": \"000010\", \"prefix\":\"20000000/7\", \"range_start\": \"20000000\", \"range_end\":\"21FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"TATA Communication\", \"netid\": \"000011\", \"prefix\":\"22000000/7\", \"range_start\": \"22000000\", \"range_end\":\"23FFFFFF\", \"region\": \"India\"},\n{\"operator\": \"Kerlink\", \"netid\": \"000012\", \"prefix\":\"24000000/7\", \"range_start\": \"24000000\", \"range_end\":\"25FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"The Things Network\", \"netid\": \"000013\", \"prefix\":\"26000000/7\", \"range_start\": \"26000000\", \"range_end\":\"27FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"DIGIMONDO GmbH\", \"netid\": \"000014\", \"prefix\":\"28000000/7\", \"range_start\": \"28000000\", \"range_end\":\"29FFFFFF\", \"region\": \"Germany, Switzerland, China\"},\n{\"operator\": \"Cisco Systems\", \"netid\": \"000015\", \"prefix\":\"2A000000/7\", \"range_start\": \"2A000000\", \"range_end\":\"2BFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000016\", \"prefix\":\"2C000000/7\", \"range_start\": \"2C000000\", \"range_end\":\"2DFFFFFF\", \"region\": \"\"},\n{\"operator\": \"MultiTech Systems\", \"netid\": \"000017\", \"prefix\":\"2E000000/7\", \"range_start\": \"2E000000\", \"range_end\":\"2FFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Loriot\", \"netid\": \"000018\", \"prefix\":\"30000000/7\", \"range_start\": \"30000000\", \"range_end\":\"31FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"NNNCo\", \"netid\": \"000019\", \"prefix\":\"32000000/7\", \"range_start\": \"32000000\", \"range_end\":\"33FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00001A\", \"prefix\":\"34000000/7\", \"range_start\": \"34000000\", \"range_end\":\"35FFFFFF\", \"region\": \"\"},\n{\"operator\": \"TrackNet\", \"netid\": \"00001B\", \"prefix\":\"36000000/7\", \"range_start\": \"36000000\", \"range_end\":\"37FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Lar.Tech\", \"netid\": \"00001C\", \"prefix\":\"38000000/7\", \"range_start\": \"38000000\", \"range_end\":\"39FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00001D\", \"prefix\":\"3A000000/7\", \"range_start\": \"3A000000\", \"range_end\":\"3BFFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00001E\", \"prefix\":\"3C000000/7\", \"range_start\": \"3C000000\", \"range_end\":\"3DFFFFFF\", \"region\": \"\"},\n{\"operator\": \"Axatel\", \"netid\": \"00001F\", \"prefix\":\"3E000000/7\", \"range_start\": \"3E000000\", \"range_end\":\"3FFFFFFF\", \"region\": \"Italy\"},\n{\"operator\": \"Telent (Netzikon)\", \"netid\": \"000020\", \"prefix\":\"40000000/7\", \"range_start\": \"40000000\", \"range_end\":\"41FFFFFF\", \"region\": \"Germany\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000021\", \"prefix\":\"42000000/7\", \"range_start\": \"42000000\", \"range_end\":\"43FFFFFF\", \"region\": \"\"},\n{\"operator\": \"Comcast\", \"netid\": \"000022\", \"prefix\":\"44000000/7\", \"range_start\": \"44000000\", \"range_end\":\"45FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Ventia\", \"netid\": \"000023\", \"prefix\":\"46000000/7\", \"range_start\": \"46000000\", \"range_end\":\"47FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000024\", \"prefix\":\"48000000/7\", \"range_start\": \"48000000\", \"range_end\":\"49FFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000025\", \"prefix\":\"4A000000/7\", \"range_start\": \"4A000000\", \"range_end\":\"4BFFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000026\", \"prefix\":\"4C000000/7\", \"range_start\": \"4C000000\", \"range_end\":\"4DFFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000027\", \"prefix\":\"4E000000/7\", \"range_start\": \"4E000000\", \"range_end\":\"4FFFFFFF\", \"region\": \"\"},\n{\"operator\": \"VADSLYFE\", \"netid\": \"000028\", \"prefix\":\"50000000/7\", \"range_start\": \"50000000\", \"range_end\":\"51FFFFFF\", \"region\": \"Malaysia\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"000029\", \"prefix\":\"52000000/7\", \"range_start\": \"52000000\", \"range_end\":\"53FFFFFF\", \"region\": \"\"},\n{\"operator\": \"M2B Communications\", \"netid\": \"00002A\", \"prefix\":\"54000000/7\", \"range_start\": \"54000000\", \"range_end\":\"55FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"ZTE\", \"netid\": \"00002B\", \"prefix\":\"56000000/7\", \"range_start\": \"56000000\", \"range_end\":\"57FFFFFF\", \"region\": \"China\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00002C\", \"prefix\":\"58000000/7\", \"range_start\": \"58000000\", \"range_end\":\"59FFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00002D\", \"prefix\":\"5A000000/7\", \"range_start\": \"5A000000\", \"range_end\":\"5BFFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00002E\", \"prefix\":\"5C000000/7\", \"range_start\": \"5C000000\", \"range_end\":\"5DFFFFFF\", \"region\": \"\"},\n{\"operator\": \"_unassigned_\", \"netid\": \"00002F\", \"prefix\":\"5E000000/7\", \"range_start\": \"5E000000\", \"range_end\":\"5FFFFFFF\", \"region\": \"\"},\n{\"operator\": \"SoftBank\", \"netid\": \"000030\", \"prefix\":\"60000000/7\", \"range_start\": \"60000000\", \"range_end\":\"61FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Inmarsat\", \"netid\": \"000031\", \"prefix\":\"62000000/7\", \"range_start\": \"62000000\", \"range_end\":\"63FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Gemalto\", \"netid\": \"000032\", \"prefix\":\"64000000/7\", \"range_start\": \"64000000\", \"range_end\":\"65FFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Alibaba Iot BU\", \"netid\": \"000033\", \"prefix\":\"66000000/7\", \"range_start\": \"66000000\", \"range_end\":\"67FFFFFF\", \"region\": \"China\"},\n{\"operator\": \"ER-Telecom Holding\", \"netid\": \"000034\", \"prefix\":\"68000000/7\", \"range_start\": \"68000000\", \"range_end\":\"69FFFFFF\", \"region\": \"Russian Federation\"},\n{\"operator\": \"Shenzhen Tencent Computer Systems Company Limited\", \"netid\": \"000035\", \"prefix\":\"6A000000/7\", \"range_start\": \"6A000000\", \"range_end\":\"6BFFFFFF\", \"region\": \"China\"},\n{\"operator\": \"Netze BW GmbH\", \"netid\": \"000036\", \"prefix\":\"6C000000/7\", \"range_start\": \"6C000000\", \"range_end\":\"6DFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"Tektelic\", \"netid\": \"000037\", \"prefix\":\"6E000000/7\", \"range_start\": \"6E000000\", \"range_end\":\"6FFFFFFF\", \"region\": \"World\"},\n{\"operator\": \"RESERVED\", \"netid\": \"600000\", \"prefix\":\"E0000000/14\", \"range_start\": \"E0000000\", \"range_end\":\"E003FFFF\", \"region\": \"\"},\n{\"operator\": \"Digita\", \"netid\": \"600001\", \"prefix\":\"E0040000/14\", \"range_start\": \"E0040000\", \"range_end\":\"E007FFFF\", \"region\": \"Finland\"},\n{\"operator\": \"Blink\", \"netid\": \"600002\", \"prefix\":\"E0080000/14\", \"range_start\": \"E0080000\", \"range_end\":\"E00BFFFF\", \"region\": \"Sweden, Norway\"},\n{\"operator\": \"QuaeNet Inc.\", \"netid\": \"600003\", \"prefix\":\"E00C0000/14\", \"range_start\": \"E00C0000\", \"range_end\":\"E00FFFFF\", \"region\": \"World\"},\n{\"operator\": \"eleven-x\", \"netid\": \"600004\", \"prefix\":\"E0100000/14\", \"range_start\": \"E0100000\", \"range_end\":\"E013FFFF\", \"region\": \"North and South America\"},\n{\"operator\": \"IoT Network AS\", \"netid\": \"600005\", \"prefix\":\"E0140000/14\", \"range_start\": \"E0140000\", \"range_end\":\"E017FFFF\", \"region\": \"World\"},\n{\"operator\": \"Senra Tech\", \"netid\": \"600006\", \"prefix\":\"E0180000/14\", \"range_start\": \"E0180000\", \"range_end\":\"E01BFFFF\", \"region\": \"Asia, Middle East\"},\n{\"operator\": \"EDF\", \"netid\": \"600007\", \"prefix\":\"E01C0000/14\", \"range_start\": \"E01C0000\", \"range_end\":\"E01FFFFF\", \"region\": \"World\"},\n{\"operator\": \"Unidata\", \"netid\": \"600008\", \"prefix\":\"E0200000/14\", \"range_start\": \"E0200000\", \"range_end\":\"E023FFFF\", \"region\": \"Italy\"},\n{\"operator\": \"SEAS-NVE\", \"netid\": \"600009\", \"prefix\":\"E0240000/14\", \"range_start\": \"E0240000\", \"range_end\":\"E027FFFF\", \"region\": \"Scandinavia\"},\n{\"operator\": \"Öresundskraft\", \"netid\": \"60000A\", \"prefix\":\"E0280000/14\", \"range_start\": \"E0280000\", \"range_end\":\"E02BFFFF\", \"region\": \"Scandinavia\"},\n{\"operator\": \"Ad Net Market Media\", \"netid\": \"60000B\", \"prefix\":\"E02C0000/14\", \"range_start\": \"E02C0000\", \"range_end\":\"E02FFFFF\", \"region\": \"Romania\"},\n{\"operator\": \"CAT Telecom\", \"netid\": \"60000C\", \"prefix\":\"E0300000/14\", \"range_start\": \"E0300000\", \"range_end\":\"E033FFFF\", \"region\": \"Thailand\"},\n{\"operator\": \"SenSys\", \"netid\": \"60000D\", \"prefix\":\"E0340000/14\", \"range_start\": \"E0340000\", \"range_end\":\"E037FFFF\", \"region\": \"World\"},\n{\"operator\": \"Spark\", \"netid\": \"60000E\", \"prefix\":\"E0380000/14\", \"range_start\": \"E0380000\", \"range_end\":\"E03BFFFF\", \"region\": \"World\"},\n{\"operator\": \"ThingPark China\", \"netid\": \"60000F\", \"prefix\":\"E03C0000/14\", \"range_start\": \"E03C0000\", \"range_end\":\"E03FFFFF\", \"region\": \"China\"},\n{\"operator\": \"Senet\", \"netid\": \"600010\", \"prefix\":\"E0400000/14\", \"range_start\": \"E0400000\", \"range_end\":\"E043FFFF\", \"region\": \"World\"},\n{\"operator\": \"SenseWay\", \"netid\": \"600011\", \"prefix\":\"E0440000/14\", \"range_start\": \"E0440000\", \"range_end\":\"E047FFFF\", \"region\": \"Japan\"},\n{\"operator\": \"Packetworx\", \"netid\": \"600012\", \"prefix\":\"E0480000/14\", \"range_start\": \"E0480000\", \"range_end\":\"E04BFFFF\", \"region\": \"Philippines\"},\n{\"operator\": \"Actility\", \"netid\": \"600013\", \"prefix\":\"E04C0000/14\", \"range_start\": \"E04C0000\", \"range_end\":\"E04FFFFF\", \"region\": \"World\"},\n{\"operator\": \"Kerlink\", \"netid\": \"600014\", \"prefix\":\"E0500000/14\", \"range_start\": \"E0500000\", \"range_end\":\"E053FFFF\", \"region\": \"World\"},\n{\"operator\": \"Alibaba IoT BU\", \"netid\": \"600015\", \"prefix\":\"E0540000/14\", \"range_start\": \"E0540000\", \"range_end\":\"E057FFFF\", \"region\": \"China\"},\n{\"operator\": \"Cisco\", \"netid\": \"600016\", \"prefix\":\"E0580000/14\", \"range_start\": \"E0580000\", \"range_end\":\"E05BFFFF\", \"region\": \"World\"},\n{\"operator\": \"Schneider Electric\", \"netid\": \"600017\", \"prefix\":\"E05C0000/14\", \"range_start\": \"E05C0000\", \"range_end\":\"E05FFFFF\", \"region\": \"Global\"},\n{\"operator\": \"ZENNER\", \"netid\": \"600018\", \"prefix\":\"E0600000/14\", \"range_start\": \"E0600000\", \"range_end\":\"E063FFFF\", \"region\": \"Global\"},\n{\"operator\": \"Boston Networks Limited\", \"netid\": \"600019\", \"prefix\":\"E0640000/14\", \"range_start\": \"E0640000\", \"range_end\":\"E067FFFF\", \"region\": \"Europe\"},\n{\"operator\": \"NEC Corporation\", \"netid\": \"60001A\", \"prefix\":\"E0680000/14\", \"range_start\": \"E0680000\", \"range_end\":\"E06BFFFF\", \"region\": \"Japan\"},\n{\"operator\": \"Shenzhen Tencent Computer Systems Company Limited\", \"netid\": \"60001B\", \"prefix\":\"E06C0000/14\", \"range_start\": \"E06C0000\", \"range_end\":\"E06FFFFF\", \"region\": \"China\"},\n{\"operator\": \"MachineQ/Comcast\", \"netid\": \"60001C\", \"prefix\":\"E0700000/14\", \"range_start\": \"E0700000\", \"range_end\":\"E073FFFF\", \"region\": \"World\"},\n{\"operator\": \"NTT (Nippon Telephone and Telegraph)\", \"netid\": \"60001D\", \"prefix\":\"E0740000/14\", \"range_start\": \"E0740000\", \"range_end\":\"E077FFFF\", \"region\": \"Japan\"},\n{\"operator\": \"Carnegie Technologies, LLC\", \"netid\": \"60001E\", \"prefix\":\"E0780000/14\", \"range_start\": \"E0780000\", \"range_end\":\"E07BFFFF\", \"region\": \"North America, South America\"},\n{\"operator\": \"KPN\", \"netid\": \"60001F\", \"prefix\":\"E07C0000/14\", \"range_start\": \"E07C0000\", \"range_end\":\"E07FFFFF\", \"region\": \"Europe\"},\n{\"operator\": \"Spectrum\", \"netid\": \"600020\", \"prefix\":\"E0800000/14\", \"range_start\": \"E0800000\", \"range_end\":\"E083FFFF\", \"region\": \"USA\"},\n{\"operator\": \"Microshare Inc.\", \"netid\": \"600021\", \"prefix\":\"E0840000/14\", \"range_start\": \"E0840000\", \"range_end\":\"E087FFFF\", \"region\": \"World\"},\n{\"operator\": \"Unitymedia\", \"netid\": \"600022\", \"prefix\":\"E0880000/14\", \"range_start\": \"E0880000\", \"range_end\":\"E08BFFFF\", \"region\": \"Germany\"},\n{\"operator\": \"Paige Wireless\", \"netid\": \"600023\", \"prefix\":\"E08C0000/14\", \"range_start\": \"E08C0000\", \"range_end\":\"E08FFFFF\", \"region\": \"World\"},\n{\"operator\": \"Netze BW GmbH\", \"netid\": \"600024\", \"prefix\":\"E0900000/14\", \"range_start\": \"E0900000\", \"range_end\":\"E093FFFF\", \"region\": \"World\"},\n{\"operator\": \"Tektelic\", \"netid\": \"600025\", \"prefix\":\"E0940000/14\", \"range_start\": \"E0940000\", \"range_end\":\"E097FFFF\", \"region\": \"World\"},\n{\"operator\": \"RESERVED\", \"netid\": \"C00000\", \"prefix\":\"FC000000/22\", \"range_start\": \"FC000000\", \"range_end\":\"FC0003FF\", \"region\": \"\"},\n{\"operator\": \"Nordic Automation Systems\", \"netid\": \"C00001\", \"prefix\":\"FC000400/22\", \"range_start\": \"FC000400\", \"range_end\":\"FC0007FF\", \"region\": \"World\"},\n{\"operator\": \"ResIOT\", \"netid\": \"C00002\", \"prefix\":\"FC000800/22\", \"range_start\": \"FC000800\", \"range_end\":\"FC000BFF\", \"region\": \"World\"},\n{\"operator\": \"SYSDEV\", \"netid\": \"C00003\", \"prefix\":\"FC000C00/22\", \"range_start\": \"FC000C00\", \"range_end\":\"FC000FFF\", \"region\": \"World\"},\n{\"operator\": \"Appropolis\", \"netid\": \"C00004\", \"prefix\":\"FC001000/22\", \"range_start\": \"FC001000\", \"range_end\":\"FC0013FF\", \"region\": \"China, Canada\"},\n{\"operator\": \"Macnica\", \"netid\": \"C00005\", \"prefix\":\"FC001400/22\", \"range_start\": \"FC001400\", \"range_end\":\"FC0017FF\", \"region\": \"Japan\"},\n{\"operator\": \"IP-Only\", \"netid\": \"C00006\", \"prefix\":\"FC001800/22\", \"range_start\": \"FC001800\", \"range_end\":\"FC001BFF\", \"region\": \"Sweden, Finland, Norway, Denmark\"},\n{\"operator\": \"Thingenix LLC\", \"netid\": \"C00007\", \"prefix\":\"FC001C00/22\", \"range_start\": \"FC001C00\", \"range_end\":\"FC001FFF\", \"region\": \"Russian Federation\"},\n{\"operator\": \"Definium Technologies\", \"netid\": \"C00008\", \"prefix\":\"FC002000/22\", \"range_start\": \"FC002000\", \"range_end\":\"FC0023FF\", \"region\": \"World\"},\n{\"operator\": \"ENTEGA AG\", \"netid\": \"C00009\", \"prefix\":\"FC002400/22\", \"range_start\": \"FC002400\", \"range_end\":\"FC0027FF\", \"region\": \"Germany (only Darmstadt Region)\"},\n{\"operator\": \"SenseWay\", \"netid\": \"C0000A\", \"prefix\":\"FC002800/22\", \"range_start\": \"FC002800\", \"range_end\":\"FC002BFF\", \"region\": \"Japan\"},\n{\"operator\": \"3S\", \"netid\": \"C0000B\", \"prefix\":\"FC002C00/22\", \"range_start\": \"FC002C00\", \"range_end\":\"FC002FFF\", \"region\": \"Tunisia\"},\n{\"operator\": \"nFore Technology\", \"netid\": \"C0000C\", \"prefix\":\"FC003000/22\", \"range_start\": \"FC003000\", \"range_end\":\"FC0033FF\", \"region\": \"World\"},\n{\"operator\": \"Packetworx\", \"netid\": \"C0000D\", \"prefix\":\"FC003400/22\", \"range_start\": \"FC003400\", \"range_end\":\"FC0037FF\", \"region\": \"Philippines\"},\n{\"operator\": \"Omani Qatari Telecommunications (Ooredoo)\", \"netid\": \"C0000E\", \"prefix\":\"FC003800/22\", \"range_start\": \"FC003800\", \"range_end\":\"FC003BFF\", \"region\": \"Sultanate of Oman\"},\n{\"operator\": \"Antenna Hungaria Co\", \"netid\": \"C0000F\", \"prefix\":\"FC003C00/22\", \"range_start\": \"FC003C00\", \"range_end\":\"FC003FFF\", \"region\": \"Hungary\"},\n{\"operator\": \"Trinity College Dublin\", \"netid\": \"C00010\", \"prefix\":\"FC004000/22\", \"range_start\": \"FC004000\", \"range_end\":\"FC0043FF\", \"region\": \"Europe\"},\n{\"operator\": \"Digital Nordix AB (DNX)\", \"netid\": \"C00011\", \"prefix\":\"FC004400/22\", \"range_start\": \"FC004400\", \"range_end\":\"FC0047FF\", \"region\": \"World\"},\n{\"operator\": \"Blink Services\", \"netid\": \"C00012\", \"prefix\":\"FC004800/22\", \"range_start\": \"FC004800\", \"range_end\":\"FC004BFF\", \"region\": \"Sweden, Norway\"},\n{\"operator\": \"Lyse AS\", \"netid\": \"C00013\", \"prefix\":\"FC004C00/22\", \"range_start\": \"FC004C00\", \"range_end\":\"FC004FFF\", \"region\": \"Norway\"},\n{\"operator\": \"VTC Digicom\", \"netid\": \"C00014\", \"prefix\":\"FC005000/22\", \"range_start\": \"FC005000\", \"range_end\":\"FC0053FF\", \"region\": \"Vietnam\"},\n{\"operator\": \"Machines Talk\", \"netid\": \"C00015\", \"prefix\":\"FC005400/22\", \"range_start\": \"FC005400\", \"range_end\":\"FC0057FF\", \"region\": \"Saudi Arabia\"},\n{\"operator\": \"Schneider Electric\", \"netid\": \"C00016\", \"prefix\":\"FC005800/22\", \"range_start\": \"FC005800\", \"range_end\":\"FC005BFF\", \"region\": \"Global\"},\n{\"operator\": \"Connexin\", \"netid\": \"C00017\", \"prefix\":\"FC005C00/22\", \"range_start\": \"FC005C00\", \"range_end\":\"FC005FFF\", \"region\": \"UK\"},\n{\"operator\": \"ZENNER\", \"netid\": \"C00018\", \"prefix\":\"FC006000/22\", \"range_start\": \"FC006000\", \"range_end\":\"FC0063FF\", \"region\": \"Global\"},\n{\"operator\": \"Telekom Srbija\", \"netid\": \"C00019\", \"prefix\":\"FC006400/22\", \"range_start\": \"FC006400\", \"range_end\":\"FC0067FF\", \"region\": \"Serbia\"},\n{\"operator\": \"REQUEA\", \"netid\": \"C0001A\", \"prefix\":\"FC006800/22\", \"range_start\": \"FC006800\", \"range_end\":\"FC006BFF\", \"region\": \"World\"},\n{\"operator\": \"Sensor Network Services\", \"netid\": \"C0001B\", \"prefix\":\"FC006C00/22\", \"range_start\": \"FC006C00\", \"range_end\":\"FC006FFF\", \"region\": \"Austria\"},\n{\"operator\": \"Getraline\", \"netid\": \"C0001C\", \"prefix\":\"FC007000/22\", \"range_start\": \"FC007000\", \"range_end\":\"FC0073FF\", \"region\": \"Europe\"},\n{\"operator\": \"Boston Networks Limited\", \"netid\": \"C0001D\", \"prefix\":\"FC007400/22\", \"range_start\": \"FC007400\", \"range_end\":\"FC0077FF\", \"region\": \"Europe\"},\n{\"operator\": \"Telemar\", \"netid\": \"C0001E\", \"prefix\":\"FC007800/22\", \"range_start\": \"FC007800\", \"range_end\":\"FC007BFF\", \"region\": \"Italy\"},\n{\"operator\": \"mcf88 SRL\", \"netid\": \"C0001F\", \"prefix\":\"FC007C00/22\", \"range_start\": \"FC007C00\", \"range_end\":\"FC007FFF\", \"region\": \"World\"},\n{\"operator\": \"NEC Corporation\", \"netid\": \"C00020\", \"prefix\":\"FC008000/22\", \"range_start\": \"FC008000\", \"range_end\":\"FC0083FF\", \"region\": \"Japan\"},\n{\"operator\": \"Hiber\", \"netid\": \"C00021\", \"prefix\":\"FC008400/22\", \"range_start\": \"FC008400\", \"range_end\":\"FC0087FF\", \"region\": \"World\"},\n{\"operator\": \"Milandr, Inc.\", \"netid\": \"C00022\", \"prefix\":\"FC008800/22\", \"range_start\": \"FC008800\", \"range_end\":\"FC008BFF\", \"region\": \"North America\"},\n{\"operator\": \"Green House Co., Ltd.\", \"netid\": \"C00023\", \"prefix\":\"FC008C00/22\", \"range_start\": \"FC008C00\", \"range_end\":\"FC008FFF\", \"region\": \"Japan\"},\n{\"operator\": \"NTT (Nippon Telephone and Telegraph)\", \"netid\": \"C00024\", \"prefix\":\"FC009000/22\", \"range_start\": \"FC009000\", \"range_end\":\"FC0093FF\", \"region\": \"Japan\"},\n{\"operator\": \"International Centre for Free and Open Source Software (ICFOSS)\", \"netid\": \"C00025\", \"prefix\":\"FC009400/22\", \"range_start\": \"FC009400\", \"range_end\":\"FC0097FF\", \"region\": \"India\"},\n{\"operator\": \"Mirakonta\", \"netid\": \"C00026\", \"prefix\":\"FC009800/22\", \"range_start\": \"FC009800\", \"range_end\":\"FC009BFF\", \"region\": \"World\"},\n{\"operator\": \"Redexia\", \"netid\": \"C00027\", \"prefix\":\"FC009C00/22\", \"range_start\": \"FC009C00\", \"range_end\":\"FC009FFF\", \"region\": \"Europe & Latin America\"},\n{\"operator\": \"Lacuna Space\", \"netid\": \"C00028\", \"prefix\":\"FC00A000/22\", \"range_start\": \"FC00A000\", \"range_end\":\"FC00A3FF\", \"region\": \"World\"},\n{\"operator\": \"Andorra Telecom\", \"netid\": \"C00029\", \"prefix\":\"FC00A400/22\", \"range_start\": \"FC00A400\", \"range_end\":\"FC00A7FF\", \"region\": \"Principality of Andorra\"},\n{\"operator\": \"Ursalink\", \"netid\": \"C0002A\", \"prefix\":\"FC00A800/22\", \"range_start\": \"FC00A800\", \"range_end\":\"FC00ABFF\", \"region\": \"World\"},\n{\"operator\": \"Grenoble Alps University\", \"netid\": \"C0002B\", \"prefix\":\"FC00AC00/22\", \"range_start\": \"FC00AC00\", \"range_end\":\"FC00AFFF\", \"region\": \"France\"},\n{\"operator\": \"Carnegie Technologies, LLC\", \"netid\": \"C0002C\", \"prefix\":\"FC00B000/22\", \"range_start\": \"FC00B000\", \"range_end\":\"FC00B3FF\", \"region\": \"North America, South America\"},\n{\"operator\": \"IoTech\", \"netid\": \"C0002D\", \"prefix\":\"FC00B400/22\", \"range_start\": \"FC00B400\", \"range_end\":\"FC00B7FF\", \"region\": \"Greece\"},\n{\"operator\": \"Spectrum\", \"netid\": \"C0002E\", \"prefix\":\"FC00B800/22\", \"range_start\": \"FC00B800\", \"range_end\":\"FC00BBFF\", \"region\": \"USA\"},\n{\"operator\": \"Afnic\", \"netid\": \"C0002F\", \"prefix\":\"FC00BC00/22\", \"range_start\": \"FC00BC00\", \"range_end\":\"FC00BFFF\", \"region\": \"France\"},\n{\"operator\": \"Nerospec\", \"netid\": \"C00030\", \"prefix\":\"FC00C000/22\", \"range_start\": \"FC00C000\", \"range_end\":\"FC00C3FF\", \"region\": \"South Africa, Europe,America\"},\n{\"operator\": \"Sehaj Synergy Technologies Pvt Ltd\", \"netid\": \"C00031\", \"prefix\":\"FC00C400/22\", \"range_start\": \"FC00C400\", \"range_end\":\"FC00C7FF\", \"region\": \"India, ASEAN & SAARC Region\"},\n{\"operator\": \"Microshare Inc.\", \"netid\": \"C00032\", \"prefix\":\"FC00C800/22\", \"range_start\": \"FC00C800\", \"range_end\":\"FC00CBFF\", \"region\": \"World\"},\n{\"operator\": \"HEIG-VD\", \"netid\": \"C00033\", \"prefix\":\"FC00CC00/22\", \"range_start\": \"FC00CC00\", \"range_end\":\"FC00CFFF\", \"region\": \"Switzerland\"},\n{\"operator\": \"Unitymedia\", \"netid\": \"C00034\", \"prefix\":\"FC00D000/22\", \"range_start\": \"FC00D000\", \"range_end\":\"FC00D3FF\", \"region\": \"Germany\"},\n{\"operator\": \"Paige Wireless\", \"netid\": \"C00035\", \"prefix\":\"FC00D400/22\", \"range_start\": \"FC00D400\", \"range_end\":\"FC00D7FF\", \"region\": \"World\"},\n{\"operator\": \"Desarrollo de Infraestructura de Telecomunicaciones Peru (Infratel Peru)\", \"netid\": \"C00036\", \"prefix\":\"FC00D800/22\", \"range_start\": \"FC00D800\", \"range_end\":\"FC00DBFF\", \"region\": \"Peru\"},\n{\"operator\": \"Alperia Fiber\", \"netid\": \"C00037\", \"prefix\":\"FC00DC00/22\", \"range_start\": \"FC00DC00\", \"range_end\":\"FC00DFFF\", \"region\": \"Italy\"},\n{\"operator\": \"First Snow Co., Ltd\", \"netid\": \"C00038\", \"prefix\":\"FC00E000/22\", \"range_start\": \"FC00E000\", \"range_end\":\"FC00E3FF\", \"region\": \"Republic of Korea\"} ];\n\ndevaddr_int = parseInt(msg.payload.rxpk[0].DevAddr,16);\nmsg.network = networks.find(net => (parseInt(net.range_start,16) <= devaddr_int && parseInt(net.range_end,16) >= devaddr_int));\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 540,
"y": 220,
"wires": [
[
"ffbfa32c.4c149"
]
]
},
{
"id": "fa0b35fa.b56618",
"type": "function",
"z": "ff31324a.133b3",
"name": "Filter messages",
"func": "// Filter if no received packet (e.g. status)\nif (!msg.payload.rxpk) {\n return;\n}\n\nif (isNaN(msg.payload.rxpk[0].FrameCounter)) {\n return null;\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 740,
"y": 160,
"wires": [
[
"5f9a7b9.291e184"
]
]
},
{
"id": "5f9a7b9.291e184",
"type": "function",
"z": "ff31324a.133b3",
"name": "Calculate Airtime (2)",
"func": "// https://github.com/avbentem/lorawan-airtime-ui/blob/master/src/lora/Airtime.ts\nfunction calculate(size, sf , bw, codingRate, lowDrOptimize, explicitHeader, preambleLength) {\n\n // time in milliseconds\n const tSym = Math.pow(2, sf) / (bw * 1000) * 1000;\n const tPreamble = (preambleLength + 4.25) * tSym;\n\n // H = 0 when the header is enabled, H = 1 when no header is present.\n const h = explicitHeader ? 0 : 1;\n // DE = 1 when the low data rate optimization is enabled, DE = 0 for disabled.\n // When 'auto' then only for SF11 and SF12, on 125kHz\n const de = ((lowDrOptimize === 'auto' && +bw === 125 && +sf >= 11) || lowDrOptimize === true) ? 1 : 0;\n // CR is the coding rate from 1 to 4\n const cr = +codingRate[2] - 4;\n const payloadSymbNb = 8 + Math.max(Math.ceil(\n (8 * size - 4 * sf + 28 + 16 - 20 * h) / (4 * (sf - 2 * de))) * (cr + 4), 0);\n const tPayload = payloadSymbNb * tSym;\n\n return +(tPreamble + tPayload).toFixed(2);\n }\n\nconst regex = /SF([0-9]+)BW([0-9]+)/gm;\nvar m = regex.exec(msg.payload.rxpk[0].datr)\n\nvar sf = parseInt(m[1],10);\nvar bw \t= parseInt(m[2],10)*1000;\nmsg.payload.airtime = calculate(msg.payload.rxpk[0].size+13,sf,bw,msg.payload.rxpk[0].codr,false,true,8);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 280,
"y": 220,
"wires": [
[
"82f9b47b.8e25d8"
]
]
},
{
"id": "ffbfa32c.4c149",
"type": "change",
"z": "ff31324a.133b3",
"name": "Gateway Names if available",
"rules": [
{
"t": "change",
"p": "payload.gateway",
"pt": "msg",
"from": "eui-9e23befffeb278d6",
"fromt": "str",
"to": "munich-kreativquartier-001",
"tot": "str"
},
{
"t": "change",
"p": "payload.gateway",
"pt": "msg",
"from": "eui-b827ebfffffbab0e",
"fromt": "str",
"to": "munich-giesing-001",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 820,
"y": 220,
"wires": [
[
"83823ed7.9e038",
"43cad400.caf38c"
]
]
},
{
"id": "c6ab92ee.256e8",
"type": "influxdb",
"z": "",
"hostname": "influxdb",
"port": "8086",
"protocol": "http",
"database": "lorawan",
"name": "local-lorawan",
"usetls": false,
"tls": ""
}
]