Tasmota Node-Red Control-Feedback

28-04-2025

Noticed that with the latest version of Tasmota the timers didn’t work as the data format has been changed.
The flow affected is the tasmota detector and the function node process message detector.
You need to go down to the command==RESULT section and you should be able to make out what to replace.
If you are stuck let me know an I’ll send you a new function node.

if (command == "RESULT") {

    if (typeof payload.POWER != "undefined")
        devices[device].power = payload.POWER;
    //node.log("payload "+JSON.stringify(payload));
    if (typeof payload.GroupTopic1 != "undefined") {
        devices[device].group_topic = payload.GroupTopic1;
        devices[device].GroupTopics = payload;
        node.log("received result");
    }
    let keys = Object.keys(payload);
    node.log("key = " + keys[0]);
//code below has changed
    if (findTimer(keys[0]) != -1) {

        devices[device].timersTimers[keys[0]] = payload[keys[0]];
    }
//format of the timers payload has changed in versions so have 2 formats that need detecting
    if (typeof payload.Timezone != "undefined")
        devices[device].TimeZone = payload.Timezone;

    if (typeof payload.Timers != "undefined")
    {
        devices[device].Timers = payload.Timers;
        node.log("type = "+ typeof payload);
        if (Object.keys(payload).length >1)//new format
        {
            delete payload.Timers;
            devices[device].timersTimers=payload;
            //extractTimers(payload);

        }
    }
//no change in code below
    if (typeof payload.Timers1 != "undefined") {
        if (typeof devices[device].timersTimers == "undefined")
            devices[device].timersTimers = {};
        extractTimers(payload.Timers1);
    }

 

Please Let me Know if you found it Useful
[Total: 1 Average: 5]

Leave a Reply

Your email address will not be published. Required fields are marked *