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

Scences start on wrong time


Lud

Question

Block scene (see attachment) should only start on exact time at 7:53 but it start at 22:07.

The Block Scene was a copy from similar scene without "temperature" who's works correctly on exact Time 07:55

I added only "And Temperatur . . . " and change Time an save it.



(to find the Amok-Scene I had modified RollerShutterPosition from Value 99 to 93 to see what Scenes was the reason,
then the time was moved from 22:07 to 00:07 )
 

I had similar problem with block scenes last times when I do copy scenes modify and save.

 

Why does start event on wrong time?
 

Please login or register to see this attachment.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Could you please convert the Block scene to LUA and post it

Link to comment
Share on other sites

  • 0
  • Inquirer
  •  

    Here the same as LUA - Code

     

     

    --[[
    %% autostart
    %% properties
    %% weather
    Temperature
    %% events
    %% globals
    g_RL_Freigabe
    g_RL_SommerMode
    --]]

    local sourceTrigger = fibaro:getSourceTrigger();
    function tempFunc()
    local currentDate = os.date("*t");
    local startSource = fibaro:getSourceTrigger();
    if (
     ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "07:53") )
    and
     ( tonumber(fibaro:getGlobalValue("g_RL_Freigabe")) > tonumber("0")  and  tonumber(fibaro:getGlobalValue("g_RL_SommerMode")) == tonumber("1")  and  tonumber(api.get('/weather')['Temperature']) < tonumber(20) )
    )
    then
        setTimeout(function()
            fibaro:call(405, "setValue", "93");
        fibaro:call(400, "setValue", "93");
        fibaro:call(505, "setValue", "93");
        fibaro:call(500, "setValue", "93");
        fibaro:call(495, "setValue", "93");
        end, 2000)
    end

    setTimeout(tempFunc, 60*1000)
    end
    if (sourceTrigger["type"] == "autostart") then
    tempFunc()
    else

    local currentDate = os.date("*t");
    local startSource = fibaro:getSourceTrigger();
    if (
     ( (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) )
    and
     ( tonumber(fibaro:getGlobalValue("g_RL_Freigabe")) > tonumber("0")  and  tonumber(fibaro:getGlobalValue("g_RL_SommerMode")) == tonumber("1")  and  tonumber(api.get('/weather')['Temperature']) < tonumber(20) )
    or
    startSource["type"] == "other"
    )
    then
        setTimeout(function()
            fibaro:call(405, "setValue", "93");
        fibaro:call(400, "setValue", "93");
        fibaro:call(505, "setValue", "93");
        fibaro:call(500, "setValue", "93");
        fibaro:call(495, "setValue", "93");
        end, 2000)
    end

    end

    Link to comment
    Share on other sites

    • 0

    That's strange, looks like the scene is triggered when all conditions are met regardless the exact time...  according to the line 

     ( (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) )


     as you can see no timestamp condition as in the tempFunc() function:

     ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "07:53") )

     

    My suggestion is to use Lua scene and to delete all extra code.

    Please login or register to see this code.

    Copy code above to your Lua Scene, it should work correctly.

    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...