diff --git a/tasmota/berry/lorawan/decoders/LwDecode.be b/tasmota/berry/lorawan/decoders/LwDecode.be index 5079a9e4c..6c28f4019 100644 --- a/tasmota/berry/lorawan/decoders/LwDecode.be +++ b/tasmota/berry/lorawan/decoders/LwDecode.be @@ -31,6 +31,7 @@ class lwdecode_cls var deviceData = data['LwReceived'] var deviceName = deviceData.keys()() + var Device = deviceData[deviceName]['Name'] var Node = deviceData[deviceName]['Node'] var RSSI = deviceData[deviceName]['RSSI'] var Payload = deviceData[deviceName]['Payload'] @@ -50,7 +51,14 @@ class lwdecode_cls if Payload.size() && self.LwDecoders.find(decoder) var decoded = self.LwDecoders[decoder].decodeUplink(Node, RSSI, FPort, Payload) - var mqttData = {"LwDecoded":{deviceName:decoded}} + decoded.insert("Device", Device) + decoded.insert("Node", Node) + decoded.insert("RSSI", RSSI) + var mqttData = {deviceName:decoded} + # Abuse SetOption83 - (Zigbee) Use FriendlyNames (1) instead of ShortAddresses (0) when possible + if tasmota.get_option(83) == 0 # SetOption83 - Remove LwDecoded form JSON message (1) + mqttData = {"LwDecoded":{deviceName:decoded}} + end mqtt.publish(self.topic, json.dump(mqttData)) tasmota.global.restart_flag = 0 # Signal LwDecoded successful (default state) end diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/D20.be b/tasmota/berry/lorawan/decoders/vendors/dragino/D20.be index ad1dc9e54..cf99d26e7 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/D20.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/D20.be @@ -10,10 +10,7 @@ global.DrgD20Nodes = {} class LwDecoDrgD20 static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino D20"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/DDS75L.be b/tasmota/berry/lorawan/decoders/vendors/dragino/DDS75L.be index 5cf905325..69574806c 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/DDS75L.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/DDS75L.be @@ -10,10 +10,7 @@ global.dds75lbNodes = {} class LwDecoDDS75LB static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino DDS75-LB/LS"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be b/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be index 72ec439d6..f5658a970 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be @@ -10,10 +10,7 @@ global.lds02Nodes = {} class LwDecoLDS02 static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino LDS02"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be index b50d24e76..7773ab30b 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be @@ -10,10 +10,7 @@ global.lht52Nodes = {} class LwDecoLHT52 static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino LHT52"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be index ccfa06a6a..9c48ba828 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be @@ -10,11 +10,7 @@ global.lht65Nodes = {} class LwDecoLHT65 static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino LHT65"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - data.insert("poll_message_status",(Bytes[6] & 0x40) >> 6) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 @@ -41,6 +37,8 @@ class LwDecoLHT65 var NoConnect = (Bytes[6] & 0x80) >> 7 ## SENSOR DATA ## + data.insert("poll_message_status",(Bytes[6] & 0x40) >> 6) + if 2 == FPort && Bytes.size() == 11 var TempC diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/PS-L-I5.be b/tasmota/berry/lorawan/decoders/vendors/dragino/PS-L-I5.be index 59a3f5d4d..926162620 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/PS-L-I5.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/PS-L-I5.be @@ -11,10 +11,7 @@ global.psli5Nodes = {} class LwDecoPSLI5 static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino PS-LB/LS-I5"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/SE01-L.be b/tasmota/berry/lorawan/decoders/vendors/dragino/SE01-L.be index 23c3a7870..9c3c1668f 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/SE01-L.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/SE01-L.be @@ -12,10 +12,7 @@ global.se01LNodes = {} class LwDecoSE01L static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"Dragino SE01-LB/LS"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800 diff --git a/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be b/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be index 9a1707c49..5a49a174f 100644 --- a/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be +++ b/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be @@ -10,10 +10,7 @@ global.dw10Nodes = {} class LwDecoDW10 static def decodeUplink(Node, RSSI, FPort, Bytes) - var data = {"Device":"MerryIoT DW10"} - data.insert("Node", Node) - data.insert("RSSI", RSSI) - + var data = {} var valid_values = false var last_seen = 1451602800 var battery_last_seen = 1451602800