Identyfikatory z tej grupy nie odnoszą się bezpośrednio do konkretnych urządzeń, lecz reprezentują zmienne systemowe i parametry przechowywane w pamięci operacyjnej modułu Base. Część zmiennych umożliwia zapis i odczyt, a część z nich jest tylko do odczytu. Identyfikatory z tej grupy znajdują zastosowanie zwłaszcza przy definiowaniu reguł czasowych, zdarzeń warunkowych, a także tworzeniu skryptów w zakładce Logika.
1. MEM #
Identyfikatory tego typu reprezentują zmienne zapisywane bezpośrednio w pamięci nieulotnej modułu Base. Zmienne typu MEM zachowują swoje wartości po restarcie urządzenia lub całkowitym zaniku zasilania
Zmienne MEM znajdują szerokie zastosowanie przy definiowaniu timerów, zdarzeń warunkowych oraz tych elementów interfejsów użytkownika, których nastawy powinny być trwale zapamiętywane.
| Logika systemu | Identyfikator | Wartość | Opis |
|---|---|---|---|
| Stan | MEM.nazwa | dowolna | Aktualny stan zmiennej MEM. |
| Zdarzenie | E.MEM.nazwa | dowolna | Informacja o zmianie stanu zmiennej. |
| Komenda | C.MEM.nazwa | dowolna | Zapisanie dowolnej wartości w zmiennej. |
- Użycie stanu zmiennej MEM jako warunek wykonania akcji timera.
Załóżmy, że budynek wyposażony jest system podlewania ogrodu, który uruchamiany jest o określonych godzinach w ciągu dnia. Jednakże dodatkowo użytkownik chce mieć możliwość ręcznej deaktywacji automatycznego uruchomienia tego procesu. Najłatwiej jest to osiągnąć dodając element typu Przełącznik w zakładce Remote i przypisując do niego zmienną typuMEM. Wówczas stan przełącznika (przyjmuje wartościon/off) będzie zapisany w zmiennej nieulotnej, a jego wartość można wykorzystać w warunku wykonania akcji przypisanych do timera. Załóżmy, że w polu Kanał przełącznika wpisano: MEM.autopodlewanie, wówczas w polu Warunek w definicji timera należy wpisać: MEM.autopodlewanie == „on”. W ten sposób stan zmiennejMEMdeterminuje, czy timer zostanie wykonany. - Zdarzenie dla zmiany stanu zmiennej MEM.
Każda zmiana stanu identyfikatora w systemie DOMIQ generuje zdarzenie o tym informujące. Dla każdej zmiany stanu zmiennejMEMopisanej w poprzednim przykładzie zostanie rozgłoszone zdarzenie, które przekazywać będzie nową wartość zmiennej. Wówczas bardzo łatwo jest utworzyć regułę zdarzenia, które będzie aktywowane wtedy, gdy zmienna osiągnie interesując nas wartość. Jeżeli zmiennaMEM.autopodlewanieosiągnie wartośćon, wówczas rozgłoszone zostanie zdarzenieE.MEM.autopodlewanieo wartościon. - Komenda zmieniająca stan zmiennej
MEM.
Rozbudowując nasz przykład automatycznego podlewania, załóżmy że system ponadto wyposażony jest w czujnik deszczu i towarzyszącą mu regułę, aby automatyczne podlewanie było blokwane, jeżeli opady deszczu były np. na określonym poziomie lub np. trwały przez określony czas. Wówczas efektem działania takiej reguły może być wysłanie komendy zmieniającej stan zmiennejMEM.autopodlewanie, aby zablokować wykonanie timera. Każda komenda powinna być poprzedzona prefiksemC. Jeżeli komenda znajduje się w sekcji Akcje w zdarzeniach, wówczas w polu Nazwa należy wpisaćC.MEM.autopodlewanie, a w polu Wartość: off.
2. VAR #
Zmienne VAR mają identyczne działanie jak zmienne MEM z tą różnicą, że są przechowywane w pamięci operacyjnej (RAM) modułu Base. Oznacza to, że ich wartości są bezpowrotnie zerowane przy każdym restarcie urządzenia lub zaniku zasilania.
3. Zmienne systemowe #
Jest to zbiór identyfikatorów, które reprezentują zmienne udostępniane przez system operacyjny modułu Base. Zmienne tego typu są tylko do odczytu.
| Nazwa identyfikatora | Opis identyfikatora | Stan | Zdarzenie | Komenda |
|---|---|---|---|---|
CLOCK.date | Aktualna data w formacie DD.MM.RRRR | + | + | – |
CLOCK.datetime | Aktualna data i czas w formacie DD.MM.RRRR HH:MM. | + | + | – |
CLOCK.day | Numer dnia w miesiącu. | + | + | – |
CLOCK.dayname | Skrócona nazwa dnia tygodnia. | + | + | – |
CLOCK.days | Liczba dni w danym miesiącu. Szczególnie przydatne, gdy potrzebne jest utworzenie timera, który ma wykonać się w ostatni dzień miesiąca. | + | + | – |
CLOCK.fulldate | Aktualna data i godzina wraz z nazwą dnia w formacie DD.MM.RRRR HH:MM. | + | + | – |
CLOCK.hour | Aktualna godzina. | + | + | – |
CLOCK.minute | Aktualna minuta. | + | + | – |
CLOCK.month | Numer miesiąca w roku. | + | + | – |
CLOCK.night | Zmienna przyjmuje wartość 1, gdy jest po zachodzie słońca. Wartość jest zerowana o wschodzie słońca. | + | + | – |
CLOCK.sunrise | Godzina wschodu słońca w formacie HH:MM | + | + | – |
CLOCK.sunset | Godzina zachodu słońca w formacie HH:MM | + | + | – |
CLOCK.weekday | Numer dnia w tygodniu, 1 – niedziela, 7 – sobota | + | + | – |
CLOCK.time | Aktualny czas w formacie HH:MM | + | + | – |
DIQ.controloverinternet | Zmienna informująca o aktywowaniu opcji sterowania przez internet w zakładce Ustawienia. | + | + | – |
SUN.azimuth | Azymut słońca na horyzoncie. Może znaleźć zastosowanie do sterowania roletami/żaluzjami w powiązaniu z pozycją słońca na niebie. | + | + | – |
SUN.elevation | Kąt słońca nad horyzontem. Zmienna osiąga wartości ujemne po zachodzie słońca. | + | + | – |