Homeyscript to tag doesnt work

Hi,
I am trying to ceate a script (based on my first script posted here), see below, that should pass 2 or 3 dates to tags which i can use in flows.
However, with setTagValue i get an error that is deprecated and using the suggested alternative it also doesnt work.
What happens… when in the editor it doest work as it should, echo today, tomorrow and an Archument. But when doing it in a flow, it always showing wrong dates, see screenshot. Even when i clear the variable, it comes back with 1 december and 10 september but never with the correct date while it doest show correct date in the editor…

Please help, i dont see it anymore…

 Adv_Vandaag  = new Date;
 Adv_Morgen = new Date;
 Adv_Volgendewerkdag = new Date;

//await setTagValue("adv.nldatum.vandaag", {type: "string", title: "adv.nldatum.vandaag"}, Adv_Vandaag);

Adv_Vandaag.setDate(Adv_Vandaag.getDate());
Adv_Vandaag = 'm-d-Y'
                     .replace('d', ('0' + Adv_Vandaag.getDate()).toString().slice(-2))
                     .replace('m', ('0' + (Adv_Vandaag.getMonth() + 1)).toString().slice(-2))
                     .replace('Y', Adv_Vandaag.getFullYear());

Adv_Morgen.setDate(Adv_Morgen.getDate() + 1);
Adv_Morgen = 'm-d-Y'
                     .replace('d', ('0' + Adv_Morgen.getDate()).toString().slice(-2))
                     .replace('m', ('0' + (Adv_Morgen.getMonth() + 1)).toString().slice(-2))
                     .replace('Y', Adv_Morgen.getFullYear());

if (args[0] == '' || args[0] == undefined) {
      
      Adv_Vandaag = GetNlDate(Adv_Vandaag);
      //await("adv.nldatum.vandaag", Adv_Vandaag)
      await setTagValue("adv.nldatum.vandaag", {type: "string", title: "adv.nldatum.vandaag"}, Adv_Vandaag);
      console.log("vandaag: " + Adv_Vandaag);
      Adv_Morgen = GetNlDate(Adv_Morgen);
      await("adv.nldatum.morgen", Adv_Morgen)
      console.log("morgen: " + Adv_Morgen);

    return false;
} else {

      Adv_Vandaag = GetNlDate(Adv_Vandaag);
      await setTagValue("adv.nldatum.vandaag", {type: "string", title: "adv.nldatum.vandaag"}, Adv_Vandaag);
      console.log("vandaag: " + Adv_Vandaag);
      //await("adv.nldatum.vandaag", Adv_Vandaag)
      Adv_Morgen = GetNlDate(Adv_Morgen);
      //await("adv.nldatum.morgen", Adv_Morgen)
      await setTagValue("adv.nldatum.morgen", {type: "string", title: "adv.nldatum.morgen"}, Adv_Morgen);
      console.log("Morgen: " + Adv_Morgen);
      Adv_Volgendewerkdag = GetNlDate(args[0]);      
      //await("adv.nldatum.volgendewerkdag", Adv_Volgendewerkdag)
      await setTagValue("adv.nldatum.volgendewerkdag", {type: "string", title: "adv.nldatum.Adv_Volgendewerkdag"}, Adv_Volgendewerkdag);

}

function GetNlDate(inputdate) {

  let ArgDate = inputdate.split('-');
  let ArgDateEN = new Date(inputdate);
  new Date(ArgDate[2] + "," + ArgDate[1] + "," + ArgDate[0]);

  var Nr = ArgDateEN.getDate();
  const DAYS = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'];
  var Weekdag = DAYS[ArgDateEN.getDay()];
  const MONTHS = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september',          
                  'oktober', 'november', 'december'];
  var Maand = MONTHS[ArgDateEN.getMonth()];
  
  inputdate = Weekdag + " " + Nr + " " + Maand;
  return inputdate;
}

return(true);

Wat moet dat doen? Bedoel je soms await tag("adv.nldatum.morgen", Adv_Morgen)?

ja klopt. ook al geprobeerd. helpt allemaal niet :frowning: Ik heb zo veel geprobeerd dat er idd in het script iets niet helemaal goed is :smiley:

