Baza wiedzy Sinum

Kod Lua w urządzeniach niestandardowych

Poniższy rozdział zawiera krótkie wprowadzenie do sposobu działania kodu Lua w urządzeniach niestandardowych. Opisuje podstawowe pojęcia i zasady wykonywania kodu w tym typie urządzeń, co ułatwi dalszą konfigurację i implementację.

Urządzenia niestandardowe, podobnie jak sceny i automatyzacje w systemie Sinum, działają w oparciu o język Lua. W zależności od konfiguracji, kod w urządzeniu może być uruchamiany automatycznie — np. po wystąpieniu zdarzenia — lub ręcznie, w odpowiedzi na działanie użytkownika.

W odróżnieniu od scen, urządzenia niestandardowe umożliwiają definiowanie funkcji, które wykonują się na żądanie, np. po kliknięciu przycisku lub zmianie wartości suwaka. Takie funkcje przypisane są do konkretnych elementów interfejsu i nazywane są callbackami.

Callback to funkcja, która zostaje wywołana tylko w momencie zmiany stanu przypisanego do niej elementu (np. kliknięcie przycisku, przesunięcie suwaka). Dzięki temu nie ma potrzeby pisania dodatkowego kodu monitorującego warunki w systemie — wystarczy wskazać, co ma się wydarzyć po zmianie danego elementu.

Funkcje typu callback muszą być zdefiniowane z odpowiednim przedrostkiem, który identyfikuje je jako część danego urządzenia. Istnieje również możliwość tworzenia dodatkowych funkcji pomocniczych, które można później wykorzystywać wewnątrz innych funkcji urządzenia.

Dodatkowo możliwe jest zdefiniowanie funkcji, która uruchamia się po każdym zdarzeniu w centrali — jej działanie jest zbliżone do standardowych automatyzacji. Nie jest to jednak wymagane, jeśli wszystkie działania mają być realizowane tylko w odpowiedzi na interakcje z użytkownikiem.

Kod w urządzeniu niestandardowym wykonuje się liniowo, ale wyłącznie w zakresie danego działania — np. tylko w ramach wywołanej funkcji przypisanej do klikniętego przycisku. Pozwala to optymalizować działanie urządzenia i ograniczyć niepotrzebne obciążenie systemu.

W celu poprawienia czytelności kodu możliwe jest umieszczanie komentarzy, które nie wpływają na jego działanie. Komentarze są szczególnie przydatne przy bardziej rozbudowanych urządzeniach lub podczas współpracy z innymi użytkownikami.

Pełna dokumentacja języka Lua dostępna w systemie Sinum zawiera opisy wszystkich możliwych akcji i metod. Można ją otworzyć w edytorze kodu scen, automatyzacji oraz urządzeń niestandardowych, korzystając z przycisku w górnej części ekranu.

Na końcu każdego rozdziału znajdują się gotowe przykłady kodu, które można wykorzystać w swoich implementacjach.