Removing part of string

Hi,
I need to remove a part of a variable.
My Bosch washing machine reports remaining time as «160:0».
I need a flow for removing the «:0»-part and setting this as a number variable.

Any tips? :slight_smile:

This converts the time tag (string), say it is 11:07 AM, into the numeric value 11

Screenshot from 2023-04-26 19-46-34

I’m sure you can do the same with the Bosch variable/tag
{{ 0+("<RemainingTimeTag>".split(":")[1]) }}

You can play with the [1] if the wrong part is omitted before or after the ":" sign, by using [2] etc.

1 Like

Thanks @Peter_Koolen! :grinning:

2 Likes

Next question @Peter_Kawa, how can I easily convert a numeric value (160) into a text variable in the format “1 hour and 40 minutes”?

Is it a quiz? :stuck_out_tongue_winking_eye:
Oh i’m not mister Koolen :blush: :wink:

Screenshot from 2023-04-26 21-33-14

Use the following THEN card
Screenshot from 2023-04-26 21-22-07

Replace the example code at the [Code] part with:

//Convert number (as argument) to HH:mm

function toHoursAndMinutes(totalMinutes) {
  const hours = Math.floor(totalMinutes / 60);
  const minutes = totalMinutes % 60;

  return `${hours} hour and${minutes > 0 ? ` ${Math.round(minutes)} minutes` : ''}`;
}

// To check the argument value:
console.log("Argument value:", args[0]);

return toHoursAndMinutes(args[0]);

Then you’ll get something similar like this, use a numeric variable or tag of your choice (I used just a numeric variable) as argument (=input), connect both cards and use local [Result] string tag in further processing:

The minutes get rounded, to avoid f.i. 45.766666666666 as the minutes number

Wrong Peter, typed without my glasses :nerd_face::sweat_smile:
Yet again: thanks a bunch @Peter_Kawa!! :grinning::grinning:

1 Like

Or you can use the Better Logic Library expressioncard:
Place this in the card: time('H" hours and "m" minutes"', 160*60*1000) and replace the 160 with the token/tag.

image
@Peter_Kawa

3 Likes

Endes up using this, @Arie_J_Godschalk. :grinning:
What If I want to add this value to the current time, and calculste at what time the washing machine is done?

At what time (date) in the day you mean?

Here, here you just add your token and multiply it to be milliseconds.
Then you add the current Date.now(), which is the current time in milliseconds.
The result you put as second parameter to the date() function.
For other formats than datetime, like just time, see the Better Logic Library App Settings, there are a lot of options and you can create your own custom pre-defined format:

date('datetime', Date.now() + 160*60*1000)

1 Like