Skip to content

Commit a273684

Browse files
committed
Allow LoRaWanName as GUI name
1 parent 010de30 commit a273684

File tree

9 files changed

+121
-97
lines changed

9 files changed

+121
-97
lines changed

tasmota/berry/lorawan/decoders/LwDecode.be

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class lwdecode_cls
3131

3232
var deviceData = data['LwReceived']
3333
var deviceName = deviceData.keys()()
34-
var Device = deviceData[deviceName]['Name']
34+
var Name = deviceData[deviceName]['Name']
3535
var Node = deviceData[deviceName]['Node']
3636
var RSSI = deviceData[deviceName]['RSSI']
3737
var Payload = deviceData[deviceName]['Payload']
@@ -50,7 +50,7 @@ class lwdecode_cls
5050
end
5151

5252
if Payload.size() && self.LwDecoders.find(decoder)
53-
var decoded = self.LwDecoders[decoder].decodeUplink(Node, RSSI, FPort, Payload)
53+
var decoded = self.LwDecoders[decoder].decodeUplink(Name, Node, RSSI, FPort, Payload)
5454
decoded.insert("Node", Node)
5555
decoded.insert("RSSI", RSSI)
5656
var mqttData = {deviceName:decoded}

tasmota/berry/lorawan/decoders/vendors/dragino/D20.be

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import string
99
global.DrgD20Nodes = {}
1010

1111
class LwDecoDrgD20
12-
static def decodeUplink(Node, RSSI, FPort, Bytes)
12+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1313
var data = {"Device":"Dragino D20"}
1414

1515
var valid_values = false
@@ -78,8 +78,8 @@ class LwDecoDrgD20
7878
if global.DrgD20Nodes.find(Node)
7979
global.DrgD20Nodes.remove(Node)
8080
end
81-
# sensor[0] [1] [2] [3] [4] [5] [6] [7]
82-
global.DrgD20Nodes.insert(Node, [Node, last_seen, battery_last_seen, battery, RSSI, tempC1, tempC2, tempC3])
81+
# sensor[0] [1] [2] [3] [4] [5] [6] [7] [8]
82+
global.DrgD20Nodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, RSSI, tempC1, tempC2, tempC3])
8383
end
8484

8585
return data
@@ -88,27 +88,30 @@ class LwDecoDrgD20
8888
static def add_web_sensor()
8989
var msg = ""
9090
for sensor: global.DrgD20Nodes
91-
var name = string.format("D20-%i", sensor[0])
91+
var name = sensor[0]
92+
if string.find(name, "D20") > -1 # If LoRaWanName contains D20 use D20-<node>
93+
name = string.format("D20-%i", sensor[1])
94+
end
9295
var name_tooltip = "Dragino D20"
93-
var battery = sensor[3]
94-
var battery_last_seen = sensor[2]
95-
var rssi = sensor[4]
96-
var last_seen = sensor[1]
96+
var last_seen = sensor[2]
97+
var battery_last_seen = sensor[3]
98+
var battery = sensor[4]
99+
var rssi = sensor[5]
97100
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
98101

99102
# Sensors
100-
var tempC1 = sensor[5]
103+
var tempC1 = sensor[6]
101104
msg += "<tr class='htr'><td colspan='4'>&#9478;" # |
102105
if tempC1 < 1000
103106
msg += string.format(" &#x2600;&#xFE0F; %.1f°C", tempC1) # Sunshine - Temperature
104107
end
105108

106-
var tempC2 = sensor[6]
109+
var tempC2 = sensor[7]
107110
if tempC2 < 1000
108111
msg += string.format(" &#x2600;&#xFE0F; %.1f°C", tempC2)
109112
end
110113

111-
var tempC3 = sensor[7]
114+
var tempC3 = sensor[8]
112115
if tempC3 < 1000
113116
msg += string.format(" &#x2600;&#xFE0F; %.1f°C", tempC3)
114117
end

tasmota/berry/lorawan/decoders/vendors/dragino/DDS75L.be

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import string
99
global.dds75lbNodes = {}
1010

1111
class LwDecoDDS75LB
12-
static def decodeUplink(Node, RSSI, FPort, Bytes)
12+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1313
var data = {"Device":"Dragino DDS75-LB/LS"}
1414

1515
var valid_values = false
@@ -57,8 +57,8 @@ class LwDecoDDS75LB
5757
if global.dds75lbNodes.find(Node)
5858
global.dds75lbNodes.remove(Node)
5959
end
60-
# sensor[0] [1] [2] [3] [4] [5]
61-
global.dds75lbNodes.insert(Node, [Node, last_seen, battery_last_seen, battery, RSSI, distance])
60+
# sensor[0] [1] [2] [3] [4] [5] [6]
61+
global.dds75lbNodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, RSSI, distance])
6262
end
6363

