Реалізація моніторингу HVAC-систем через мобільний додаток

Реалізація моніторингу HVAC-систем через мобільний додаток Ми регулярно стикаємося з проєктами, де HVAC-контролери (Danfoss, Honeywell, Daikin VRV) використовують різні протоколи. Один об'єкт — Modbus RTU на RS-485 до припливних установок, [BACnet/IP](https://en.wikipedia.org/wiki/BACnet) до чиле

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація моніторингу HVAC-систем через мобільний додаток
Середній
від 4 годин до 2 днів

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

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

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

  • 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

Реалізація моніторингу HVAC-систем через мобільний додаток

Ми регулярно стикаємося з проєктами, де HVAC-контролери (Danfoss, Honeywell, Daikin VRV) використовують різні протоколи. Один об'єкт — Modbus RTU на RS-485 до припливних установок, BACnet/IP до чилерів, пропрієтарний протокол до фанкойлів Daikin. Наш мобільний додаток працює з нормалізованими даними через API-шлюз, тому ми приділяємо особливу увагу правильній інтерпретації вихідних даних. Помилка на етапі розбору може призвести до аварійних ситуацій: наприклад, якщо температура подачі прочитана як unsigned замість signed, система може прийняти -10°C за 65436°C і вимкнути опалення. За роки роботи ми накопичили базу типових конфігурацій для більшості поширених контролерів.

Ключові параметри та їх джерела

Мінімальний набір для моніторингу клімату:

Параметр Джерело Одиниця Частота
Температура подачі/обратки Датчики PT1000/NTC на трубопроводі °C 30 сек
Температура повітря в зоні Кімнатний датчик або термостат °C 1 хв
Вологість SHT31 або HIH6130 в зоні %RH 1 хв
Уставка (setpoint) Контролер °C по зміні
Стан компресора Дискретний вхід контролера on/off по зміні
COP (коефіцієнт ефективності) Обчислюваний на бекенді 5 хв

Важливий нюанс: температура в Modbus Holding Registers часто приходить як знакове int16 в одиницях 0.1°C. Якщо контролер віддає 0xFF9C, це не 65436°C — це -100, тобто -10.0°C. Неправильна інтерпретація — джерело класичної помилки «датчик показує -3200°C».

fun parseModbusTemperature(rawValue: Int): Double { // Конвертуємо unsigned 16-bit у signed val signed = if (rawValue > 32767) rawValue - 65536 else rawValue return signed / 10.0 } 

Відповідно до Modbus Application Protocol Specification v1.1b, адреси регістрів починаються з 40001, але в API шлюзу вони можуть бути зміщені. Тому ми завжди звіряємо мапінг регістрів з документацією контролера.

Типові помилки при зчитуванні даних

Найпоширеніша помилка — неправильний порядок байтів (little-endian vs big-endian) та різна кодування даних. Наприклад, у деяких контролерів температура передається в градусах Фаренгейта з множником 100, а не 10. Наш досвід показує, що в 30% проєктів виявлено невідповідності між документацією та реальним протоколом. Тому ми обов'язково проводимо тестовий опит усіх регістрів і звіряємо з показниками еталонних датчиків.

Реалізація на Android: polling через Retrofit + coroutines

Шлюз (Node-RED або самописний Go-сервіс) надає REST API. Polling з адаптивним інтервалом — агресивний коли додаток на передньому плані, рідкий у фоні:

class HvacPollingService( private val api: HvacApi, private val repository: HvacRepository, ) { private var pollingJob: Job? = null fun startPolling(scope: CoroutineScope, foreground: Boolean) { pollingJob?.cancel() val interval = if (foreground) 15_000L else 60_000L pollingJob = scope.launch { while (isActive) { try { val data = api.getHvacStatus() repository.update(data) } catch (e: IOException) { // Логуємо, не крешимо — втрата зв'язку з шлюзом штатна ситуація } delay(interval) } } } } 

Переваги MQTT над Polling

Для об'єктів з MQTT-шлюзом (Eclipse Mosquitto) використовуємо org.eclipse.paho.client.mqttv3. Топіки по зонах: hvac/{buildingId}/{unitId}/temperature, hvac/{buildingId}/{unitId}/setpoint. MQTT забезпечує майже миттєву доставку змін — в 10 разів швидше polling при тому ж навантаженні на мережу.

Параметр Polling (REST) MQTT
Затримка доставки 1–15 сек < 0.5 сек
Навантаження на мережу Висока Низька
Надійність Залежить від інтервалу Повідомлення QoS 1/2
Складність реалізації Низька Середня

Тренди та історія

Графік температури за тиждень — обов'язковий елемент. Дані за тривалий період запитуємо з агрегацією на сервері (avg/min/max по годинних інтервалах), не тягнемо сирі 30-секундні записи. У додатку рендеримо через MPAndroidChart (Android) або fl_chart (Flutter):

LineChartData buildTemperatureChart(List<TemperatureReading> history) { return LineChartData( lineBarsData: [ LineChartBarData( spots: history.asMap().entries.map((e) => FlSpot(e.key.toDouble(), e.value.temperature)).toList(), isCurved: true, color: Colors.blue, dotData: FlDotData(show: false), ), ], titlesData: FlTitlesData( bottomTitles: AxisTitles( sideTitles: SideTitles( showTitles: true, getTitlesWidget: (value, meta) => Text(formatHour(history[value.toInt()].timestamp)), ), ), ), ); } 

Алерти по виходу з діапазону

Температура вийшла за межі — потрібне сповіщення. На сервері налаштовуємо правила (наприклад, через Node-RED або TimescaleDB continuous aggregates), push приходить через FCM. У додатку зберігаємо історію алертів локально в Room/SQLite — користувач має бачити коли і що сталося, навіть якщо сповіщення змахнув.

Як ми забезпечуємо безперебійний моніторинг?

Ключове рішення — резервування каналів зв'язку. Якщо основний шлюз через Modbus недоступний, додаток автоматично перемикається на резервний BACnet/IP або Cloud API. Для цього ми використовуємо паттерн Chain of Responsibility з таймаутами. Крім того, ми налаштовуємо локальне кешування даних на пристрої на випадок втрати мережі. У нашій практиці був проєкт для торгового центру з 200 точками моніторингу — ми гарантували доставку сповіщень із затримкою не більше 30 секунд при 99.9% uptime сервера.

Що входить у розробку?

У рамках роботи ми надаємо:

  • Документацію за протоколами та точками даних (адреси регістрів, коефіцієнти перетворення).
  • Вихідний код додатка з коментарями та тестами.
  • Інтеграцію з існуючими системами (BMS, SCADA) через API.
  • Навчання персоналу замовника роботі з додатком.
  • Технічну підтримку протягом 3 місяців після запуску.

Наш підхід до роботи

Процес роботи: аудит поточних контролерів → проєктування архітектури інтеграції → розробка мобільного додатка (iOS/Android) → тестування на стенді → деплой на об'єкті. Строки: від 4 до 6 тижнів для типового проєкту. Вартість розраховується індивідуально після аналізу протоколів та кількості точок моніторингу. Зв'яжіться з нами, щоб обговорити деталі та отримати консультацію — ми проаналізуємо вашу інфраструктуру і запропонуємо оптимальне рішення під ключ.

Висновки

Таким чином, ми гарантуємо надійний моніторинг HVAC з точністю даних до 0.1°C і часом реакції на аварійні ситуації менше 30 секунд. Довірте управління кліматом професіоналам з 5+ років досвіду та понад 20 успішно реалізованих проєктів. Отримайте консультацію по вашому проєкту вже сьогодні.