Opis
Główna idea
Jest to kolejna dawka wiedzy o tym jak programować sceny Lua w centrali HC2.
Program realizowany przez scenę obsłuży dwa wyjątkowo proste i niezbędne w każdym inteligentnym domu urządzenia: Motion Sensor i Dimmer.
Uwaga
Podstawowym wyzwaniem jest wyłączenie światła z opóźnieniem po ostatnim wykryciu ruchu, co zagwarantuje utrzymanie oświetlenia tak długo, jak jest to faktycznie potrzebne.
Informacje dodatkowe
Moje zalecenia
Zawsze przeanalizuj kod, a zwłaszcza wywoływanie sceny stosując polecenia fibaro:debug lub print pod kątem ilości wywołań sceny. Tutaj uzależnienie wywołania sceny od detekcji ruchu jest dobrym pomysłem ale wymaga natychmiastowego sprawdzenia czy już wcześniejszy proces (instancja) nie jest w trakcie wykonywania sceny. Naprawdę odpowiednie użycie funkcji "fibaro:countScenes" i "fibaro:abort" rozwiąże wiele twoich problemów - nie bój się przetestować!
O filmach serii
1000
Poruszane tematy
Ta seria to wyjątkowa wiedza jaką zdobędziesz o programowaniu centrali HC2 przy wykorzystaniu scen Lua. Odpowiednio napisana scena pozwoli na dodanie pewnej inteligencji do mechanizmu zapalania i gaszenia światła. Światło jest zapalane wtedy, gdy Motion Sensor wykryje ruch, a gaszone automatycznie po określonym czasie. Niby nic nadzwyczajnego, ale jak zrobić by światło nie zgasło za wcześnie, zanim nie opuścisz schodów lub holu?
W tej serii dowiesz się
jak określić jakie zdarzenie ma wywołać scenę
nauczysz się do czego służy komenda "fibaro:sleep" i czym się różni od "setTimeout"
powiem ci jak zapewnić, aby scena była wykonywana tylko przez jeden proces (jedną instancję)
jak zintegrować pracę Dimmer 2 z Motion Sensor, aby sterować światłem w dowolny sposób
Zastosowania
Wykorzystasz wiedzę z filmów do tego, aby:
swobodnie pisać podobne sceny Lua i sterować urządzeniami FIBARO
usprawnić swoje sceny, które działają niepoprawnie z powodu wykonywania ich przez wiele instancji
bezpośrednio wprowadzić w życie zademonstrowane przeze mnie rozwiązanie oświetlenia w holu lub na schodach (gotowe do pobrania)
połączyć w sposób inteligentny detekcję ruchu z załączeniem i utrzymaniem palącego się światła tak długo jak jest ono naprawdę potrzebne
Materiały dodatkowe
Do pobrania (kody źródłowe)
Kod użyty przeze mnie podczas pisania sceny Lua dla HC2
Wymaga aktywnej subskrypcji do portalu
Pojęcia i znaczenia
Ilość instancji - parametr wyświetlany na ogólnym widoku scen np. "Uruchomione instancje: 1" - jest to faktyczna ilość procesów jakie w danej chwili wykonują kod ze sceny. Z reguły jeśli scena jest wykonywana przez więcej niż jeden proces to jest coś nie tak. Należy zmienić zdarzenie wywołujące scenę lub "zabić" każdy kolejny proces rozpoczynający wykonywanie sceny, jeśli istnieje już inny proces który ją wykonuje.