diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be b/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be index 391471a52..f3239e2fd 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/LDS02.be @@ -14,13 +14,14 @@ class LwDecoLDS02 data.insert("Node", Node) var valid_values = false - var last_seen - var battery_last_seen + var last_seen = 0x7FFFFFFF + var battery_last_seen = 0x7FFFFFFF var battery var rssi = RSSI var door_open ## SENSOR DATA ## if 10 == FPort && Bytes.size() == 10 + last_seen = tasmota.rtc('local') door_open = ( Bytes[0] & 0x80 ) ? 1 : 0 data.insert("DoorOpen", ( door_open ) ? true : false) data.insert("BattV", ( Bytes[1] | (Bytes[0] << 8) & 0x3FFF ) / 1000.0) @@ -35,7 +36,6 @@ class LwDecoLDS02 end #Fport if valid_values - last_seen = tasmota.rtc('local') if global.lds02Nodes.find(Node) global.lds02Nodes.remove(Node) end diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be index c5b833f1f..6408a9271 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT52.be @@ -14,8 +14,8 @@ class LwDecoLHT52 data.insert("Node", Node) var valid_values = false - var last_seen - var battery_last_seen + var last_seen = 0x7FFFFFFF + var battery_last_seen = 0x7FFFFFFF var battery = 1000 var rssi = RSSI var temp_int @@ -32,6 +32,8 @@ class LwDecoLHT52 end ## SENSOR DATA ## if 2 == FPort && Bytes.size() == 11 + last_seen = tasmota.rtc('local') + var TempC TempC = Bytes[0] << 8 | Bytes[1] if Bytes[0] > 0x7F @@ -76,7 +78,6 @@ class LwDecoLHT52 end #Fport if valid_values - last_seen = tasmota.rtc('local') if global.lht52Nodes.find(Node) global.lht52Nodes.remove(Node) end diff --git a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be index c4092df0c..d3a530c06 100644 --- a/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be +++ b/tasmota/berry/lorawan/decoders/vendors/dragino/LHT65.be @@ -18,8 +18,8 @@ class LwDecoLHT65 var NoConnect = (Bytes[6] & 0x80) >> 7 var valid_values = false - var last_seen - var battery_last_seen + var last_seen = 0x7FFFFFFF + var battery_last_seen = 0x7FFFFFFF var battery = 1000 var rssi = RSSI var temp_int = 1000 @@ -41,6 +41,7 @@ class LwDecoLHT65 var TempC if Ext == 9 #Sensor E3, Temperature Sensor, Datalog Mod + last_seen = tasmota.rtc('local') TempC = ((Bytes[0] << 8) | Bytes[1]) if 0x7FFF == TempC data.insert("Ext_SensorConnected", false) @@ -63,6 +64,7 @@ class LwDecoLHT65 end if Ext != 0x0F + last_seen = tasmota.rtc('local') TempC = ((Bytes[2] << 8) | Bytes[3]) if Bytes[2]>0x7F TempC -= 0x10000 @@ -81,6 +83,7 @@ class LwDecoLHT65 if 0 == Ext data.insert("Ext_sensor", 'No external sensor') elif 1==Ext + last_seen = tasmota.rtc('local') data.insert("Ext_sensor",'Temperature Sensor') TempC = ((Bytes[7] << 8) | Bytes[8]) if 0x7FFF == TempC @@ -95,6 +98,7 @@ class LwDecoLHT65 valid_values = true end elif 4 == Ext + last_seen = tasmota.rtc('local') data.insert("Work_mode", 'Interrupt Sensor send') door_open = ( Bytes[7] ) ? 0 : 1 # DS sensor data.insert("Exti_pin_level", Bytes[7] ? 'High' : 'Low') @@ -107,7 +111,7 @@ class LwDecoLHT65 data.insert("Work_mode", 'ADC Sensor') data.insert("ADC_V", ((Bytes[7] << 8) | Bytes[8]) / 1000.0) elif 7 == Ext - data.insert("Work_mode ", 'Interrupt Sensor count') + data.insert("Work_mode", 'Interrupt Sensor count') data.insert("Exit_count", (Bytes[7] << 8) | Bytes[8]) elif 8 == Ext data.insert("Work_mode", 'Interrupt Sensor count') @@ -137,7 +141,6 @@ class LwDecoLHT65 end #Fport if valid_values - last_seen = tasmota.rtc('local') if global.lht65Nodes.find(Node) global.lht65Nodes.remove(Node) end diff --git a/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be b/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be index 9ba8c5f80..8522b5f8c 100644 --- a/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be +++ b/tasmota/berry/lorawan/decoders/vendors/merryiot/DW10.be @@ -14,8 +14,8 @@ class LwDecoDW10 data.insert("Node", Node) var valid_values = false - var last_seen - var battery_last_seen + var last_seen = 0x7FFFFFFF + var battery_last_seen = 0x7FFFFFFF var battery var rssi = RSSI var door_open @@ -24,6 +24,7 @@ class LwDecoDW10 var humidity ## SENSOR DATA ## if 120 == FPort && Bytes.size() == 9 + last_seen = tasmota.rtc('local') door_open = ( Bytes[0] & 0x01 ) ? 1 : 0 data.insert("DoorOpen", ( door_open ) ? true : false ) button_pressed = ( Bytes[0] & 0x02 ) ? 1 : 0 @@ -40,13 +41,11 @@ class LwDecoDW10 data.insert("DoorOpenLastDuration_mins", Bytes[4] | (Bytes[5] << 8)) data.insert("DoorOpenEvents", Bytes[6] | (Bytes[7] << 8) | (Bytes[8] << 16 )) valid_values = true - else # Ignore other Fports end #Fport if valid_values - last_seen = tasmota.rtc('local') if global.dw10Nodes.find(Node) global.dw10Nodes.remove(Node) end