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

LUA 2 warunki wartość lub czas


skam84

Question

Witam,

potrzebuje przykład sceny która jest zależna od dwóch wartości:

1. wartości z czujnika

2. czasu trwania

 

Scena mniej więcej ma wyglądać tak:

Jeżeli na czujniku jest wilgotność >=60% to... włacz wentylator - i wyłacz wentylator jeżeli wilgotność <=50% lub mineło 30 min od właczenia się wentylatora.

 

Jakis pomysł na to?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Hi

 

Member Cafun added the following LUA script that you could modify to do what you want I think.

 

Please login or register to see this link.

Link to comment
Share on other sites

  • 0
  • Inquirer
  • Inaczej co sie moglo stac ze dla kazdego zapytania tonumber(fibaro:getValue(44, "value")) zwraca nil? tak samo dla global zmiennej startSource["type"]...

     

    Dobra nie bylo pytania wkradła sie . zamiast :

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • Jedno pytanie.. Jak to zmienic zeby po tym jak wentylator sie wlaczy i podziała czas "czasDzialania" to zeby sie wiecej nie wlaczal lub poczekał godzine

     

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

    local czujkaWilgotnosciID=89;
    local wentylatorID=102;
    local wilgotnoscWlacz=57;
    local wilgotnoscWylacz=55;
    local czasDzialania=30*60; --30minut

    local czasCzekaj=60*60; --60minut
    local czasStart=0;
    local czasLastOff=0;


    while true do
      czasTeraz=os.time();
      WilgotnoscWartosc=tonumber(fibaro:getValue(czujkaWilgotnosciID, "value"));
     
      fibaro:debug("Wilg %: "..WilgotnoscWartosc);
        
    -- wlacz wentylator ---------------------------------------------------------
      if((tonumber(fibaro:getValue(wentylatorID, "value"))==0 and WilgotnoscWartosc>=wilgotnoscWlacz))
        then
        fibaro:call(wentylatorID, "turnOn");
        if czasStart==0 then czasStart=os.time() end
        --if czasLastOff>0 then czasLastOff=0 end
        fibaro:debug("ON");
      end
        
    -----------------------------------------------------------------------------
     
    -- wylacz wentylator --------------------------------------------------------
      if(tonumber(fibaro:getValue(wentylatorID, "value"))==1 and (WilgotnoscWartosc<=wilgotnoscWylacz or czasTeraz-czasStart>czasDzialania))
        then
        fibaro:call(wentylatorID, "turnOff");
        if czasStart>0 then czasStart=0 end
        czasLastOff=os.time();
        fibaro:debug("OFF");
      end --if
     
    -----------------------------------------------------------------------------
     
     
    -- debug --------------------------------------------------------------------
    fibaro:debug("roznica: "..czasTeraz-czasStart .." czasStart: "..czasStart);
    fibaro:debug(czasLastOff.." xx "..czasTeraz-czasLastOff);
    -----------------------------------------------------------------------------
      fibaro:sleep(10*1000)
    end --while
     

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • Dobra nie było pomocy to sam cos napisalem

    Możę ktoś to poprawi, może komuś się przyda.

    Please login or register to see this code.

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • Dobra pytanie techniczne

    mam scene ktorej kod ponizej. zrobiony prosty debug. Mozecie stwierdzic czemu co jakis czas jest uruchamiana kilku krotnie. Zaznaczony jest ptaszek "Scena aktywna"

     

    Oto moj log:

    [DEBUG] 08:37:40: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 87% (<=99%), NB: 1
    [DEBUG] 08:38:40: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 87% (<=99%), NB: 1
    [DEBUG] 08:39:00: ---Scena wywolana kilkukrotnie---
    [DEBUG] 08:39:40: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 93% (<=99%), NB: 1
    [DEBUG] 08:40:01: ---Scena wywolana kilkukrotnie---
    [DEBUG] 08:40:40: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 87% (<=99%), NB: 1
    [DEBUG] 09:00:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 87% (<=99%), NB: 1
    [DEBUG] 09:01:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 87% (<=99%), NB: 1
    [DEBUG] 09:02:00: ---Scena wywolana kilkukrotnie---
    [DEBUG] 09:02:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 09:03:00: ---Scena wywolana kilkukrotnie---
    [DEBUG] 09:03:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 87% (<=99%), NB: 1
    [DEBUG] 09:04:00: ---Scena wywolana kilkukrotnie---
    [DEBUG] 09:04:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 09:05:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 09:06:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 09:16:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 09:35:41: Wilgotnosc wewnątrz: 41% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 09:36:09: ---Scena wywolana kilkukrotnie---
    [DEBUG] 09:36:41: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 10:31:43: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 10:32:00: ---Scena wywolana kilkukrotnie---
    [DEBUG] 10:32:43: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 93% (<=99%), NB: 1
    [DEBUG] 10:33:43: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 93% (<=99%), NB: 1
    [DEBUG] 10:34:00: ---Scena wywolana kilkukrotnie---
    [DEBUG] 10:34:43: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 100% (<=99%), NB: 1
    [DEBUG] 10:35:01: ---Scena wywolana kilkukrotnie---
    [DEBUG] 10:35:43: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 93% (<=99%), NB: 1
    [DEBUG] 10:38:43: Wilgotnosc wewnątrz: 42% (>=60%), na zewnątrz: 93% (<=99%), NB: 1

     

    itd. Jak odznacze "Scena aktywna" i klikne recznei start to taka sytuacja sie nie zdarza.

     

    Pozniej kod; (pomijajac ze zjada RAM.. musze doszukac czemu)

    Please login or register to see this code.

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