Hier dan ff met de juiste tag
testen in homeyscript editor werkt. In het screenshot doe ik zonder argument dus zou hij alleen vandaag en morgen moeten teruggeven.

 Adv_Vandaag  = new Date;
 Adv_Morgen = new Date;
 Adv_Volgendewerkdag = new Date;

//await setTagValue("adv.nldatum.vandaag", {type: "string", title: "adv.nldatum.vandaag"}, Adv_Vandaag);

Adv_Vandaag.setDate(Adv_Vandaag.getDate());
Adv_Vandaag = 'm-d-Y'
                     .replace('d', ('0' + Adv_Vandaag.getDate()).toString().slice(-2))
                     .replace('m', ('0' + (Adv_Vandaag.getMonth() + 1)).toString().slice(-2))
                     .replace('Y', Adv_Vandaag.getFullYear());

Adv_Morgen.setDate(Adv_Morgen.getDate() + 1);
Adv_Morgen = 'm-d-Y'
                     .replace('d', ('0' + Adv_Morgen.getDate()).toString().slice(-2))
                     .replace('m', ('0' + (Adv_Morgen.getMonth() + 1)).toString().slice(-2))
                     .replace('Y', Adv_Morgen.getFullYear());

if (args[0] == '' || args[0] == undefined) {
      
      Adv_Vandaag = GetNlDate(Adv_Vandaag);
      await tag("adv.nldatum.vandaag", Adv_Vandaag)
      //await setTagValue("adv.nldatum.vandaag", {type: "string", title: "adv.nldatum.vandaag"}, Adv_Vandaag);
      console.log("vandaag: " + Adv_Vandaag);
      Adv_Morgen = GetNlDate(Adv_Morgen);
      await tag("adv.nldatum.morgen", Adv_Morgen)
      console.log("morgen: " + Adv_Morgen);

    return false;
} else {

      Adv_Vandaag = GetNlDate(Adv_Vandaag);
      //await setTagValue("adv.nldatum.vandaag", {type: "string", title: "adv.nldatum.vandaag"}, Adv_Vandaag);
      console.log("vandaag: " + Adv_Vandaag);
      await tag("adv.nldatum.vandaag", Adv_Vandaag)
      Adv_Morgen = GetNlDate(Adv_Morgen);
      await tag("adv.nldatum.morgen", Adv_Morgen)
      //await setTagValue("adv.nldatum.morgen", {type: "string", title: "adv.nldatum.morgen"}, Adv_Morgen);
      console.log("Morgen: " + Adv_Morgen);
      Adv_Volgendewerkdag = GetNlDate(args[0]);      
      await tag("adv.nldatum.volgendewerkdag", Adv_Volgendewerkdag)
      //await setTagValue("adv.nldatum.volgendewerkdag", {type: "string", title: "adv.nldatum.Adv_Volgendewerkdag"}, Adv_Volgendewerkdag);

}

function GetNlDate(inputdate) {

  let ArgDate = inputdate.split('-');
  let ArgDateEN = new Date(inputdate);
  new Date(ArgDate[2] + "," + ArgDate[1] + "," + ArgDate[0]);

  var Nr = ArgDateEN.getDate();
  const DAYS = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'];
  var Weekdag = DAYS[ArgDateEN.getDay()];
  const MONTHS = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september',          
                  'oktober', 'november', 'december'];
  var Maand = MONTHS[ArgDateEN.getMonth()];
  
  inputdate = Weekdag + " " + Nr + " " + Maand;
  return inputdate;
}

return(true);

Waarom beginnen de tags in je flow met een hoofdletter maar gebruik je in je HomeyScript alleen kleine letters?

och jemig… zo immens lang ermee bezig geweest en opeens zie ik het… Adv.* is met kleine letter in de flow.

pfff… dit is dus alweer opgelost :slight_smile: thnx voor meedenken Robert!

Het volledige werkende script is nu:

Adv_Vandaag  = new Date;
Adv_Morgen = new Date;
Adv_Morgen_krt = new Date;
Adv_Morgen_krt.setDate(Adv_Morgen_krt.getDate() + 1);

Adv_Morgen_krt = 'm-d-Y'
                      .replace('d', ('0' + Adv_Morgen_krt.getDate()).toString().slice(-2))
                      .replace('m', ('0' + (Adv_Morgen_krt.getMonth() + 1)).toString().slice(-2))
                      .replace('Y', Adv_Morgen_krt.getFullYear());