6464
return data
@@ -67,16 +67,19 @@ class LwDecoDDS75LB
6767
static def add_web_sensor()
6868
var msg = ""
6969
for sensor: global.dds75lbNodes
70-
var name = string.format("DDS75-L-%i", sensor[0])
70+
var name = sensor[0]
71+
if string.find(name, "DDS75-L") > -1 # If LoRaWanName contains DDS75-L use DDS75-L-<node>
72+
name = string.format("DDS75-L-%i", sensor[1])
73+
end
7174
var name_tooltip = "Dragino DDS75-L"
72-
var last_seen = sensor[1]
73-
var battery_last_seen = sensor[2]
74-
var battery = sensor[3]
75-
var rssi = sensor[4]
75+
var last_seen = sensor[2]
76+
var battery_last_seen = sensor[3]
77+
var battery = sensor[4]
78+
var rssi = sensor[5]
7679
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
7780

7881
# Sensors
79-
var distance = sensor[5]
82+
var distance = sensor[6]
8083
msg += "<tr class='htr'><td colspan='4'>&#9478;" # |
8184
msg += string.format(" &#11123;&#xFE0F; %.0fmm", distance) # ⭳
8285
msg += "{e}" # = </td></tr>

tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import string
99
global.lds02Nodes = {}
1010

1111
class LwDecoLDS02
12-
static def decodeUplink(Node, RSSI, FPort, Bytes)
12+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1313
var data = {"Device":"Dragino LDS02"}
14-
14+
1515
var valid_values = false
1616
var last_seen = 1451602800
1717
var battery_last_seen = 1451602800
@@ -49,8 +49,8 @@ class LwDecoLDS02
4949
if global.lds02Nodes.find(Node)
5050
global.lds02Nodes.remove(Node)
5151
end
52-
# sensor[0] [1] [2] [3] [4] [5] [6]
53-
global.lds02Nodes.insert(Node, [Node, last_seen, battery_last_seen, battery, RSSI, door_open, door_open_last_seen])
52+
# sensor[0] [1] [2] [3] [4] [5] [6] [7]
53+
global.lds02Nodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, RSSI, door_open, door_open_last_seen])
5454
end
5555

5656
return data
@@ -59,17 +59,20 @@ class LwDecoLDS02
5959
static def add_web_sensor()
6060
var msg = ""
6161
for sensor: global.lds02Nodes
62-
var name = string.format("LDS02-%i", sensor[0])
62+
var name = sensor[0]
63+
if string.find(name, "LDS02") > -1 # If LoRaWanName contains LDS02 use LDS02-<node>
64+
name = string.format("LDS02-%i", sensor[1])
65+
end
6366
var name_tooltip = "Dragino LDS02"
64-
var battery = sensor[3]
65-
var battery_last_seen = sensor[2]
66-
var rssi = sensor[4]
67-
var last_seen = sensor[1]
67+
var last_seen = sensor[2]
68+
var battery_last_seen = sensor[3]
69+
var battery = sensor[4]
70+
var rssi = sensor[5]
6871
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
6972

7073
# Sensors
71-
var door_open = sensor[5]
72-
var door_open_last_seen = sensor[6]
74+
var door_open = sensor[6]
75+
var door_open_last_seen = sensor[7]
7376
msg += "<tr class='htr'><td colspan='4'>&#9478;" # |
7477
msg += string.format(" %s %s", (door_open) ? "&#x1F513" : "&#x1F512", # Open or Closed lock - Door
7578
lwdecode.dhm(door_open_last_seen))

tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import string
99
global.lht52Nodes = {}
1010

1111
class LwDecoLHT52
12-
static def decodeUplink(Node, RSSI, FPort, Bytes)
12+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1313
var data = {"Device":"Dragino LHT52"}
1414

1515
var valid_values = false
@@ -80,8 +80,8 @@ class LwDecoLHT52
8080
if global.lht52Nodes.find(Node)
8181
global.lht52Nodes.remove(Node)
8282
end
83-
# sensor[0] [1] [2] [3] [4] [5] [6] [7]
84-
global.lht52Nodes.insert(Node, [Node, last_seen, battery_last_seen, battery, RSSI, temp_int, humidity, temp_ext])
83+
# sensor[0] [1] [2] [3] [4] [5] [6] [7] [8]
84+
global.lht52Nodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, RSSI, temp_int, humidity, temp_ext])
8585
end
8686

