Skip to content

weekly-timer

Opis

Bloczek weekly-timer służy do tworzenia tygodniowego programu czasowego. Działa według lokalnego czasu urządzenia, a jego wejście pozwala włączać i wyłączać harmonogram.

Bloczek pozwala ustawić od 1 do 10 niezależnych slotów czasowych. Każdy slot określa dni, godzinę rozpoczęcia i godzinę zakończenia. Bloczek jest aktywny, gdy aktualny czas pasuje do co najmniej jednego aktywnego slotu i kalendarz jest włączony.

Warunki dni w pojedynczym slocie są sumowane logicznie. Oznacza to, że slot ustawiony na poniedziałek oraz święto polskie zadziała w poniedziałki albo w obsługiwane święta polskie. Wszystkie sloty również są sumowane logicznie, więc wystarczy dopasowanie jednego slotu.

Przedział czasowy może przechodzić przez północ. Dla przykładu slot ustawiony na poniedziałek od 23:30 do 06:15 jest aktywny od poniedziałku 23:30:00 do wtorku 06:15:59. Końcowa minuta przedziału jest wliczana do aktywności, a zmiana stanu następuje po jej zakończeniu.

Bloczek ma powiązane urządzenie vlogic dostępne w aplikacji mobilnej. Z aplikacji można włączać i wyłączać kalendarz, edytować sloty czasowe oraz obserwować bieżący stan pracy. Zmiana stanu włączenia z aplikacji mobilnej jest nietrwała: obowiązuje do następnej poprawnej zmiany z wejścia lub aplikacji albo do przeładowania projektu. To urządzenie nie jest dostępne z poziomu aplikacji WWW.

Parametry konfiguracyjne

Nazwa parametru Wartość
Nazwa (name) Opcjonalna nazwa widoczna w aplikacji mobilnej.
Wersja ustawień (json_settings_version) Numer wersji konfiguracji używany przy synchronizacji ustawień z aplikacją mobilną.
Sloty czasowe (active_time_1 ... active_time_10) Od 1 do 10 niezależnych przedziałów czasu. Każdy używany slot zawiera listę dni, godzinę rozpoczęcia i godzinę zakończenia.

Każdy używany slot czasowy zawiera:

Nazwa pola Wartość
Lista dni (day_mask) Lista warunków dnia: 1 poniedziałek, 2 wtorek, 3 środa, 4 czwartek, 5 piątek, 6 sobota, 7 niedziela, 8 święto polskie.
Godzina rozpoczęcia (startHour) Godzina w formacie HH:MM, od 00:00 do 23:59.
Godzina zakończenia (endHour) Godzina w formacie HH:MM, od 00:00 do 23:59.

Pusta lista dni oznacza nieużywany slot. Sloty nie muszą być uzupełnione kolejno, więc można użyć na przykład active_time_2 bez active_time_1.

Godzina rozpoczęcia i zakończenia muszą być różne. Bloczek wymaga co najmniej jednego aktywnego slotu z niepustą listą dni.

Obsługa wejścia

Bloczek weekly-timer ma jedno wejście sterujące bieżącym stanem włączenia harmonogramu.

Jeżeli wejście nie jest podłączone, po uruchomieniu projektu harmonogram jest włączony. Jeżeli do wejścia jest podłączone co najmniej jedno źródło, harmonogram rozpoczyna pracę jako wyłączony. Poprawna wartość inicjalizacyjna wysłana przez źródło może od razu zmienić ten stan. Jeśli podłączone źródła nie wyślą żadnej wartości, harmonogram pozostaje wyłączony.

Wejście obsługuje wyłącznie ścisłe wartości logiczne: true włącza harmonogram, a false go wyłącza. Wartości liczbowe, tekst, null oraz komendy set i reset wysłane z bloczka command są ignorowane. Ponowne wysłanie wartości zgodnej z bieżącym stanem nie powoduje żadnej reakcji.

Do wejścia można podłączyć wiele źródeł. Bloczek nie łączy ich stanów — obowiązuje ostatnia odebrana poprawna wartość logiczna. Zmiana wykonana z aplikacji mobilnej podlega tej samej regule, więc ostatnia poprawna zmiana z wejścia albo aplikacji wyznacza bieżący stan. Po przeładowaniu projektu stan jest ponownie ustalany wyłącznie na podstawie obecności połączenia wejściowego.

Wyjścia bloczka

