HVAC System Monitoring via Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
HVAC System Monitoring via Mobile App
Medium
from 4 hours to 2 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementing HVAC System Monitoring via Mobile Applications

HVAC controllers (Danfoss, Honeywell, Daikin VRV) rarely speak the same protocol. One facility may use Modbus RTU over RS-485 for air handlers, BACnet/IP for chillers, and proprietary protocol for Daikin fan coils. Mobile applications work with normalized data via API gateway, but developers must understand where numbers come from to interpret and display them correctly.

Key Parameters and Sources

Minimal climate monitoring set:

Parameter Source Unit Frequency
Supply/Return Temperature PT1000/NTC sensors on pipes °C 30 sec
Zone Air Temperature Room sensor or thermostat °C 1 min
Humidity SHT31 or HIH6130 in zone %RH 1 min
Setpoint Controller °C on change
Compressor State Discrete input on/off on change
COP (Efficiency) Calculated on backend 5 min

Critical detail: Modbus temperature often arrives as signed int16 in 0.1°C units. If controller sends 0xFF9C, this isn't 65436°C — it's -100, meaning -10.0°C. Incorrect interpretation is the classic bug: "sensor shows -3200°C".

fun parseModbusTemperature(rawValue: Int): Double {
    // Convert unsigned 16-bit to signed
    val signed = if (rawValue > 32767) rawValue - 65536 else rawValue
    return signed / 10.0
}

Android Implementation: Polling via Retrofit + Coroutines

Gateway (Node-RED or custom Go service) provides REST API. Polling with adaptive interval — aggressive when app is foreground, rare in background:

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) {
                    // Log, don't crash — gateway connection loss is normal
                }
                delay(interval)
            }
        }
    }
}

For MQTT-gateway objects, use org.eclipse.paho.client.mqttv3. Topics by zones: hvac/{buildingId}/{unitId}/temperature, hvac/{buildingId}/{unitId}/setpoint.

Trends and History

Temperature graph for a week is mandatory. For long periods, request aggregated data from server (avg/min/max by hourly intervals), don't fetch raw 30-second records. Render via MPAndroidChart (Android) or 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)),
        ),
      ),
    ),
  );
}

Range Alerts

Temperature exceeds range — needs notification. Configure rules on server (Node-RED or TimescaleDB continuous aggregates); push comes via FCM. In app, store alert history locally in Room/SQLite — user should see when and what happened, even if notification was swiped.

Developing HVAC monitoring app with real-time data, historical trends and alerts: 4–6 weeks. Cost calculated individually after analyzing controller protocols and monitoring point count.