mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-28 21:26:33 +00:00
Consolidate LoRaWan decoding Device, Node and RSSI into LwDecode
- Use LoRaWanName as JSON device name - Use SetOption83 to control JSON LwDecoded field pair display
This commit is contained in:
parent
4a632e9ef1
commit
93c46dc3f9
@ -31,6 +31,7 @@ class lwdecode_cls
|
|||||||
|
|
||||||
var deviceData = data['LwReceived']
|
var deviceData = data['LwReceived']
|
||||||
var deviceName = deviceData.keys()()
|
var deviceName = deviceData.keys()()
|
||||||
|
var Device = deviceData[deviceName]['Name']
|
||||||
var Node = deviceData[deviceName]['Node']
|
var Node = deviceData[deviceName]['Node']
|
||||||
var RSSI = deviceData[deviceName]['RSSI']
|
var RSSI = deviceData[deviceName]['RSSI']
|
||||||
var Payload = deviceData[deviceName]['Payload']
|
var Payload = deviceData[deviceName]['Payload']
|
||||||
@ -50,7 +51,14 @@ class lwdecode_cls
|
|||||||
|
|
||||||
if Payload.size() && self.LwDecoders.find(decoder)
|
if Payload.size() && self.LwDecoders.find(decoder)
|
||||||
var decoded = self.LwDecoders[decoder].decodeUplink(Node, RSSI, FPort, Payload)
|
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))
|
mqtt.publish(self.topic, json.dump(mqttData))
|
||||||
tasmota.global.restart_flag = 0 # Signal LwDecoded successful (default state)
|
tasmota.global.restart_flag = 0 # Signal LwDecoded successful (default state)
|
||||||
end
|
end
|
||||||
|
@ -10,10 +10,7 @@ global.DrgD20Nodes = {}
|
|||||||
|
|
||||||
class LwDecoDrgD20
|
class LwDecoDrgD20
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino D20"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
@ -10,10 +10,7 @@ global.dds75lbNodes = {}
|
|||||||
|
|
||||||
class LwDecoDDS75LB
|
class LwDecoDDS75LB
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino DDS75-LB/LS"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
@ -10,10 +10,7 @@ global.lds02Nodes = {}
|
|||||||
|
|
||||||
class LwDecoLDS02
|
class LwDecoLDS02
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino LDS02"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
@ -10,10 +10,7 @@ global.lht52Nodes = {}
|
|||||||
|
|
||||||
class LwDecoLHT52
|
class LwDecoLHT52
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino LHT52"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
@ -10,11 +10,7 @@ global.lht65Nodes = {}
|
|||||||
|
|
||||||
class LwDecoLHT65
|
class LwDecoLHT65
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino LHT65"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
data.insert("poll_message_status",(Bytes[6] & 0x40) >> 6)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
@ -41,6 +37,8 @@ class LwDecoLHT65
|
|||||||
var NoConnect = (Bytes[6] & 0x80) >> 7
|
var NoConnect = (Bytes[6] & 0x80) >> 7
|
||||||
|
|
||||||
## SENSOR DATA ##
|
## SENSOR DATA ##
|
||||||
|
data.insert("poll_message_status",(Bytes[6] & 0x40) >> 6)
|
||||||
|
|
||||||
if 2 == FPort && Bytes.size() == 11
|
if 2 == FPort && Bytes.size() == 11
|
||||||
var TempC
|
var TempC
|
||||||
|
|
||||||
|
@ -11,10 +11,7 @@ global.psli5Nodes = {}
|
|||||||
|
|
||||||
class LwDecoPSLI5
|
class LwDecoPSLI5
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino PS-LB/LS-I5"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
@ -12,10 +12,7 @@ global.se01LNodes = {}
|
|||||||
|
|
||||||
class LwDecoSE01L
|
class LwDecoSE01L
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"Dragino SE01-LB/LS"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
@ -10,10 +10,7 @@ global.dw10Nodes = {}
|
|||||||
|
|
||||||
class LwDecoDW10
|
class LwDecoDW10
|
||||||
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
static def decodeUplink(Node, RSSI, FPort, Bytes)
|
||||||
var data = {"Device":"MerryIoT DW10"}
|
var data = {}
|
||||||
data.insert("Node", Node)
|
|
||||||
data.insert("RSSI", RSSI)
|
|
||||||
|
|
||||||
var valid_values = false
|
var valid_values = false
|
||||||
var last_seen = 1451602800
|
var last_seen = 1451602800
|
||||||
var battery_last_seen = 1451602800
|
var battery_last_seen = 1451602800
|
||||||
|
Loading…
x
Reference in New Issue
Block a user