Красный узел Schedex

У меня есть функция, которая принимает ввод из текстового ввода приборной панели в качестве выбора времени, вычисляет часы и минуты, устанавливает другие переменные и возвращает объект msg узлу Schedex, но не устанавливает время или другие переменные, когда поток казнены. Я перечитывал документацию несколько раз и следовал ей, насколько мне было понятно, но она все еще не настраивает мой узел Schedex. В документации Schedex упоминаются два способа отправки конфигурации на узел Schedex. Первый способ - установить msg.palyload.variable или отправить всю конфигурацию как одну строку в mgs.payload. Я опубликую две версии кода функции ниже. если вы хотите прочитать документацию по Schedex, вы можете найти ее ниже https://www.npmjs.com/package/node-red-contrib-schedex

    msgTemp = msg.payload;
    time = msgTemp / 1000;
    // calculates hour from seconds input
    h = Math.floor(time / 3600); 
    // calculates minutes from remainder 
    m = Math.floor(time % 3600 / 60); 
    // ontime formatted for Schedex standards
    ontime = ('0' + h).slice(-2) + ":" + ('0' + m).slice(-2);
    //setting ontime
    msg.payload.ontime = ontime;
    //setting onpayload
    msg.payload.onpayload = "1";
    //enabling schedule for every time of the week
    msg.payload.mon = true;
    msg.payload.tue = true;
    msg.payload.wed = true;
    msg.payload.thu = true;
    msg.payload.fri = true;
    msg.payload.sat = true;
    msg.payload.sun = true;
    //the documentations mentions that to set the variables from the ui 
    //it has to be in programmatic control, I have put this in the 
    //payload and it's not working.
    //i think my issue is with the line below but i can't figure it out
    msg.payload = "'## Programmatic Control";
    return msg;

вот другая версия, где все конфигурации хранятся в msg.payload как одна строка

    msgTemp = msg.payload;
    time = msgTemp / 1000;
    // calculates hour from seconds input
    h = Math.floor(time / 3600); 
    // calculates minutes from remainder 
    m = Math.floor(time % 3600 / 60); 
    ontime = "onetime " + ('0' + h).slice(-2) + ":" + ('0' + m).slice(-2) 
    + " ";
    onpayload = "onpayload 1 ";
    mon = "mon true ";
    tue = "tue true ";
    wed = "wed true ";
    thu = "thu true ";
    fri = "fri true ";
    sat = "sat true ";
    sun = "sun true ";
    msg.payload = ontime + onpayload + mon + tue + wed + thu + fri + sat 
    + sun;
    return msg;

Ваша помощь очень ценится

1 ответ

Последняя строка перед return на вашем первом примере стирает все изменения, которые вы сделали в msg.payload объект, заменив этот объект строкой "'## Programmatic Control"

Другие вопросы по тегам