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

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


RULES - блоки, з яких починається створення правил.

RULE Блок з якого починається кожне правило, блок не додає логіки та містить важливі елементи для налаштування та збереження правила.Name: Назва правила (наприклад, "Увімкнути світло у вітальні при русі").Enabled: Галочка, що визначає, чи буде правило активне після збереження. Якщо не вибрати - після збереження правило не працюватиме доки його не увімкнути з додатку i3 home.Save: Кнопка для збереження правила. Правила компілюються та зберігаються на контролері.Слот: Має один слот для вкладення блоку типу правила (AUTOMATION, SCENARIO тощо).

AUTOMATIONБлок для створення правил, що реагують на події. Потребує хоча б одного тригера та однієї дії.Приймає на вхід інші блоки (наприклад, IF, READ/WRITE).Приклад: Якщо датчик руху (тригер з блоку READ) спрацював, то увімкнути світло (дія з блоку WRITE).

SCENARIOНабір дій, що запускається з додатку i3 Home або іншого правила. Не потребує тригерів.Приклад: Сценарій "Я вдома" може увімкнути світло в коридорі, встановити комфортну температуру та увімкнути музику.

REPEATПравило, що запускається періодично.
Приклад: Кожні 30 хвилин змінювати стан клапану поливу.

SCHEDULEПравило, що запускається за розкладом (синтаксис cron).Поля для налаштування: хвилини, години, день місяця, місяць, день тижня.В поля можна вказати:● Значення - наприклад 1 в поле Hour - буде запускати правило кожної першої години дня, щоб вказати кілька значень запишіть їх через кому● Діапазон значень - наприклад 1-5 записано в поле Day, буде запускати правило з 1 по 5 день тижня● Всі значення - наприклад якщо в поле min вказати * - це запускатиме правило щохвилиниЗверніть увагу що для побудови розкладу потрібно заповнити всі поляПриклад: Увімкнути полив газону кожен понеділок та п'ятницю о 6:00

LOGIC - блоки для реалізації логічних розгалужень.

