HomeyScript seconden naar uren, minuten en seconden

Erg leuk, interessant en handig! Kon t niet laten om zelf uit te proberen.
Script en Chronograph stopwatch device als ‘apparaat’ is niet nodig.

Zoals Edwin zegt, de [looptijd (s)] tag is beschikbaar in flows, en te vinden bij de Lokale Tags, bij gebruik van kaartje “ALS timer/stopwatch is gestopt/gepauzeerd” als trigger. (Wist ik niet, erg handige feature wel!)

  • Start / End flow

  • Berekening, waarde naar variabele schrijven en melding sturen flow

Precies: bij het kaartje. Dus als je het kaartje niet gebruikt als trigger, is de looptijd er niet. Het kaartje zorgt dat de lokale tag er is. In de app zelf zou ook lastig zijn, omdat je heel veel stopwatches aan kunt maken. Dus welke looptijd bedoel je dan…

1 Like

Top,
Ik was inderdaad niet op de hoogte van het gebruik van lokale tags! Zo gaat het goed
Bedankt, Groeten Ramon

1 Like

Zie mijn screenshots ervan…

@Peter_Kawa ik zei dat… lol :slight_smile: Edwin herhaalde het :wink:

Misschien zei je het, maar ik kon [looptijd (s)] hier zelf ook niet vinden met jouw uitleg.

Ik snapte pas waar je die tag kon vinden toen ik er zelf mee ging stoeien.
Vandaar mijn extra uitleg met wat duidelijker voorbeelden.

Heb hier dit script geïmplementeerd (deels op basis van dit script hier), werkt prima!

let seconds = args[0]
let setAll = 0;

if (seconds == '' || seconds == undefined) {
    console.log ('Missing argument');
    return false;
} else {
  d = seconds;
  var h = Math.floor(d / 3600);
  var m = Math.floor(d % 3600 / 60);
  var s = Math.floor(d % 3600 % 60);

  var hDisplay = h > 0 ? h + (h == 1 ? " uur, " : " uren, ") : "";
  var mDisplay = m > 0 ? m + (m == 1 ? " minuut, " : " minuten, ") : "";
  var sDisplay = s > 0 ? s + (s == 1 ? " seconde" : " seconden") : "";
  setAll = hDisplay + mDisplay + sDisplay; 
  await setTagValue("totaleTijd", {type: "string", title: "totaleTijd"}, setAll);
}
console.log(setAll);
return(true);
1 Like

@SossieNL Heb je niet deze foutmelding gekregen?
Warning: setTagValue(id, opts, value) is deprecated, please use tag(id, value)

je kunt dus eenvoudig gebruiken: await tag('totaleTijd', setAll);

1 Like