Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Need a little scripting help


mvrekum

Question

Hi,

I need a little scripting help. I have a scene that has to run for a variable number of minutes.

I have the variables "StartTime", "RunTime" and "EndTime"

StartTime is the current time

RunTime is a global variable with the amount of minutes given by another scene.

EndTime is StartTime + RunTime

I compare the current time with EndTime to stop the script.

The problems start when you go over the hour, like StartTime = "1155" and RunTime = "10" then the EndTime would be "1165" it should be "1205"

The same happens at midnight with the hours 23xx to 00xx.

Can anyone help with a simple solution?

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
  • Inquirer
  • Thanks but the script needs to run based on elapsed time, not based on a counter.

    Bur I think I've got it:

    Please login or register to see this code.

    Now I only have to compare the endtime with the current time to stop the scene.

    If EndTime = CurrentTime then abort.

    Link to comment
    Share on other sites

    • 0
    Thanks but the script needs to run based on elapsed time, not based on a counter.

    Bur I think I've got it:

    Please login or register to see this code.

    Now I only have to compare the endtime with the current time to stop the scene.

    If EndTime = CurrentTime then abort.

    if you just use os.time() to retrieve the current number of seconds since epoch you will avoid the issue.

    work in seconds in all calcs and hold start and end as seconds since epoch. you can just use standard arithmetic to add by converting "Time" to number of seconds.

    then you can compare EndTime <= CurrentTime to end the code

    if you just want to pause code for a number of seconds then do an action consider just using fibaro:sleep(1000*60*Time) which will pause the code for Time minutes i.e. until EndTime if code starts at start time

    Link to comment
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...