IF THEN ELSEБлок має три слоти в які можна вкладати інші блоки, зазвичай це блок порівняння та блок READ (блок IF обов'язковий)IF (Умова): Визначає умову, яка оцінюється як істинна (TRUE) або хибна (FALSE). THEN (Виконання при TRUE): Блоки коду, що виконуються, якщо умова істинна.ELSE (Виконання при FALSE): Блоки коду, що виконуються, якщо умова хибна (опціонально).
Приклад:IF (Температура в кімнаті < 20°C) THEN (Увімкнути обігрівач)ELSE (Вимкнути обігрівач)
Важливо! Для запуску правила необхідно вказати хоча б один блок, в якому буде встановлено is trigger, в іншому випадку правило збережеться, але ніколи не запуститься.

OPERATIONS - блоки для виконання операцій, включаючи доступ до пристроїв. Це ключові блоки для взаємодії з пристроями!

READБлок для отримання даних з пристроїв на контролері, або віртуальних пристроїв. is trigger: Перемикач. Якщо активний, зміна стану пристрою запускатиме правило.Слот: Приймає на вхід блок пристрою (з розділу Devices).Приклад: Читати стан "Датчик руху у вітальні". Якщо is trigger увімкнено, то при будь-якій зміні даних про температру правило запуститься.

WRITEБлок для зміни стану пристроїв, або запису даних в віртуальні змінні
WRITE TO: Слот для блоку пристрою, стан якого потрібно змінити.
VALUE: Слот для значення, яке потрібно записати (наприклад, блок CONSTANT зі значенням 1 для увімкнення, або 0 для вимкнення).
Приклад: Записати значення ON (1) в пристрій "Лампа в спальні".

MathМатематичні операції: додати (+), відняти (-), помножити (*), поділити (/).
Необхідно вказати тип операндів (int чи float). Обидва значення мають бути одного типу.
Приклад: (ЗначенняДатчикаА) + (ЗначенняДатчикаБ)

NOTЛогічне "НЕ". Обертає булеве значення (true -> false, false -> true).Приклад: NOT (Двері зачинені) – поверне true, якщо двері не зачинені.

Binary logicAND: Логічне "І". Повертає true, якщо обидва вхідні значення true.Приклад: (Датчик руху спрацював) AND (Час > 18:00)OR: Логічне "АБО". Повертає true, якщо хоча б одне вхідне значення true.Приклад: (Натиснута кнопка "Сценарій 1") OR (Натиснута кнопка "Сценарій 2")XOR: Логічне "виключне АБО". Повертає true, якщо лише одне з вхідних значень true.Приклад: (Світло на кухні увімкнене) XOR (Світло у ванній увімкнене) – буде true, якщо світло горить тільки в одній з цих кімнат.

COMPARISION - блоки для порівняння значень.

Comparision
Порівнює два значення та повертає true або false.
Операції: =, !=, <, <=, >, >=.
Необхідно вказати тип значень (int чи float). Обидва значення мають бути одного типу.
Приклад: Порівняти значення датчика освітленості (тип int) з константою 500. (ДатчикОсвітленості.Value) < (500)

BetweenПеревіряє, чи входить значення до вказаного діапазону. Повертає true або false.
Необхідно вказати тип значення (int чи float). Усі три значення (перевірюване, початкове, кінцеве) мають бути одного типу.
Приклад: Перевірити, чи поточна температура (тип float) знаходиться в діапазоні від 20.5 до 22.5. (ПоточнаТемпература) between (20.5) and (22.5)

LOOPS - блоки для організації циклів.

While DoВиконує блок коду, доки умова істинна.Слот умови: Приймає блок, що повертає булеве значення.Блок "do": Містить блоки, що виконуються в циклі.Увага: Неправильна умова може призвести до безкінечного циклу!Приклад:WHILE (Рівень води в баку < 90%) DO (Увімкнути насос на 1 секунду) (DELAY 1000 ms)

ForЦикл з лічильником.
from: Початкове значення лічильника.
to: Кінцеве значення лічильника.
step: Крок збільшення лічильника.
Слот для тіла циклу: Блоки, що виконуються на кожній ітерації.
Приклад:
FOR (i) FROM (1) TO (5) STEP (1) DO
(Блигнути світлом один раз)
(DELAY 500 ms)

VALUES - Блоки для роботи з константами.

CONSTANT
Ініціалізує анонімну константу (число, рядок, булеве значення).
Приклад: Блок CONSTANT зі значенням 22 (для температури) або true (для увімкнення).

DATE TIMEІніціалізує константу часу у форматі YYYY-MM-DD HH:MM:SS.Приклад: 2025-12-31 23:59:00

DELAYПауза у виконанні правила. Приймає значення int в мілісекундах.
Приклад: DELAY зі значенням 5000 (пауза 5 секунд).

TIME NOWПоточне значення часу на контролері.
Приклад: Використовується для порівняння з іншим часом, наприклад, у блоці IF.

RGBW COLORІВказує колір для RGBW стрічок.Приклад: Встановити колір на (R:255, G:0, B:0, W:0) (червоний).

SWITCH EVENTЗначення для стану типу Switch (наприклад, CLICK, DOUBLE_CLICK, HOLD).Приклад: Використовується для перевірки типу натискання кнопки.

TIME - блоки для порівняння часу.

TIME IS
Приймає значення HH (година), MM (хвилина). Повертає true або false, якщо час на контролері співпадає з вказаним.
Приклад: TIME IS 08:30 – поверне true, якщо зараз 8:30.

TIME BETWEENПриймає час початку (HH:MM:SS) та час закінчення (HH:MM:SS). Повертає true або false, якщо поточний час на контролері знаходиться в цьому діапазоні.Приклад: Time between 07:00:00 AND 09:00:00 – поверне true, якщо зараз ранок між 7 та 9 годинами.

SCENE CONTROL - блок для запуску сценаріїв.

SCENE CONTROL Блок, що дозволяє запускати сценарії
Використовується для активації попередньо створених та збережених сценаріїв, в якості аргумента примйється id сцеранію, якщо потрібно зупинити сценарій в якості аргумента потрібно передати id сценарію з знаком -.
Приклад: Запустити сценарій "Кіноabend", який приглушує світло та закриває штори.

DEVICES- блоки, що динамічно створюються для всіх сконфігурованих у проекті (будинку) пристроїв. Пристрої згруповані по кімнатах.

DEVICEБлок, що представляє конкретний сконфігурований пристрій.
device: Тип пристрою (наприклад, "Датчик температури", "Лампочка").
address: Шлях до пристрою (генерується системою).
name: Назва пристрою, вказана при конфігурації (або "..." якщо не вказано).
room: Кімната, вказана при конфігурації (або "room not set").
Приклад: Блок "Лампа на кухні" з кімнати "Кухня". Цей блок можна перетягнути в слот READ для отримання її стану, або в слот WRITE TO блоку WRITE для зміни її стану.
Інформація про пристрої:
Додаток i3 Home: Головне меню -> Менеджер пристроїв -> вибрати контролер -> Налаштувати -> трикрапкове меню -> Таблиця налаштування портів.

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

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