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:00aktywuje wyjściepracaw dni robocze od08:00:00do16:00:59. - Slot ustawiony na poniedziałek
23:30-06:15aktywuje wyjściepracaod poniedziałku wieczorem do wtorku06: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,
nulloraz komendysetiresetnie 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 = falseiprzerwa = true, ale numer dnia tygodnia oraz informacje o dniu roboczym, weekendzie i święcie nadal są aktualizowane.