Fix LwDecode.be permit to disable duplicates hash (#23779)

This commit is contained in:
Fabrizio Amodio 2025-08-13 11:14:22 +02:00 committed by GitHub
parent cc88f3e6a9
commit 244327de0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -233,10 +233,6 @@ class lwdecode_cls
var payload = device_info['Payload']
if !payload || payload.size() == 0 return true end
var current_hash = self._calculate_payload_hash(payload)
if current_hash == self.last_payload_hash return true end
self.last_payload_hash = current_hash
if !self.lw_decoders.find(decoder)
try
LwDeco = nil
@ -244,14 +240,29 @@ class lwdecode_cls
if LwDeco
self.lw_decoders[decoder] = LwDeco
else
log("LwD: Unable to load decoder",1)
return true
end
except .. as e, m
print(format("Decoder load error: %s", m))
log(format("LwD: Decoder load error: %s", m),1)
return true
end
end
var hashCheck
# check if the decoder driver have the hashCheck properties
try
hashCheck = self.lw_decoders[decoder].hashCheck
except .. as e, m
hashCheck = true
end
if hashCheck
var current_hash = self._calculate_payload_hash(payload)
if current_hash == self.last_payload_hash return true end
self.last_payload_hash = current_hash
end
try
var decoded = self.lw_decoders[decoder].decodeUplink(
device_info['Name'],
@ -282,7 +293,7 @@ class lwdecode_cls
tasmota.global.restart_flag = 0 # Signal LwDecoded successful (default state)
except .. as e, m
print(format("Decode error for %s: %s", device_name, m))
log(format("LwD: Decode error for %s: %s", device_name, m),1)
end
return true