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


  • 2

Scena LUA - pomoc w napisaniu


Question

Posted

Witam, 

Zaczynam swoją przygodę z Fibaro i podczas tworzenia jednej ze scen natrafiłem na problem, który można rozwiązać tylko konstruując ją pod LUA, w którym niestety nie mam doświadczenia.

Czy ktoś mógłby mi pomóc w jej napisaniu? 

 

Opis sceny:

Czujka_ruchu wykrywa ruch i włącza światło, które świeci się przez 2 minuty. Każde kolejne naruszenie czujki resetuje te 2 minuty i odlicza od nowa.

Jeśli czujka nie będzie naruszana to światło zgaśnie 

Do tego chciałbym dodać warunek wartości LUX 

 

<mam nadzieję, że opisałem to w zrozumiały sposób>

 

Adam

2 answers to this question

Recommended Posts

  • 0
Posted (edited)

Widzę, że nikt bardziej obeznany się jeszcze nie pofatygował by pomóc, więc ja spróbuję.

Niestety nie posiadam żadnej czujki ruchu w domu, więc nie bardzo wiem jak zrobić wyzwalacz... Z tego co widzę masz HCL, więc mam nadzieję, że LUA działa tak samo jak w HC2.

 

No to próbujemy... trochę na około, bo właśnie te moje drobne braki wiedzy...

Zrób scenę blokową, która uruchamia się na czujkę ruchu i niech wykonuje absolutnie cokolwiek i przerób na LUA (musi mieć akcję, bo inaczej się nie przekształci prawidłowo)

Jak już przekształcisz, to skasuj wszystko oprócz fragmentu od wyzwalaczy, czyli tej części:

Please login or register to see this code.

Tę część zostaw tak, jak się wygeneruje, nie kasuj przypadkiem linii, których tu nie widzisz, to one są najważniejsze!

 

Dodatkowo dopisz do tej sekcji jeszcze jedną linię:

Please login or register to see this code.

Spowoduje ona przerwanie wykonywania innych instancji tej samej sceny. Później wyjaśnię dlaczego to konieczne.

 

I jedziemy z właściwym kodem:

Please login or register to see this code.

Zabijanie instancji sprawi, że gdy scena "śpi" i ktoś przejdzie, to wtedy stara instancja zostanie zabita i nigdy nie dojdzie do miejsca, gdzie by się znów "obudziła" i zgasiła światło. Tę akcję przejmuje świeżo utworzona instancja.

 

Widzę tylko jeden potencjalny problem... Jeśli zapalenie światła sprawi, że miniemy wartość graniczną i wtedy ktoś przejdzie... to światło już nie zgaśnie :/

 

Najprostszym rozwiązaniem będzie utworzenie drugiej sceny... ta może być zupełnie pozbawiona wyzwalaczy, bo będzie uruchamiana tylko z pierwszej. A to kod (bardzo krótki) drugiej sceny:

Please login or register to see this code.

 I modyfikujemy pierwszą:

Please login or register to see this code.

Nie modyfikuj wyzwalaczy w pierwszej scenie, tak nadal jest dobrze.

Mam nadzieję, że po kilkunastu edycjach nie przegapiłem już żadnej sytuacji brzegowej...

 

Trochę tutorialowo to napisałem, mam nadzieję, że się nie pogubisz :)

Edited by pogo
  • 0
  • Inquirer
  • Posted

    Dzięki pogo, dzięki za pomoc, biorę się do pracy ?

    Nie dopisałem że moja centrala to HC3, nie zaktualizowałem info 

    Dam znać jak poszło 

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