Case Study: Transforming a Delhi Office with Local-Only Automation

How we helped a 50-person tech startup automate their office using privacy-first, vendor-agnostic solutions.

Amit Sharma

November 1, 2025

Case Study: Transforming a Delhi Office with Local-Only Automation

When TechVenture Solutions, a 50-person startup in Okhla, Delhi, contacted us about automating their office, they had one non-negotiable requirement: complete data privacy.

The Challenge

TechVenture develops financial software for banks. Their office automation needs were unique:

Requirements

  • Zero cloud dependency - client data cannot touch external servers
  • Audit compliance - must meet RBI and ISO 27001 standards
  • Scalability - planning to grow to 100 employees
  • Cost-effective - startup budget constraints
  • Local support - no reliance on overseas vendors

Existing Pain Points

  • Manual light switches wasting energy
  • No occupancy tracking for space planning
  • AC running in empty rooms
  • No access control integration
  • High electricity bills (₹2.5L/month)

Our Approach

We designed a completely local-only automation system using open-source tools and our own hardware.

System Architecture

Internet ❌ (No external connection)
    ↓
Internal Network (Isolated VLAN)
    ↓
Local Server (Intel NUC)
    ├── Home Assistant OS
    ├── Node-RED for logic
    ├── InfluxDB for metrics
    └── Grafana for dashboards
    ↓
Automation Controllers
    ├── 6× RelayWala (lighting, AC control)
    ├── 4× MotorWala (motorized blinds)
    ├── 15× PIR sensors (occupancy)
    └── 8× Door sensors (access tracking)

Phase 1: Planning (Week 1-2)

We conducted a thorough assessment:

  • Energy audit - identified waste patterns
  • Floor plan analysis - optimal sensor placement
  • User interviews - understanding workflows
  • Compliance review - ensuring regulatory fit

Key findings:

  • 40% of energy used outside business hours
  • 12 zones rarely occupied during day
  • No correlation between AC usage and occupancy

Phase 2: Infrastructure (Week 3-4)

Installation priorities:

  1. Network setup - Isolated automation VLAN
  2. Central hub - Intel NUC running Home Assistant
  3. Power upgrades - Smart breakers for monitoring
  4. Backup systems - UPS and failover logic

Phase 3: Deployment (Week 5-8)

Rolled out in zones to minimize disruption:

Week 5: Conference rooms (high impact, low risk)

  • Occupancy-based lighting
  • Auto AC control
  • Blind automation for presentations

Week 6: Open work areas

  • Zone-based lighting
  • Desk occupancy sensors
  • Temperature optimization

Week 7: Private offices and meeting rooms

  • Individual controls
  • Privacy-respecting sensors
  • Energy monitoring

Week 8: Common areas and final integration

  • Entrance lighting
  • Restroom occupancy
  • Full system integration

The Technology Stack

Hardware Deployed

| Component | Quantity | Purpose | Cost (₹) | |-----------|----------|---------|----------| | RelayWala 4-channel | 6 | Lighting/AC control | 8,994 | | MotorWala | 4 | Motorized blinds | 9,996 | | PIR sensors | 15 | Occupancy detection | 22,500 | | Door sensors | 8 | Access monitoring | 8,000 | | Intel NUC | 1 | Central hub | 35,000 | | Networking gear | - | Switches, cables | 15,000 | | Total | | | ₹99,490 |

Software Configuration

All software was free and open-source. Our controllers run ESPHome firmware which integrates natively with Home Assistant:

ESPHome Configuration for RelayWala (Lighting Control):

esphome:
  name: office-lighting-controller
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.10.101
    gateway: 192.168.10.1

api:
  encryption:
    key: !secret api_encryption_key

# 4 relay switches for different zones
switch:
  - platform: gpio
    pin: GPIO16
    name: "Office Main Lights"
    id: relay_1
    restore_mode: RESTORE_DEFAULT_OFF

  - platform: gpio
    pin: GPIO14
    name: "Conference Room Lights"
    id: relay_2
    restore_mode: RESTORE_DEFAULT_OFF

  - platform: gpio
    pin: GPIO12
    name: "West Wing AC"
    id: relay_3
    restore_mode: RESTORE_DEFAULT_OFF

  - platform: gpio
    pin: GPIO13
    name: "Conference Room AC"
    id: relay_4
    restore_mode: RESTORE_DEFAULT_OFF

ESPHome Configuration for MotorWala (Blinds Control):

esphome:
  name: conference-room-blinds
  platform: ESP32
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.10.201

api:
  encryption:
    key: !secret api_encryption_key

# L298N motor driver for automated blinds
output:
  - platform: ledc
    pin: GPIO25
    id: motor_forward
    frequency: 1000 Hz

  - platform: ledc
    pin: GPIO26
    id: motor_backward
    frequency: 1000 Hz

cover:
  - platform: time_based
    name: "Conference Room Blinds"
    id: blinds
    open_duration: 25s
    close_duration: 25s

# Overcurrent protection for motor safety
sensor:
  - platform: adc
    pin: GPIO34
    name: "Motor Current"
    filters:
      - multiply: 3.3
    on_value_range:
      - above: 2.5
        then:
          - cover.stop: blinds

Home Assistant Automation Configuration:

automation:
  - alias: "Office Hours Lighting"
    trigger:
      - platform: time
        at: "09:00:00"
    condition:
      - condition: state
        entity_id: binary_sensor.workday
        state: "on"
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.office_main_lights
        data:
          brightness: 80

  - alias: "Unoccupied Room AC Off"
    trigger:
      - platform: state
        entity_id: binary_sensor.conference_room_occupied
        to: "off"
        for:
          minutes: 15
    action:
      - service: switch.turn_off
        entity_id: switch.conference_room_ac

  - alias: "Auto Close Blinds for Presentations"
    trigger:
      - platform: state
        entity_id: binary_sensor.presentation_mode
        to: "on"
    action:
      - service: cover.close_cover
        entity_id: cover.conference_room_blinds

All device configurations are version-controlled in their GitLab repository and can be updated over-the-air via ESPHome.

Implementation Challenges

Challenge 1: WiFi Reliability

Problem: Initial WiFi mesh struggled with 35+ devices.

Solution: Deployed dedicated 2.4GHz network for IoT devices with enterprise-grade access points.

Challenge 2: User Adoption

Problem: Employees bypassing automation by using manual switches.

Solution:

  • Training sessions
  • Clear signage
  • Dashboard showing energy savings
  • Gamification - team competitions

Challenge 3: Fine-Tuning

Problem: False triggers from occupancy sensors.

Solution: Adjusted sensitivity, added 5-minute delays, incorporated multiple sensor voting.

The Results

After 3 months of operation:

Energy Savings

  • Electricity bill: ₹2.5L → ₹1.6L/month
  • Savings: ₹90,000/month (₹10.8L/year)
  • ROI: 1.1 months (system paid for itself!)
  • Carbon reduction: ~3 tons CO₂/year

Operational Improvements

  • 99.7% system uptime
  • Zero security incidents
  • 85% employee satisfaction
  • 45% reduction in manual interventions

Compliance Win

System passed both RBI and ISO 27001 audits:

✅ All data stored locally ✅ No external network access ✅ Complete audit trail ✅ Redundant backups ✅ User access controls

Key Automations Deployed

1. Smart Lighting

IF occupancy detected
  AND during business hours
  AND ambient light < threshold
THEN turn lights on at 80%

IF no occupancy for 10 minutes
  OR after hours
THEN dim to 20% and off after 5 more minutes

Result: 60% lighting energy reduction

2. Climate Control

IF room occupied
  AND temperature > comfort range
THEN set AC to 24°C

IF no occupancy for 15 minutes
THEN AC off

Result: 45% AC energy reduction

3. Motorized Blinds

IF sun glare detected
  AND meeting in progress
THEN close blinds

IF presentation mode
THEN close all conference room blinds

Result: Improved meeting comfort, 15% AC load reduction

4. Access Insights

TRACK door sensor events
ANALYZE peak usage times
GENERATE space utilization reports

Result: Data-driven space planning, identified underutilized areas

Lessons Learned

What Worked Well

  1. Phased rollout - minimized disruption
  2. Local-only architecture - zero compliance issues
  3. Open-source stack - easy customization
  4. Employee involvement - better adoption

What We'd Do Differently

  1. More training - should have done 2 sessions instead of 1
  2. Better documentation - create video guides
  3. Staged sensors - test occupancy logic before full deployment
  4. Earlier stakeholder demos - would have secured buy-in faster

Client Testimonial

"The Wala Works team delivered exactly what we needed. A fully compliant, privacy-first automation system that actually saves us money every month. The best part? We own and control everything - no subscriptions, no vendor lock-in."

— Rajesh Kumar, CTO, TechVenture Solutions

Cost-Benefit Analysis

Investment

  • Hardware: ₹99,490
  • Installation: ₹50,000
  • Training: ₹10,000
  • Total: ₹1,59,490

Returns (Annual)

  • Energy savings: ₹10,80,000
  • Maintenance reduction: ₹60,000
  • Improved productivity: ~₹2,00,000 (estimated)
  • Total: ₹13,40,000

ROI: 840% in year 1

Scalability Plan

TechVenture is now planning to:

  1. Expand to second floor (Q1 2026)
  2. Add meeting room booking integration
  3. Implement desk hoteling system
  4. Deploy similar systems at their Bangalore office

All using the same vendor-agnostic platform.

Technical Deep Dive

For the technically curious, here's how we handled some complex scenarios:

Multi-Zone Temperature Management

# Custom Python script for optimal AC control
def calculate_optimal_temp(zone):
    occupancy = get_occupancy(zone)
    outside_temp = get_weather()
    time_of_day = get_time()

    if occupancy == 0:
        return None  # Turn off
    elif occupancy < 5:
        return 25  # Light cooling
    else:
        base_temp = 24
        # Adjust for external factors
        if outside_temp > 40:
            base_temp -= 1
        if time_of_day > "14:00" and zone == "west_facing":
            base_temp -= 1

        return base_temp

Privacy-Preserving Occupancy

We don't track WHO is present, only HOW MANY:

# Anonymized counting logic
sensor:
  - platform: template
    sensors:
      conference_room_count:
        friendly_name: "People in Conference Room"
        value_template: >
          {{ states('sensor.pir_count')|int }}
        # No cameras, no identification, just counts

Conclusion

This project proves that automation doesn't require sacrificing privacy or breaking the bank. With the right approach, even small businesses can deploy enterprise-grade systems.

The key ingredients:

  • Local-first architecture
  • Open-source software
  • Vendor-agnostic hardware
  • Thoughtful implementation
  • User-centric design

Ready to automate your office? Our Office Automation Suite has everything you need, or contact us for a custom consultation.


All data presented with client permission. Company name and some details changed for confidentiality.

Share this article

Amit Sharma

Writer and automation enthusiast at Wala Works, passionate about open-source solutions and smart home technology.