8787
return data
@@ -90,18 +90,21 @@ class LwDecoLHT52
9090
static def add_web_sensor()
9191
var msg = ""
9292
for sensor: global.lht52Nodes
93-
var name = string.format("LHT52-%i", sensor[0])
93+
var name = sensor[0]
94+
if string.find(name, "LHT52") > -1 # If LoRaWanName contains LHT52 use LHT52-<node>
95+
name = string.format("LHT52-%i", sensor[1])
96+
end
9497
var name_tooltip = "Dragino LHT52"
95-
var battery = sensor[3]
96-
var battery_last_seen = sensor[2]
97-
var rssi = sensor[4]
98-
var last_seen = sensor[1]
98+
var last_seen = sensor[2]
99+
var battery_last_seen = sensor[3]
100+
var battery = sensor[4]
101+
var rssi = sensor[5]
99102
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
100103

101104
# Sensors
102-
var temp_int = sensor[5]
103-
var humidity = sensor[6]
104-
var temp_ext = sensor[7]
105+
var temp_int = sensor[6]
106+
var humidity = sensor[7]
107+
var temp_ext = sensor[8]
105108
msg += "<tr class='htr'><td colspan='4'>&#9478;" # |
106109
if temp_int < 1000
107110
msg += string.format(" &#x2600;&#xFE0F; %.1f°C", temp_int) # Sunshine - Temperature internal

tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ var LHT65_BatteryStatus = ["Very low <= 2.5V","Low <=2.55V","OK","Good >= 2.65V"
99
global.lht65Nodes = {}
1010

1111
class LwDecoLHT65
12-
static def decodeUplink(Node, RSSI, FPort, Bytes)
12+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1313
var data = {"Device":"Dragino LHT65"}
14-
14+
1515
var valid_values = false
1616
var last_seen = 1451602800
1717
var battery_last_seen = 1451602800
@@ -150,8 +150,8 @@ class LwDecoLHT65
150150
if global.lht65Nodes.find(Node)
151151
global.lht65Nodes.remove(Node)
152152
end
153-
# sensor[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
154-
global.lht65Nodes.insert(Node, [Node, last_seen, battery_last_seen, battery, rssi, temp_int, humidity, temp_ext, door_open, door_open_last_seen])
153+
# sensor[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
154+
global.lht65Nodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, rssi, temp_int, humidity, temp_ext, door_open, door_open_last_seen])
155155
end
156156

157157
return data
@@ -160,20 +160,23 @@ class LwDecoLHT65
160160
static def add_web_sensor()
161161
var msg = ""
162162
for sensor: global.lht65Nodes
163-
var name = string.format("LHT65-%i", sensor[0])
163+
var name = sensor[0]
164+
if string.find(name, "LHT65") > -1 # If LoRaWanName contains LHT65 use LHT65-<node>
165+
name = string.format("LHT65-%i", sensor[1])
166+
end
164167
var name_tooltip = "Dragino LHT65"
165-
var battery = sensor[3]
166-
var battery_last_seen = sensor[2]
167-
var rssi = sensor[4]
168-
var last_seen = sensor[1]
168+
var last_seen = sensor[2]
169+
var battery_last_seen = sensor[3]
170+
var battery = sensor[4]
171+
var rssi = sensor[5]
169172
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
170173

171174
# Sensors
172-
var temp_int = sensor[5]
173-
var humidity = sensor[6]
174-
var temp_ext = sensor[7]
175-
var door_open = sensor[8]
176-
var door_open_last_seen = sensor[9]
175+
var temp_int = sensor[6]
176+
var humidity = sensor[7]
177+
var temp_ext = sensor[8]
178+
var door_open = sensor[9]
179+
var door_open_last_seen = sensor[10]
177180
msg += "<tr class=\"htr\"><td colspan=\"4\">&#9478;" # |
178181
if temp_int < 1000
179182
msg += string.format(" &#x2600;&#xFE0F; %.1f°C", temp_int) # Sunshine - Temperature

tasmota/berry/lorawan/decoders/vendors/dragino/PS-L-I5.be

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import string
1010
global.psli5Nodes = {}
1111

1212
class LwDecoPSLI5
13-
static def decodeUplink(Node, RSSI, FPort, Bytes)
13+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1414
var data = {"Device":"Dragino PS-LB/LS-I5"}
1515

1616
var valid_values = false
@@ -20,9 +20,9 @@ class LwDecoPSLI5
2020
var rssi = RSSI
2121
var Water_deep_cm = 0
2222

23-
var Probe_mod
24-
var IDC_input_mA
25-
var modelRangeCm = 500 # 4mA=0cm, 20mA=500cm
23+
var Probe_mod
24+
var IDC_input_mA
25+
var modelRangeCm = 500 # 4mA=0cm, 20mA=500cm
2626

