Fix Build MQTT topic string based on FullTopic

This commit is contained in:
Theo Arends 2025-07-23 12:30:35 +02:00
parent a4b05b88a5
commit 1495338f53

View File

@ -23,6 +23,7 @@ class lwdecode_cls
def LwDecode(data) def LwDecode(data)
import json import json
import string
var deviceData = data['LwReceived'] var deviceData = data['LwReceived']
var deviceName = deviceData.keys()() var deviceName = deviceData.keys()()
@ -44,7 +45,11 @@ class lwdecode_cls
end end
if Payload.size() && self.LwDecoders.find(decoder) if Payload.size() && self.LwDecoders.find(decoder)
var topic = "tele/" + self.thisDevice + "/SENSOR" var topic = string.replace(string.replace(
tasmota.cmd('FullTopic',true)['FullTopic'],
'%topic%', tasmota.cmd('Topic',true)['Topic']),
'%prefix%', tasmota.cmd('Prefix',true)['Prefix3']) # tele
+ 'SENSOR'
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}} var mqttData = {"LwDecoded":{deviceName:decoded}}
mqtt.publish(topic, json.dump(mqttData)) mqtt.publish(topic, json.dump(mqttData))