Eindelijk de moed gehad om eens te kijken of enkele functions in JavaScript om te zetten in HomeyScript.
Als eerste de paasdatum in een jaar en daarna het Juliaansedag getal van een dag.
Het werk zit in de kop en de staart. De data erin en er weer uit te krijgen.
Helaas ging terug krijgen van een Juliaans dagnummer naar de datum niet lekker.
Wel tijdens het testen maar niet in de flow omgeving.
Dan ga je wat kleine testjes doen en de eerste geeft in de flow omgeving een voor mij onbegrijpelijke fout.
let JulianDay = args[0] // args[0] 2460169.5
var YMD = JulianDay;
var Year = 2023;
var Month = 8;
var DayTotal = 13;
await tag('Yearj', Year);
await tag('Monthj', Month);
await tag('Dayj', DayTotal);
await tag('YMDj', YMD);
console.log(Year,Month,DayTotal,YMD,JulianDay);
return(true);
De kaart antwoord met “het krijgen van een string waar een nummer wordt verwacht.”
Diezelfde kaart geeft bij dezelfde invoer waarde geen fout bij een ander script.
(Wel het bewuste script wat geen uitvoer wil geven.)
De await tag’s zijn die ik in dat andere script wil gebruiken.
Wanneer het hier al fout gaat dan hoef ik niet verder te werken aan het grotere script.
De komma wordt alleen gebruikt voor “display purposes” en is afhankelijk van je land/taalinstelling. Intern (en in scripts) zou het gewoon een nummer met een punt moeten zijn.
Zeker weer de test waarde laten zitten en opgeslagen.
Edit: helaas niet gevonden
Het is niet voor niets een testscript.
Alleen door tikfouten en test tag's is die lijst onder "hom" wat vervuild.
Zo die graag zelf opruimen. Kan dat?
Bedankt allemaal voor het meedenken.
Nu dan toch verder met het lastigere script.
Die ‘YMDj’ geeft het probleem en met name de j achteraan.
Deze heeft wel een een groene tag. Ook een andere van een ander script.
Later maar verder uitzoeken waarom.
@Torch1969, ik ga vanavond eens kijken hoe “example-tag.js” werkt. Bedankt.
Na zo’n 2,5 uur rommelen denk ik dat ik het nu begrijp, alhoewel…
Het vreemdste is wel dat zaken soms wel en dan weer niet werken.
Mij Easter script werkte ineens ook niet meer bij het testen.
De tip: var YMD = Number(JulianDay); werkte eerst ook echt niet.
Toen maar puin gaan ruimen in het HomeyScipt tag chaos.
Daarna
let input_easter = args[0] // args[0] 2023
var easteryear = Number(input_easter);
Dit wil ik dan ook standaard gaan doen.
De naam van het script in de input.
Hoewel twee script zeer nauw verwant zijn blijkt dat je moet uitkijken naar benamingen.
YMDtoJullian en JulianToYMD.
Vanavond zal il wel niet meer verder gaan om die laatste verder te bekijken met omzetten.