Multi-sensor fusion platform for smart building HVAC optimisation and occupancy prediction across 12 London office buildings — achieving 97.0% room-level occupancy prediction accuracy with a 15-minute lookahead and 18% reduction in HVAC energy consumption.
6 months, August 2024 – January 2025
1 IoT/Embedded Engineer, 1 Data Scientist
Commercial property management firm, 12 office buildings across London
340+ sensor nodes across 12 buildings, 180+ monitored zones
The client manages a portfolio of 12 multi-tenant office buildings across central and east London, totalling approximately 45,000 sqm of lettable space. Rising energy costs and tenant demands for better indoor air quality drove the need for an intelligent HVAC optimisation system. The buildings range from 1990s refurbishments to 2010s new builds, each with different BMS (Building Management System) vendors, making a unified sensor-driven approach essential.
Developed a sensor fusion platform that integrates environmental, occupancy, and energy-metering data to optimise HVAC scheduling and setpoints across 12 London office buildings. The system predicts room-level occupancy 15 minutes ahead and adjusts heating, cooling, and ventilation accordingly — reducing energy waste in unoccupied or lightly occupied zones while maintaining tenant comfort within defined thresholds.
Raspberry Pi 4 (per-floor gateway), ESP32 (sensor nodes), Sensirion SCD41, Panasonic EKMC, BME280, TSL2591, Shelly 3EM
TensorFlow Lite, scikit-learn, XGBoost
Time Series Analysis (Prophet), Kalman Filtering, Sensor Fusion Algorithms
MQTT (Mosquitto), BACnet gateway, REST API, InfluxDB
A commercial property management firm overseeing 12 office buildings across London needed to reduce HVAC energy consumption without compromising tenant comfort or indoor air quality. Key challenges included:
The client had previously installed a basic PIR-only occupancy system in two of their buildings. The system used simple binary occupancy detection (occupied/unoccupied) with fixed 30-minute HVAC timeouts. This approach failed for several reasons: PIR sensors could not distinguish between 2 people and 40 people in an open-plan office, leading to identical HVAC output regardless of actual load. The 30-minute timeout meant HVAC continued running long after floors emptied in the evening. CO2 levels in densely occupied meeting rooms frequently exceeded 1200 ppm before the system reacted, generating tenant complaints. The client needed a predictive, multi-sensor approach that could anticipate demand rather than merely react to it.
Developed a fusion model that combines PIR motion events, CO2 rate-of-change, acoustic energy levels, and door contact transitions to estimate not just whether a room is occupied, but approximately how many people are present (in bands: 0, 1–5, 6–15, 16+). This granularity allows the HVAC system to modulate output proportionally rather than using binary on/off control.
Why sensor fusion over camera-based counting: Camera-based occupancy counting would have provided higher-resolution headcounts, but the client's tenants raised privacy objections during consultation. The sensor fusion approach uses only non-visual, non-biometric data — CO2 concentration is a reliable proxy for occupancy density, and combining it with PIR and acoustic signals resolves the ambiguity that any single sensor type introduces.
Built an XGBoost-based occupancy prediction model that forecasts room-level occupancy 15 minutes ahead. Features include time-of-day, day-of-week, historical occupancy patterns per zone, calendar integration (meeting room bookings from the client's Exchange server), and CO2 trend gradients. The model retrains weekly on a rolling 8-week window to adapt to changing tenant patterns.
Why XGBoost over LSTM: We tested both LSTM and XGBoost on 4 weeks of pilot data. XGBoost achieved 97.0% accuracy at the 15-minute horizon versus 95.8% for the LSTM, while running comfortably on a Raspberry Pi 4 (inference in under 5ms vs. 120ms for the LSTM). For this tabular time-series problem with strong temporal features, gradient boosting outperformed sequence models both in accuracy and resource efficiency.
Implemented a rule-based optimisation layer that translates occupancy predictions into HVAC setpoint adjustments via BACnet. Unoccupied zones enter setback mode (heating to 16°C instead of 21°C, ventilation reduced to minimum fresh-air rate). Zones predicted to become occupied receive pre-conditioning 15 minutes in advance, ensuring comfort is maintained from the moment of arrival.
Why rule-based over reinforcement learning: While RL-based HVAC control is promising, the client required a transparent, auditable control logic that their building managers could understand and override. Rule-based setpoint scheduling is explainable, tuneable per-zone, and carries no risk of unexpected behaviour — critical for occupied commercial buildings.
Each floor is served by a Raspberry Pi 4 gateway that aggregates sensor data via MQTT, runs the local occupancy estimation model, and communicates setpoint recommendations to the BMS via a BACnet IP gateway. This architecture keeps latency-sensitive decisions local while forwarding historical data to a central InfluxDB instance for analytics and model retraining.
Why Raspberry Pi 4 over cloud-only: The client's buildings have inconsistent internet reliability. Edge gateways ensure HVAC optimisation continues even during internet outages — the Pi runs the last-trained model locally and only requires connectivity for model updates and dashboard reporting.
The system integrates 7 sensor types deployed across 180+ zones:
The fusion pipeline processes sensor data through three stages:
The system has documented limitations that were communicated to the client during handover:
Occupancy Prediction Accuracy (room-level, 15-min lookahead)
On-Device Inference Latency (Raspberry Pi 4)
Sensor Nodes Across 12 Buildings
System Uptime (edge gateway level)
Fixed HVAC schedules: heating/cooling ran 07:00–19:00 regardless of actual occupancy
Predictive scheduling: HVAC modulates per-zone based on 15-minute occupancy forecast
Binary PIR: no occupancy density data, 30-min fixed timeout, frequent CO2 complaints
Multi-sensor fusion: 4-band occupancy estimation, 97.0% prediction accuracy, CO2 consistently <1000 ppm
The system is in active operation across all 12 buildings with ongoing monitoring and planned enhancements: