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


Question

Posted

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.

3 answers to this question

Recommended Posts

  • 0
Posted

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

  • 0
  • Inquirer
  • Posted

     

    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

    • 0
    Posted

    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.

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