View Categories

Rozdział 12.1. – Identyfikatory (Zmienne systemu DOMIQ)

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 systemuIdentyfikatorWartośćOpis
StanMEM.nazwadowolnaAktualny stan zmiennej MEM.
ZdarzenieE.MEM.nazwadowolnaInformacja o zmianie stanu zmiennej.
KomendaC.MEM.nazwadowolnaZapisanie dowolnej wartości w zmiennej.
  1. 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ą typu MEM. Wówczas stan przełącznika (przyjmuje wartości on/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 zmiennej MEM determinuje, czy timer zostanie wykonany.
  2. 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 zmiennej MEM opisanej 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 zmienna MEM.autopodlewanie osiągnie wartość on, wówczas rozgłoszone zostanie zdarzenie E.MEM.autopodlewanie o wartości on.
  3. 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 zmiennej MEM.autopodlewanie, aby zablokować wykonanie timera. Każda komenda powinna być poprzedzona prefiksem C. 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 identyfikatoraOpis identyfikatoraStanZdarzenieKomenda
CLOCK.dateAktualna data w formacie DD.MM.RRRR++–
CLOCK.datetimeAktualna data i czas w formacie
DD.MM.RRRR HH:MM.
++–
CLOCK.dayNumer dnia w miesiącu.++–
CLOCK.daynameSkrócona nazwa dnia tygodnia.++–
CLOCK.daysLiczba dni w danym miesiącu. Szczególnie
przydatne, gdy potrzebne jest utworzenie
timera, który ma wykonać się w ostatni
dzień miesiąca.
++–
CLOCK.fulldateAktualna data i godzina wraz z nazwą dnia
w formacie DD.MM.RRRR HH:MM.
++–
CLOCK.hourAktualna godzina.++–
CLOCK.minuteAktualna minuta.++–
CLOCK.monthNumer miesiąca w roku.++–
CLOCK.nightZmienna przyjmuje wartość 1, gdy jest po
zachodzie słońca. Wartość jest zerowana o
wschodzie słońca.
++–
CLOCK.sunriseGodzina wschodu słońca w formacie
HH:MM
++–
CLOCK.sunsetGodzina zachodu słońca w formacie HH:MM++–
CLOCK.weekdayNumer dnia w tygodniu, 1 – niedziela, 7 –
sobota
++–
CLOCK.timeAktualny czas w formacie HH:MM++–
DIQ.controloverinternetZmienna informująca o aktywowaniu opcji
sterowania przez internet w zakładce
Ustawienia.
++–
SUN.azimuthAzymut słońca na horyzoncie. Może znaleźć
zastosowanie do sterowania roletami/żaluzjami w powiązaniu z pozycją słońca na
niebie.
++–
SUN.elevationKąt słońca nad horyzontem. Zmienna osiąga wartości ujemne po zachodzie słońca.++–

Powered by BetterDocs