Dziękuję!
Skontaktujemy się z państwem.
Bloki mogą mieć parametry, które definiują ich zachowanie. Na przykład wartości liczbowe, ciągi znaków, zmienne itp. Bloki można łączyć, tworząc logiczną sekwencję wykonania.
RULE
Każda reguła rozpoczyna się od bloku RULE znajdującego się w zakładce Main.
W tym bloku można określić:● nazwę reguły - zwykły tekst z limitem 48 znaków● typ reguły:
● AUTOMATION - reguła automatyzacji, która posiada warunek uruchomienia. Jest uruchamiana przy każdej zmianie wyzwalacza, jeśli warunek jest spełniony, wykonywane są akcje określone w regule. Nie można jej uruchomić z poziomu aplikacji● SCENARIO - zestaw działań, które mogą być uruchamiane z poziomu aplikacji lub innej reguły czy scenariusza.● SCHEDULE - reguła automatyzacji,
która działa zgodnie z harmonogramem, a także reguła, która może działać po uruchomieniu sterownika.● ID Reguły - numer reguły, który zostanie zapisany w sterowniku, jeśli podasz 0 - numer reguły zostanie przypisany automatycznie podczas zapisywania do sterownika, jeśli podasz istniejący id - reguła zostanie nadpisana● GID - identyfikator grupy reguł - używany do wyświetlania reguł w odpowiedniej sekcji, przy zapisywaniu reguły przez aplikację – jest ignorowany● Enable - wskazuje, czy reguła będzie włączona czy wyłączona● Print ast - umożliwia wyświetlenie kodu reguły w panelu kodu (przydatne do nauki i zrozumienia AST).
Ten blok ma jeden slot, w którym można umieścić treść reguły automatyzacji (blok lub kilka bloków).
READ FROM STATE
Blok odbierania danych z kontrolera zawiera następujące ustawienia:● is trigger - przełącznik wskazujący, czy zmiana stanu urządzenia spowoduje uruchomienie reguły, jeśli reguła nie zawiera żadnego wyzwalacza, reguła nie zostanie uruchomiona;● state type - urządzenie końcowe, z którego będziemy odczytywać dane (na przykład przycisk lub oświetlenie);● state id - identyfikator urządzenia końcowego, z którego będziemy odczytywać dane.
Aby dowiedzieć się, jaki state type oraz id ma urządzenie, którego Państwo potrzebują, proszę przejść do menedżera urządzeń w aplikacji i3 home, wybrać sterownik, na którym znajduje się urządzenie, kliknąć "konfiguruj" i wybrać "tabela ustawień portów".
value type - jaka wartość będzie odczytywana, wartość główna main jest dostępna dla każdego urządzenia. Oddzielny artykuł opisuje wszystkie urządzenia i ich value type
device address - adres sterownika, z którego odczytujemy wartość, jeśli reguła jest zapisana na tym samym sterowniku, można pozostawić self, w przeciwnym razie należy podać adres sterownika, adres ten można wyświetlić w aplikacji i3 Home, w menedżerze urządzeń, wybrać sterownik, na którym znajduje się urządzenie, kliknąć "konfiguruj" i wybrać "tabelę ustawień portu", adres urządzenia jest wskazany nad tabelą ustawień.
WRITE TO STATE
Blok do zmiany stanu urządzeń zawiera następujące ustawienia: ● state type - urządzenie końcowe, do którego będziemy zapisywać dane (np. oświetlenie); ● state id - ID urządzenia końcowego, do którego będziemy zapisywać dane.
Aby dowiedzieć się state type i ID urządzenia, którego potrzebujesz, przejdź do aplikacji i3 Home, otwórz menedżer urządzeń, wybierz kontroler, na którym znajduje się urządzenie, naciśnij "konfiguruj" i wybierz "tabela ustawień portów".
● value type - jaką dokładnie wartość będziemy odczytywać; dla każdego urządzenia dostępna jest główna wartość main. W osobnym artykule opisano wszystkie urządzenia i ich value type. ● device address - adres kontrolera, z którego odczytujemy wartość. Jeśli reguła będzie zapisana na tym samym kontrolerze, można pozostawić self, w przeciwnym razie należy podać adres kontrolera. Adres ten można znaleźć w aplikacji i3 Home, w menedżerze urządzeń, wybierz kontroler, na którym znajduje się urządzenie, naciśnij "konfiguruj" i wybierz "tabela ustawień portów", nad tabelą ustawień jest podany adres urządzenia.
IF THEN ELSE
Blok "IF THEN ELSE" jest kluczowym elementem przy wprowadzaniu logiki rozgałęzień do aplikacji. Blok ten umożliwia zdefiniowanie warunku (IF), wykonanie określonego bloku kodu, jeśli warunek jest spełniony (THEN), a w przeciwnym razie wykonanie innego bloku kodu (ELSE).
● Warunek (IF):
Określa warunek, który jest oceniany jako prawda (TRUE) lub fałsz (FALSE). Może to być wyrażenie, porównanie wartości lub dowolny inny warunek logiczny.
Przykład: Jeśli zmienna "x" jest większa niż 10.● Wykonanie, gdy TRUE (THEN):
Blok kodu wewnątrz tego segmentu zostanie wykonany tylko wtedy, gdy warunek w IF jest zdefiniowany jako prawda.
W tym miejscu należy umieścić bloki kodu, które mają zostać wykonane, gdy warunek jest prawdziwy.● Wykonanie, gdy FALSE (ELSE):
Kod w tym segmencie zostanie wykonany, jeśli warunek w IF jest zdefiniowany jako fałsz.
W tym miejscu umieszcza się bloki kodu, które mają zostać wykonane, gdy warunek jest fałszywy.
Użycie bloku IF THEN ELSE pozwala regule automatyzacji reagować na różne warunki i wchodzić z nimi w interakcje. To sprawia, że jest to potężne narzędzie do tworzenia bardziej złożonych i elastycznych reguł automatyzacji w Blockly
Proszę pamiętać, że aby uruchomić regułę, należy określić co najmniej jeden blok, w którym zostanie ustawiony is trigger, w przeciwnym razie reguła zostanie zapisana, ale nigdy nie zostanie uruchomiona.
COMPARISION
Bloki porównania zwracają TRUE lub FALSE i są używane w bloku IF, istnieją cztery bloki porównania:● Comparison - porównuje dwie wartości, obsługuje następujące operacje: - równa się; - nie równa się; - mniej niż; - mniej niż, równy; - większy niż; - większy niż, równy;Należy określić typ porównywanych wartości int lub float, obie wartości muszą być tego samego typu.● Between - sprawdza, czy wartość mieści się w określonym zakresie, należy określić typ porównywanej wartości int lub float, porównywana wartość, wartość początkowa i końcowa muszą być tego samego typu;● Time is - porównanie czasu, zwraca TRUE, jeśli czas jest zgodny z określonym czasem;● Time between - sprawdza, czy bieżący czas mieści się w określonym zakresie;
OPERATIONS
Bloki umożliwiają wykonywanie operacji z innymi blokami● Math - operacje matematyczne, obsługuje następujące operacje:
- dodać;
- odjąć
- mnożyć
- dzielić;
należy określić typ wartości operandu: int lub float, obie wartości muszą być tego samego typu.● NOT - służy do wykonywania operacji logicznej "Nie", która odwraca wartość logiczną na jej przeciwieństwo. Blok "NOT" ma jedno wejście, które akceptuje wartość logiczną. Wartość ta zostanie zmieniona na jej przeciwieństwo. Blok "NOT" może być używany tylko z wartościami logicznymi lub blokami, które zwracają wartości logiczne.● Binary logic - obsługiwane są operacje binarne:
AND - służy do wykonywania operacji "І", która zwraca wartość true, jeśli obie wejściowe wartości logiczne są również true.
OR - służy do wykonywania operacji logicznej "lub", która zwraca wartość true, jeśli co najmniej jedna z wejściowych wartości logicznych jest true.
XOR - służy do wykonywania operacji "wykluczania lub" operacji logicznej, która zwraca wartość true, jeśli tylko jedna z wejściowych wartości logicznych jest true.
LOOPS
Bloki umożliwiają organizowanie pętli● While Do - służy do tworzenia pętli "while", która umożliwia wykonywanie określonych bloków kodu, gdy określony warunek jest prawdziwy. Blok ma miejsce na blok warunku, który określa, czy blok kodu zostanie wykonany. Warunek musi zwracać wartość logiczną (true lub false). Blok "do" zawiera bloki, które są wykonywane tak długo, jak warunek jest prawdziwy. W ramach tej pętli można dodawać inne bloki, operacje logiczne i zmienne. Proszę zachować ostrożność podczas definiowania warunku, ponieważ nieprawidłowo zdefiniowany warunek może prowadzić do nieskończonej pętli.● For - blok "For" posiada pole do wprowadzenia wartości początkowej licznika "from" pętli. Określa ona, od jakiej wartości licznik rozpocznie zliczanie, a także pole dla wartości końcowej licznika pętli "to", jak również wartość, o którą licznik pętli będzie zwiększany przy każdym "step" iteracji. Blok ma miejsce na zestaw bloków, które są wykonywane w każdej iteracji pętli for.
VALUES
Bloki do pracy ze stałymi i zmiennymi● CONSTANT - służy do inicjalizacji i przypisania wartości do anonimowej stałej;● DATE TIME - służy do inicjowania i przypisywania wartości anonimowej stałej czasowej w formacie YYYY-MM-DD HH:MM:SS;● DELAY - pauza w regułach, przyjmuje wartość int w milisekundach;● RGBW COLOR - wskazuje kolor linii RGBW;● SWITCH EVENT - wartość dla stanu Switch;● TIME NOW - aktualna wartość na kontrolerze;
TIME
SCHEDULE - blok umożliwiający uruchamianie reguł według harmonogramu, posiada pole do wpisywania Cron wyrażeń, które definiują przedziały czasowe i reguły wykonywania bloków w bloku schedule. Maska jest podana w formacie linux cron.