APNT-29 - Rozszerzanie <tc>Fibaro</tc> Możliwości HC2 Wschód/Zachód Słońca

Ten Fibaro Home Center 2 ma kilka ograniczeń dotyczących godzin zachodu i wschodu słońca, których można używać w scenach. Na przykład, można wybrać 15, 30, 45 i 60 minut przed wschodem słońca oraz 15, 30, 45 i 60 minut po zachodzie słońca. Nie można jednak wybrać 60 minut przed zachodem słońca ani żadnych innych wartości.

W rzeczywistości bardzo łatwo jest zmienić jedną linijkę kodu LUA, aby wydłużyć czas zachodu/wschodu słońca do dowolnego wybranego momentu.

Jako przykład wykorzystamy scenę Zachód słońca, którą wykorzystaliśmy w Notatce Aplikacyjnej nr 28 -

Sunset On Scene

Ta scena włącza światło dokładnie o zachodzie słońca. Działa to dobrze w przypadku oświetlenia zewnętrznego, ale jeśli używasz tej samej sceny do oświetlenia wewnętrznego, prawdopodobnie chcesz, aby zostało ono włączone przed zachodem słońca, ponieważ w budynku robi się coraz ciemniej.

Zmieńmy więc to tak, aby scena była aktywowana na godzinę przed zachodem słońca.

Wyświetl kod LUA

Aby to zrobić musimy zmienić jedną linijkę kodu LUA, który faktycznie uruchamia tę scenę.

  • Na scenie Zaawansowany przejdź do zakładki Przełącz tryb edycji sceny na bazę LUA
  • Kliknij 'Zmiana'
  • Kod LUA jest wyświetlany w oknie HC2 (pokazanym poniżej)

HC2 LUA Scene Code

  • Interesuje nas linia kodu: Linia 14.

( ((currentDate.wday == 2 lub currentDate.wday == 3 lub currentDate.wday == 4 lub currentDate.wday == 5 lub currentDate.wday == 6) i string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "godzinazachodusłońca"))) )

  • Aby to zmienić, tak aby scena była aktywowana 60 minut przed zachodem słońca, zmieniamy wiersz 14 na:

( ((currentDate.wday == 2 lub currentDate.wday == 3 lub currentDate.wday == 4 lub currentDate.wday == 5 lub currentDate.wday == 6) i os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "godzinazachodusłońca"))) )

  • Kod kontrolujący czas przed lub po zachodzie słońca jest oznaczony pogrubioną czcionką - os.time()+60*60)
    • Jeśli to jest pozytywne '+' scena zostanie aktywowana przed zachodem słońca, jeśli jest ujemna '-' zostanie aktywowany później
    • Czas przed/po jest określany za pomocą liczb,+60*60W tym przykładzie aktywuje się 60 minut przed zachodem słońca, 90 minut to będzie '+90*60'
  • Uwaga: Aby przetestować ten kod, ustawiłem oryginalną scenę na godzinę po zachodzie słońca. Kod LUA dla tej sceny był identyczny z nowym kodem, którego użyliśmy powyżej, z wyjątkiem tego, że… os.time()-60*60). Tak więc po prostu zmieniając sekcję kodu na os.time()+60*60) mamy teraz scenę, która wyświetla się na 1 godzinę przed zachodem słońca.

Zmień kod LUA

Aby zmienić kod LUA i wykorzystać nową linijkę kodu (linia 14), musimy włączyć tryb edycji LUA.

Ważny - Sugeruję, abyś wykonał tę czynność dopiero wtedy, gdy reszta sceny będzie działać poprawnie — nie możesz przejść z edytora opartego na LUA z powrotem do edytora bloków graficznych.

Gdy będziesz gotowy, zmień edytor na bazujący na LUA.

  • Jeśli nie jesteś jeszcze w sekcji LUA na karcie „Zaawansowane”, przejdź do Przełącz tryb edycji sceny na bazę LUA, kliknij 'Zmiana'
  • Kliknij 'Włączyć coś'

HC2 LUA Editor

  • Kliknij 'OKw oknie dialogowym ostrzeżenia
  • Zmień linię 14 na nowy kod
  • Kliknij „Ratowaćprzycisk „ w menu po prawej stronie

HC2 final LUA Code


Scena będzie teraz wyświetlana 60 minut przed zachodem słońca.

Wykorzystując tę ​​prostą zmianę kodu możemy uruchomić sceny przed lub po zachodzie/wschodzie słońca, jak również w dowolnym wybranym przez nas momencie.

Informacje powiązane