2727
if global.psli5Nodes.find(Node)
2828
last_seen = global.psli5Nodes.item(Node)[1]
@@ -77,8 +77,8 @@ class LwDecoPSLI5
7777
if global.psli5Nodes.find(Node)
7878
global.psli5Nodes.remove(Node)
7979
end
80-
# sensor[0] [1] [2] [3] [4] [5]
81-
global.psli5Nodes.insert(Node, [Node, last_seen, battery_last_seen, battery, RSSI, Water_deep_cm])
80+
# sensor[0] [1] [2] [3] [4] [5] [6]
81+
global.psli5Nodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, RSSI, Water_deep_cm])
8282
end
8383

8484
return data
@@ -87,16 +87,19 @@ class LwDecoPSLI5
8787
static def add_web_sensor()
8888
var msg = ""
8989
for sensor: global.psli5Nodes
90-
var name = string.format("PS-L-I5-%i", sensor[0])
90+
var name = sensor[0]
91+
if string.find(name, "PS-L-I5") > -1 # If LoRaWanName contains PS-L-I5 use PS-L-I5-<node>
92+
name = string.format("PS-L-I5-%i", sensor[1])
93+
end
9194
var name_tooltip = "Dragino PS-L-I5"
92-
var last_seen = sensor[1]
93-
var battery_last_seen = sensor[2]
94-
var battery = sensor[3]
95-
var rssi = sensor[4]
95+
var last_seen = sensor[2]
96+
var battery_last_seen = sensor[3]
97+
var battery = sensor[4]
98+
var rssi = sensor[5]
9699
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
97100

98101
# Sensors
99-
var Water_deep_cm = sensor[5]
102+
var Water_deep_cm = sensor[6]
100103
msg += "<tr class='htr'><td colspan='4'>&#9478;" # |
101104
msg += string.format(" &#11123;&#xFE0F; %.1fcm", Water_deep_cm) # тн│
102105
msg += "{e}" # = </td></tr>

tasmota/berry/lorawan/decoders/vendors/dragino/SE01-L.be

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import string
1111
global.se01LNodes = {}
1212

1313
class LwDecoSE01L
14-
static def decodeUplink(Node, RSSI, FPort, Bytes)
14+
static def decodeUplink(Name, Node, RSSI, FPort, Bytes)
1515
var data = {"Device":"Dragino SE01-LB/LS"}
1616

1717
var valid_values = false
@@ -98,8 +98,8 @@ class LwDecoSE01L
9898
if global.se01LNodes.find(Node)
9999
global.se01LNodes.remove(Node)
100100
end
101-
# sensor[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
102-
global.se01LNodes.insert(Node, [Node, last_seen, battery_last_seen, battery, RSSI, temp, conductivity, moisture, dielectric, mod])
101+
# sensor[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
102+
global.se01LNodes.insert(Node, [Name, Node, last_seen, battery_last_seen, battery, RSSI, temp, conductivity, moisture, dielectric, mod])
103103
end
104104

105105
return data
@@ -108,24 +108,27 @@ class LwDecoSE01L
108108
static def add_web_sensor()
109109
var msg = ""
110110
for sensor: global.se01LNodes
111-
var name = string.format("SE01-L-%i", sensor[0])
111+
var name = sensor[0]
112+
if string.find(name, "SE01-L") > -1 # If LoRaWanName contains SE01-L use SE01-L-<node>
113+
name = string.format("SE01-L-%i", sensor[1])
114+
end
112115
var name_tooltip = "Dragino SE01-L"
113-
var last_seen = sensor[1]
114-
var battery_last_seen = sensor[2]
115-
var battery = sensor[3]
116-
var rssi = sensor[4]
116+
var last_seen = sensor[2]
117+
var battery_last_seen = sensor[3]
118+
var battery = sensor[4]
119+
var rssi = sensor[5]
117120
msg += lwdecode.header(name, name_tooltip, battery, battery_last_seen, rssi, last_seen)
118121

119122
# Sensors
120-
var temp = sensor[5]
121-
var conductivity = sensor[6]
122-
var moisture = sensor[7]
123-
var dielectric = sensor[8]
124-
var mod = sensor[9]
123+
var temp = sensor[6]
124+
var conductivity = sensor[7]
125+
var moisture = sensor[8]
126+
var dielectric = sensor[9]
127+
var mod = sensor[10]
125128

126129
msg += "<tr class='htr'><td colspan='4'>&#9478;" # |
127130
if mod
128-
msg += string.format(" &kappa; %.1f", dielectric ) # Kappa - dielectric
131+
msg += string.format(" &kappa; %.1f", dielectric ) # Kappa - dielectric
129132
msg += string.format(" &#x1F4A7;&#xFE0F; %u", moisture) # Raindrop - moisture
130133
msg += string.format(" &sigma; %u", conductivity) # Sigma - conductivity
131134
msg += " (raw)"

0 commit comments

Comments
 (0)