Numer i nazwa wyjścia Opis wyjścia
1. praca Zwraca true, gdy aktualnie obowiązuje co najmniej jeden slot czasowy i kalendarz jest włączony. W przeciwnym przypadku zwraca false.
2. przerwa Zwraca wartość przeciwną do wyjścia nr 1.
3. czy kalendarz jest włączony Zwraca bieżący, efektywny stan włączenia harmonogramu.
4. numer dnia tygodnia Zwraca numer bieżącego dnia tygodnia: 1 poniedziałek, ..., 7 niedziela.
5. czy dzień roboczy Zwraca true od poniedziałku do piątku. Święta nie zmieniają tej wartości.
6. czy weekend Zwraca true w sobotę i niedzielę.
7. czy święto polskie Zwraca true, gdy bieżąca lokalna data jest jednym z obsługiwanych świąt polskich.

Gdy kalendarz jest wyłączony, wyjście praca zwraca false, wyjście przerwa zwraca true, a wyjście czy kalendarz jest włączony zwraca false. Wyjścia informacyjne o dniu tygodnia, dniu roboczym, weekendzie i święcie polskim pozostają aktualne.

Wyjście czy dzień roboczy zależy wyłącznie od dnia tygodnia. Piątek będący świętem zwróci jednocześnie czy dzień roboczy = true oraz czy święto polskie = true.

Obsługiwane święta polskie

Bloczek rozpoznaje następujące święta:

Święto Data
Nowy Rok 1 stycznia
Święto Trzech Króli 6 stycznia
Wielkanoc, pierwszy dzień data Wielkanocy
Poniedziałek Wielkanocny Wielkanoc + 1 dzień
Święto Pracy / Święto Państwowe 1 maja
Święto Konstytucji 3 Maja 3 maja
Zielone Świątki Wielkanoc + 49 dni
Boże Ciało Wielkanoc + 60 dni
Wniebowzięcie Najświętszej Maryi Panny 15 sierpnia
Wszystkich Świętych 1 listopada
Narodowe Święto Niepodległości 11 listopada
Wigilia Bożego Narodzenia 24 grudnia
Boże Narodzenie, pierwszy dzień 25 grudnia
Boże Narodzenie, drugi dzień 26 grudnia

Błędy widoczne dla użytkownika

Bloczek może pokazywać następujące komunikaty błędów:

Kod błędu Opis błędu
Missing json_settings_version configuration. Brakuje numeru wersji ustawień.
Invalid json_settings_version configuration. Numer wersji ustawień ma niepoprawną wartość.
Invalid active time configuration. Konfiguracja slotu czasowego jest niepoprawna, na przykład ma zły format dnia albo godziny.
Missing active time configuration. Nie skonfigurowano żadnego aktywnego slotu czasowego.
Start time equals end time. Godzina rozpoczęcia i zakończenia slotu są takie same.

Przykłady działania

  • Slot z listą dni 1, 2, 3, 4, 5 oraz zakresem 08:00-16:00 aktywuje wyjście praca w dni robocze od 08:00:00 do 16:00:59.
  • Slot ustawiony na poniedziałek 23:30-06:15 aktywuje wyjście praca od poniedziałku wieczorem do wtorku 06:15:59.
  • Dwa nachodzące na siebie sloty utrzymują praca = true, dopóki aktywny jest co najmniej jeden z nich.
  • Slot z listą dni 1, 8 działa w poniedziałki oraz w obsługiwane święta polskie.
  • Bez połączenia wejściowego harmonogram uruchamia się jako włączony.
  • Po podłączeniu wejścia harmonogram uruchamia się jako wyłączony i pozostaje wyłączony, jeżeli źródło nie wyśle wartości.
  • Wartość true włącza harmonogram, a false go wyłącza.
  • Wartość liczbowa, tekst, null oraz komendy set i reset nie zmieniają stanu harmonogramu.
  • Jeżeli dwa źródła wyślą kolejno true i false, obowiązuje ostatnia wartość, czyli harmonogram pozostaje wyłączony.
  • Zmiana z aplikacji mobilnej obowiązuje do następnej poprawnej zmiany z wejścia lub aplikacji albo do przeładowania projektu.
  • Gdy harmonogram jest wyłączony, praca = false i przerwa = true, ale numer dnia tygodnia oraz informacje o dniu roboczym, weekendzie i święcie nadal są aktualizowane.