Блоки для побудови правил

Блоки можуть мати параметри, які визначають їхню поведінку. Наприклад, числові значення, рядки, змінні тощо. Блоки можна з'єднувати, утворюючи логічну послідовність виконання.


RULE

Будь-яке правило починається з блоку RULE розміщеного в вкладці MainВ цьому блоці можна вказати:● назву правила - звичайний текст обмеження 48 символів● тип правила:● AUTOMATION - правило автоматизації, яке в собі має умову для запуску. Запускається кожного разу коли міняється тригер, якщо умова справджується - виконується дії що вказані в правилі. Не може бути запущено з додатку● SCENARIO - набір дій які можна запустити з додатку або з іншого правила чи сценарію● SCHEDULE - правило автоматизації що запускається за розкладом, а також правило що може запускатись при запуску контролера.● ID правила - номер правила що збережеться в контролері, якщо вказати 0 - номер правила буде присвоєно автоматично при збереженні на контролері, якщо вказати id що вже існує - правило буде перезаписане● GID - груповий ідентифікатор правила - використовується для відображення правил у відповідній секції, при збереженні правила через додаток - ігнорується● Enable - вказує чи буде правило увімкнене чи вимкнене● Print ast - вмикає відображення коду правила на панелі коду(корисне для навчання та розуміння AST)

Даний блок має один слот куди можна вкласти тіло правила автоматизації(блок або кілька блоків)

READ FROM STATE

Блок для отримання даних з контролеру, містить наступні налаштування:● is trigger - перемикач який вказує чи буде зміна стану пристрою запускати правило, якщо в правилі не буде жодного тригеру то правило не запуститься;● state type - кінцевий пристрій з якого будемо вичитувати дані (наприклад кнопка чи освітлення);● state id - id кінцевого прстрою з якого будемо вичитувати дані
Щоб дізнатись state type та id для пристрою який вам потрібен, перейдіть в додатку i3 home в менеджер пристроїв, виберіть контролер на якому знаходиться пристрій, натисніть "налаштувати" та виберіть "таблиця налаштувань портів"
● value type - яке саме значення будемо вичитувати, для будь-якого пристрою доступне основне значення main. В окремій статті описано всі прстрої їх value type● device address - адреса контролера з якого вичитуємо значення, якщо правило буде збережено на тому ж контролері можна залишити self, в іншому випадку потрібно вказати адресу контролреа, цю адресу можна подивитись в додатку i3 Home, в менеджері пристроїв, виберіть контролер на якому знаходиться пристрій, натисніть "налаштувати" та виберіть "таблиця налаштувань портів", над таблицею налаштувань вказано адресу пристрою.

WRITE TO STATE

Блок для зміни стану пристроїв, містить наступні налаштування:● state type - кінцевий пристрій в який будемо записувати дані (наприклад освітлення);● state id - id кінцевого прстрою в який будемо записувати дані
Щоб дізнатись state type та id для пристрою який вам потрібен, перейдіть в додатку i3 home в менеджер пристроїв, виберіть контролер на якому знаходиться пристрій, натисніть "налаштувати" та виберіть "таблиця налаштувань портів"
● value type - яке саме значення будемо вичитувати, для будь-якого пристрою доступне основне значення main. В окремій статті описано всі прстрої їх value type● device address - адреса контролера з якого вичитуємо значення, якщо правило буде збережено на тому ж контролері можна залишити self, в іншому випадку потрібно вказати адресу контролреа, цю адресу можна подивитись в додатку i3 Home, в менеджері пристроїв, виберіть контролер на якому знаходиться пристрій, натисніть "налаштувати" та виберіть "таблиця налаштувань портів", над таблицею налаштувань вказано адресу пристрою.

IF THEN ELSE

