Реалізація розкладу та автоматизації IoT-пристроїв у мобільному додатку

Реалізація розкладу та автоматизації IoT-пристроїв через мобільний додаток Уявіть: розумний дім вмикає світло о 07:00 за Москвою, але власник полетів до Владивостока, і світло вмикається о 05:00 за місцевим часом. Часта проблема — відсутність коректного часового поясу. Ми проєктуємо мобільні інте

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація розкладу та автоматизації IoT-пристроїв у мобільному додатку
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Реалізація розкладу та автоматизації IoT-пристроїв через мобільний додаток

Уявіть: розумний дім вмикає світло о 07:00 за Москвою, але власник полетів до Владивостока, і світло вмикається о 05:00 за місцевим часом. Часта проблема — відсутність коректного часового поясу. Ми проєктуємо мобільні інтерфейси для IoT більше 5 років, реалізували 20+ проєктів — від побутових розеток до промислових контролерів. Одне з частих завдань — гнучкий розклад та автоматизація, які працюють без участі людини.

Розклад для IoT-пристрою — «увімкнути світло о 07:00, вимкнути о 23:00 у робочі дні». Автоматизація складніша: «якщо температура впала нижче +18°C і час між 22:00 та 08:00 — увімкнути обігрівач». Обидві задачі вирішуються на рівні бекенду, але мобільний додаток має надати UI для їх створення та редагування без інструкції.

Як реалізувати розклад для IoT-пристрою?

Типовий Schedule:

{ "device_id": "abc123", "action": "turn_on", "days_of_week": [1, 2, 3, 4, 5], "time": "07:00", "timezone": "Europe/Kyiv", "enabled": true } 

Часовий пояс — обов'язкове поле. Без нього розклад спрацює неправильно після перельоту або при користувачах з різних регіонів. Зберігати на сервері в UTC, конвертувати при відображенні в timezone пристрою/користувача. Згідно з документацією Firebase, це стандартна практика.

UI вибору часу на Android Compose — Material3 TimePicker або TimePickerDialog. Вибір днів тижня — горизонтальний ряд чіпів з множинним вибором:

val days = listOf("Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд") var selectedDays by remember { mutableStateOf(setOf<Int>()) } Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { days.forEachIndexed { index, label -> FilterChip( selected = index + 1 in selectedDays, onClick = { selectedDays = if (index + 1 in selectedDays) selectedDays - (index + 1) else selectedDays + (index + 1) }, label = { Text(label) } ) } } 

Список розкладів — LazyColumn з можливістю увімкнути/вимкнути кожен через Switch без відкриття редактора. PATCH-запит лише поля enabled = false — не весь об'єкт.

В чому різниця між розкладом та автоматизацією?

Характеристика Розклад Автоматизація (ECA)
Тригер Фіксований час Подія (датчик, час, статус)
Умови Немає Дод. перевірки (час, статус інших пристроїв)
Дія Одна команда Одна або кілька команд
Управління Вкл/Викл Створення, редагування, видалення

Чому автоматизація складніша за простий розклад?

Автоматизації будуються за моделлю ECA (Event-Condition-Action):

  • Event (тригер): значення датчика перетнуло поріг, настав час, пристрій змінив статус
  • Condition (умова): поточний час у діапазоні, інший пристрій онлайн
  • Action (дія): відправити команду пристрою, відправити сповіщення, викликати webhook

Зберігати як JSON на сервері:

{ "trigger": { "type": "sensor_value", "device_id": "temp_sensor_1", "parameter": "temperature", "operator": "lt", "value": 18 }, "conditions": [ { "type": "time_range", "from": "22:00", "to": "08:00" } ], "actions": [ { "type": "device_command", "device_id": "heater_1", "command": "turn_on" } ] } 

Виконання логіки — на сервері. Мобільний додаток не виконує автоматизації, лише створює та редагує їх.

UI конструктора автоматизацій

Drag-and-drop конструктор — складно та надмірно для більшості сценаріїв. Простіше: покроковий wizard. Порівняємо два підходи:

Характеристика Drag-and-drop конструктор Покроковий wizard
Час освоєння 15–20 хвилин 3–5 хвилин (у 3–4 рази швидше)
Помилки користувача Часті (пропуск обов'язкових полів) Рідкісні (послідовна валідація)
Підходить для Продвинуті користувачі Усі користувачі

Крок 1 — Тригер. Вибір пристрою → вибір параметра → умова (більше/менше/дорівнює) → значення. Або вибір «За розкладом».

Крок 2 — Умови (опціонально). «Додати умову» → вибір типу (час, день тижня, статус іншого пристрою).

Крок 3 — Дія. Вибір пристрою → вибір команди. Можливість додати кілька дій. Крок 4 — Назва та збереження.

Кожен крок валідується окремо. Не можна перейти до наступного без заповнення обов'язкових полів — показувати inline помилку, не блокувати весь додаток.

Як налагодити автоматизацію?

Користувач створює автоматизацію і не розуміє, чому вона не спрацювала. Журнал виконання — обов'язкова фіча. Кожен тригер → запис в історію: спрацював/не спрацював, чому, яка дія була виконана.

Приклад журналу
14:32 · Температура впала до 16.8°C ✓ Умова: час 22:00–08:00 — не виконано (зараз 14:32) ✗ Автоматизація не спрацювала 

Такий журнал знижує кількість звернень до підтримки — економія до 40% ресурсів на підтримку. При середній вартості розробки модуля від 150 000 грн економія може становити до 200 000 грн на рік.

Конфлікти розкладів

Два розклади на один пристрій можуть конфліктувати: перший вмикає о 07:00, другий вимикає о 07:30, третій вмикає о 07:15. На сервері потрібна логіка вирішення конфліктів — остання за часом команда перемагає. В UI — попередження при створенні пересічних розкладів.

Що входить в роботу

Реалізація розкладів з покроковим wizard: 3–4 тижні. Повний конструктор автоматизацій з умовами та журналом виконання: 6–8 тижнів. Вартість розраховується індивідуально. Зв'яжіться з нами, щоб отримати консультацію та план проєкту.

Процес роботи

  1. Аналітика — уточнюємо сценарії використання, кількість пристроїв та типи автоматизацій.
  2. Проєктування — розробляємо модель даних, API та архітектуру UI.
  3. Реалізація — пишемо бекенд-логіку та мобільний інтерфейс.
  4. Тестування — перевіряємо на реальних пристроях, емулюємо конфлікти та граничні випадки.
  5. Деплой — публікація в App Store та Google Play, налаштування push-сповіщень.

Гарантуємо підтримку після запуску та документацію всіх компонентів. Отримайте консультацію інженера, щоб зробити ваш IoT-продукт зручним та надійним.