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

Załączenie wyłączenie pompy timer


Gregory

Question

Witam mam problem ze sceną chciałbym w LUA stworzyć scenę zintegrowaną w jednej całości. Niestety wywala mi błąd. Czy ktoś z szanownych kolegów jest w stanie mi pomóc?

Zależy mi na załączeniu podłogowego o określonym czasie i wyłączenie- tak na początek.

 

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]

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) == "16:25") )
)
then
    fibaro:call(107, "turnOn");
end

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

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();

if (
startSource["type"] == "other"
)
then
    fibaro:call(107, "turnOn");

else    
    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) == "16:27") )
)
then
    fibaro:call(107, "turnOff");
end

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

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
    fibaro:call(107, "turnOff");
end

end

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
  • Inquirer
  • Witam, 

    Błąd wyglada tak, niestety LUA nie jest moja mocną stroną, własnie próbuje go zrozumieć, a bloczki niestety nie spełniają moich oczekiwań i rozwiązań.

    [DEBUG line 64:'end'expected (to close 'if' at line 29) near]

    Link to comment
    Share on other sites

    • 0

    --[[
    %% autostart
    %% properties
    %% events
    %% globals
    --]]

    function tempFunc()
      fibaro:debug("start")
    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) == "16:25") )
    )
    then
        fibaro:call(107, "turnOn");
    elseif 
        (
     ( ((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) == "16:27") )
    )
    then
        fibaro:call(107, "turnOff");
    end
    end

    tempFunc()

     

     

     

    to tak na szybko poprawiałem, sprawdź podstawiając inne godziny

    Link to comment
    Share on other sites

    • 0
    53 minuty temu, viperlodz napisał:

    Nie zamknąłeś if'a.

    Dobre tłumaczenie :), ale sam kod ....... pozostawia wiele do zyczenia , tak sie dzieje podczas konwertowania z bloczków do LUA

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 47 minut temu, domin12 napisał:

    Dobre tłumaczenie :), ale sam kod ....... pozostawia wiele do zyczenia , tak sie dzieje podczas konwertowania z bloczków do LUA

    Tak fakt, konwertowałem i wyszło mydło powidło teraz widzę spójność sceny, niestety debug jest ok ale scena samoistnie nie  załącza urządzenia, załącza jesli wystartuje ręcznie w obrębie czasu załączania i wyłącza w obrębie czasy wyłącznia czyli coś z autostartem?

    Link to comment
    Share on other sites

    • 0
    10 godzin temu, Gregory napisał:

    Tak fakt, konwertowałem i wyszło mydło powidło teraz widzę spójność sceny, niestety debug jest ok ale scena samoistnie nie  załącza urządzenia, załącza jesli wystartuje ręcznie w obrębie czasu załączania i wyłącza w obrębie czasy wyłącznia czyli coś z autostartem?

    Hi @Gregory , sprawdź to rozwiązanie:

     

    --[[
    %% autostart
    %% properties
    %% events
    %% globals
    --]]

    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) == "16:25") )
    )
    then
        fibaro:call(107, "turnOn");
    elseif 
        (
     ( ((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) == "16:27") )
    )
    then
        fibaro:call(107, "turnOff");
    end

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


     

     

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 10 godzin temu, domin12 napisał:
    10 godzin temu, viperlodz napisał:

    A jak chcesz żeby to działało?

     

    Załączenie i wyłączenie urządzenia codziennie o wybranej porze dnia. 

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 12 minut temu, domin12 napisał:

    Podałem Ci gotowe rozwiazanie, sprawdź

    Tak  umknęło mi, scena wystartowała idealnie jest ok działa, widzę na dole autostart. 

    Dziekuję za pomoc. 

    Mam pytanie od czego zacząć i na jakich narzędziach pracować by opanować dobrze LUA, czy są jakieś edytory by nie pracować na interfejsie fibaro? Możesz mi coś poradzić?

    Link to comment
    Share on other sites

    • 0
    19 minut temu, Gregory napisał:

    Tak  umknęło mi, scena wystartowała idealnie jest ok działa, widzę na dole autostart. 

    Dziekuję za pomoc. 

    Mam pytanie od czego zacząć i na jakich narzędziach pracować by opanować dobrze LUA, czy są jakieś edytory by nie pracować na interfejsie fibaro? Możesz mi coś poradzić?

    Ja używam visual Studio Code, co do lua, nie znam żadnych poradników , bo nie szukałem , ale na forum są tematy z tym związane , poszukaj

     

    BTW , do takich scen opartych na czasie możesz wykorzystać jedną ze scen kolegów z forum :

    jest bdb opisana i wytłumaczona

    Edited by domin12
    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...