Блок "IF THEN ELSE" є ключовим елементом для введення логіки розгалуження в програми. Цей блок дозволяє визначити умову (IF), виконати певний блок коду, якщо умова виконується (THEN), і в іншому випадку виконати інший блок коду (ELSE).
● Умова (IF):Визначається умова, яка оцінюється як істинна (TRUE) чи хибна (FALSE). Вона може бути виразом, порівнянням значень або будь-якою іншою логічною умовою.Приклад: Якщо змінна "x" більша за 10.● Виконання при TRUE (THEN):Блок коду всередині цього сегменту буде виконано лише в тому випадку, якщо умова в "IF" визначена як істинна.Тут ви розміщуєте блоки коду, які повинні виконатися, коли умова вірна.● Виконання при FALSE (ELSE):Блок коду всередині цього сегменту буде виконано, якщо умова в "IF" визначена як хибна.Тут ви розміщуєте блоки коду, які повинні виконатися, коли умова не вірна.
Використання блоку "IF THEN ELSE" дозволяє правилу автоматизації реагувати на різні умови і взаємодіяти з ними. Це робить його потужним інструментом для створення більш складних та гнучких правил автоматизації в BlocklyЗверніть увагу для запуску правила необхідно вказати хоча б один блок в якому буде встановлено is trigger, в іншому випадку правило збережеться але ніколи не запуститься.

COMPARISION

Блоки порівняння повертають TRUE або FALSE та використовуються в блоці IF, є чотири блоки порівняння:● Comparision - порінвює два значення, підтримує наступні операції:    - дорівнює;    - не дорівнює;    - менше;    - менше, дорівнює;    - більше;    - більше, дорівнює;необхідно вказати тип значень які порівнюємо int чи float, обидва значення мають бути одного типу.● Between - перевіряє чи входить значення до вказаного діапазону, необхідно вказати тип значення яке порівнюємо int чи float, значення яке порівнюємо, початкове та кінцеве значення мають бути одного типу;● Time is - порівняння часу, поверне TRUE, якщо час відповідає вказаному;Time between - перевіряє чи входить поточний час до вказаного діапазону;

OPERATIONS

Блоки які дають змогу проводити операції з іншими блоками● Math - математичні операції, підтримує наступні операції:    - додати;    - відняти;    - помножити;    - поділити;необхідно вказати тип значень операндів int чи float, обидва значення мають бути одного типу.● NOT - використовується для виконання логічної операції "НЕ", яка обертає булеве значення у його протилежне. Блок "NOT" має один вхід, який приймає булеве значення. Це значення буде змінюватися на його протилежне. Блок "NOT" може бути використаний лише з булевими значеннями або блоками, що повертають булеві значення.● Binary logic - бінарні операції, підтримуються:    AND - використовується для виконання логічної операції "І", яка повертає true, якщо обидва вхідні булеві значення теж є true.    OR - використовується для виконання логічної операції "або", яка повертає true, якщо хоча б один з вхідних булевих значення є true.    XOR - використовується для виконання логічної операції "виключне або", яка повертає true, якщо лише одне з вхідних булевих значень є true.

LOOPS

Блоки які дають змогу організувати цикли● While Do - використовується для створення циклу "while", що дозволяє виконувати певні блоки коду, доки певна умова є істинною. Блок має місце для блоку умови, який визначає, чи буде виконуватися блок коду. Умова повинна повертати булеве значення (true або false). Блок "do" містить блоки, які виконуються, доки умова є істинною. Ви можете вкладати інші блоки, логічні операції та змінні для роботи в межах цього циклу. Будьте уважні при визначенні умови, оскільки невірно визначена умова може призвести до безкінечного циклу.● For - Блок "For" має поле для введення початкового значення лічильника циклу "from". Це визначає з якого значення лічильник починає свій рахунок, та поле кінцевого значення лічильника циклу "to", а також значення на яке збільшуватиметься лічильник циклу кожної ітерації "step". Блок має місце для набору блоків які виконуються в кожній ітерації циклу for.

VALUES

Блоки для роботи з константами та змінними● CONSTANT - використовується для ініціалізації та присвоєння значення анонімній константі;● DATE TIME - використовується для ініціалізації та присвоєння значення анонімній константі часу, в форматі YYYY-MM-DD HH:MM:SS;● DELAY - пауза в правилах, приймає значення int в мілісекундах;● RGBW COLOR - вказує колір RGBW стрічок;● SWITCH EVENT - значення для стейту типу Switch;● TIME NOW - поточне значення на контролері;

TIME

SCHEDULE - блок що дозволяє запускати правила за розкладом, має поле для введення Cron-виразів, які визначають часові інтервали та правила виконання блоків в блоці schedule. Вказується маска в форматі linux cron

Не знайшли відповідь на своє запитання?

Ви можете звернутись у чат-бот технічної підтримки.Знайшли помилку на сайті? Допоможіть нам її виправити!