let ArgDate = Adv_Morgen_krt.split('-');
Adv_Morgen_krt = ArgDate[1] + "-" + ArgDate[0] + "-" + ArgDate[2];
await tag("Adv.nldatum.morgen_krt", Adv_Morgen_krt)

if (args[0] == '' || args[0] == undefined) {
  
} else {
  Adv_Volgendewerkdag = args[0];
  let ArgDate = Adv_Volgendewerkdag.split('-');
  let ArgDateEN = new Date(Adv_Volgendewerkdag);
  Adv_Volgendewerkdag = new Date(ArgDate[1] + "-" + ArgDate[0] + "-" + ArgDate[2]);

  Adv_Volgendewerkdag.setDate(Adv_Volgendewerkdag.getDate());
  Adv_Volgendewerkdag = 'm-d-Y'
                      .replace('d', ('0' + Adv_Volgendewerkdag.getDate()).toString().slice(-2))
                      .replace('m', ('0' + (Adv_Volgendewerkdag.getMonth() + 1)).toString().slice(-2))
                      .replace('Y', Adv_Volgendewerkdag.getFullYear());
  }

Adv_Vandaag.setDate(Adv_Vandaag.getDate());
Adv_Vandaag = 'm-d-Y'
                     .replace('d', ('0' + Adv_Vandaag.getDate()).toString().slice(-2))
                     .replace('m', ('0' + (Adv_Vandaag.getMonth() + 1)).toString().slice(-2))
                     .replace('Y', Adv_Vandaag.getFullYear());

Adv_Morgen.setDate(Adv_Morgen.getDate() + 1);
Adv_Morgen = 'm-d-Y'
                     .replace('d', ('0' + Adv_Morgen.getDate()).toString().slice(-2))
                     .replace('m', ('0' + (Adv_Morgen.getMonth() + 1)).toString().slice(-2))
                     .replace('Y', Adv_Morgen.getFullYear());

if (args[0] == '' || args[0] == undefined) {

      Adv_Vandaag = GetNlDate(Adv_Vandaag);
      await tag("Adv.nldatum.vandaag", Adv_Vandaag[0])
      Adv_Morgen = GetNlDate(Adv_Morgen);
      await tag("Adv.nldatum.morgen", Adv_Morgen[0])
      console.log("ori: " + Adv_Morgen[0]);
      console.log("dag: " + Adv_Morgen[1]);

    return false;

} else {

      Adv_Vandaag = GetNlDate(Adv_Vandaag);
      await tag("Adv.nldatum.vandaag", Adv_Vandaag[0])
      await tag("Adv.nldatum.dagnummer", Adv_Vandaag[2])
      await tag("Adv.nldatum.dagnaam", Adv_Vandaag[1])
      await tag("Adv.nldatum.maand", Adv_Vandaag[3])
      Adv_Morgen = GetNlDate(Adv_Morgen);
      await tag("Adv.nldatum.morgen", Adv_Morgen[0])
      Adv_Volgendewerkdag = GetNlDate(Adv_Volgendewerkdag);
      await tag("Adv.nldatum.volgendewerkdag", Adv_Volgendewerkdag[0])
}

///////////////////
// FUNCTIONS
///////////////////

function GetNlDate(inputdate) {

  let ArgDate = inputdate.split('-');
  let ArgDateEN = new Date(inputdate);
  New_arg = new Date(ArgDate[0] + "-" + ArgDate[1] + "-" + ArgDate[2]);

  var Nr = ArgDateEN.getDate();
  const DAYS = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'];
  var Weekdag = DAYS[ArgDateEN.getDay()];
  const MONTHS = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september',          
                  'oktober', 'november', 'december'];
  var Maand = MONTHS[ArgDateEN.getMonth()];
  
  inputdate = Weekdag + " " + Nr + " " + Maand;
  return [inputdate, Weekdag, Nr, Maand];
}

return(true);

en dit returned:

icm iCalendar bepaal ik de NL uitgesproken datum van vandaag, morgen en de volgende werkdag. Ook morgen in het kort, om met iCalendar te bepalen of ik morgen moet werken of niet.