All Projects
Case Study StructureSense · 2025 IoT · Hardware · Platform Eval

FMS Smart Building POC
LoRaWAN Commissioning

Solo deployment of 25 LoRaWAN sensors across a 20,000 sq ft office and warehouse — leak detection, occupancy, environmental monitoring, and automated garage door control, all feeding a live dashboard. Built to prove the stack before selling it.

Role
Solo IoT
Systems Engineer
Timeline
~2 Months
Scale
25 devices
20,000 sq ft
Platforms Tested
3 LNS
3 Dashboards
Stack
TTN · Datacake
LoRaWAN 915MHz

The Problem

The rest of the world was doing this.
The US wasn't.

Smart building IoT — sensors monitoring temperature, occupancy, leaks, air quality, and energy at the device level — was well established internationally. In the US, the market was wide open, especially for small-to-mid commercial properties and warehouses that couldn't afford enterprise BMS platforms.

The economics are straightforward: a $25 leak sensor under an HVAC unit pays for itself the first time it catches a drip before it becomes $4,000 in water damage. A $30 occupancy sensor in a conference room is cheaper than the energy bill from heating empty spaces. Prevention is always cheaper than remediation — the industry just hadn't connected the hardware to the insight.

Before selling this to building managers, we had to prove it worked — in a real building, with real sensors, real data flowing, and a real dashboard they could look at.

Felix Media Solutions offered their Austin office and warehouse as the test environment. The goal: commission a multi-zone sensor network, evaluate the software stack options, and validate the full data path from device to dashboard.

25
LoRaWAN devices commissioned
15+
Distinct device types from 6 vendors
6
Monitored zones across the facility
6
Platforms evaluated (LNS + dashboard)

Use Cases

What we set out to prove.

The use cases were deliberately broad — the POC needed to demonstrate that a single LoRaWAN deployment could cover the scenarios property managers actually care about.

Leak Detection

Milesight WS303 water sensors under the kitchen sink and near HVAC units. Alert fires before a drip becomes a flood.

Milesight WS303

Automated Garage Doors

Dragino LT-22222-L relay wired to door switches. Doors auto-close 30 min after 6pm. Geofence trigger from LoRaWAN vehicle trackers also enabled.

Dragino LT-22222-L

Meeting Room Occupancy

PIR and presence sensors in every conference room and office. Live "Occupied / Vacant" status with historical patterns.

Tektelic Vivid · Milesight WS202 · VS341

Warehouse Temperature

Dragino and SenseCap TH sensors across the warehouse floor to catch hot spots, cold zones, and HVAC inefficiencies.

Dragino LHT52 · SenseCap TH

OSHA Sound Compliance

Three Milesight WS302 sound sensors in the inventory room, loading dock, and warehouse. Alert threshold set to OSHA permissible exposure limit.

Milesight WS302 (×3)

Fridge Temperature Monitoring

Dragino LHT65S with external probe sensor tracking refrigerator temperature 24/7. Alerts on anomalies before food spoils or equipment fails.

Dragino LHT65S-E3

Energy Monitoring

Dragino CS01-LB current sensor on the main breaker and Netvox R809AB smart plug at circuit level. Baseline energy profiling for the building.

Dragino CS01-LB · Netvox R809AB

Air Quality

Milesight AM107 monitoring CO₂, TVOC, PM2.5, humidity, and illumination in the kitchen and bathroom. Alerts when CO₂ approaches unsafe levels.

Milesight AM107 (×2) · Tektelic Breeze

Vehicle Tracking

Dragino TrackerD-LS GPS units mounted on company vehicles. Integrated with geofence triggers for automatic gate/door logic.

Dragino TrackerD-LS

Architecture

Sensor to screen.

Every sensor speaks LoRaWAN — a long-range, low-power protocol that transmits small data packets over 915MHz RF. The Milesight UG65 gateway (named "Poppy" on TTN) received all device traffic and forwarded it to The Things Network as the LNS.

From TTN, a webhook pushed decoded payloads into Datacake, where each device type had a custom dashboard widget. The garage door relay closed the loop — Datacake could trigger a downlink back through TTN to the Dragino LT-22222-L to physically actuate the door switch.

Radio Layer LoRaWAN 915MHz, AES-128 encrypted
Gateway Milesight UG65 (indoor, IT rack)
LNS The Things Network (TTN) — free tier
Dashboard Datacake — webhook integration
Actuation TTN downlink → LT-22222-L relay
Data Flow
flowchart TD A["🌡️ LoRaWAN Sensors\n(25 devices, 915MHz)"] B["📡 Milesight UG65\nGateway"] C["☁️ The Things Network\nLNS + Decoder"] D["📊 Datacake\nDashboard"] E["🔁 Downlink\n(actuation)"] F["🚪 Dragino LT-22222-L\nRelay Controller"] A -->|"RF uplink"| B B -->|"MQTT/UDP"| C C -->|"Webhook"| D D -->|"Trigger"| E E -->|"TTN downlink"| F F -->|"Relay close/open"| A style A fill:#1e293b,color:#94a3b8,stroke:#334155 style B fill:#1e293b,color:#94a3b8,stroke:#334155 style C fill:#1e293b,color:#6CCCDF,stroke:#2a97ae style D fill:#1e293b,color:#7CC898,stroke:#5ab47e style E fill:#1e293b,color:#94a3b8,stroke:#334155 style F fill:#1e293b,color:#f59e0b,stroke:#d97706

Platform Evaluation

Testing the stack. Picking the winner.

A core goal of this POC was finding the right software stack — not just the right hardware. I tested three LNS platforms and three dashboard platforms before converging on the combination we'd recommend to customers.

LoRaWAN Network Server (LNS)

The Things Network ✓ Selected

Reliable free tier, large community, excellent device library, clean webhook integration. Every device we tested had a pre-built payload decoder.

Helium Network (Chirpstack) Not selected

Coverage gaps in our area required supplemental gateways. Chirpstack configuration added complexity without benefit for a proof-of-concept scale.

Tagio Not selected

Combined LNS + dashboard in one platform, but the dashboard customization was too limited and the LNS layer had less ecosystem support.

Dashboard Platform

Datacake ✓ Selected

No-code widget builder, flexible device templates, webhook ingestion from TTN, and a clean public-shareable dashboard. Won on usability and customization depth.

Traxmate Not selected

Better suited for asset tracking use cases. Widget library was too rigid for the varied sensor types we were deploying.

Tagio (dashboard layer) Not selected

Functional but the dashboard felt like an afterthought. Lacked the per-device template system that made Datacake fast to scale.

Commissioning

The unglamorous work that makes the system real.

Commissioning 25 devices across a multi-vendor LoRaWAN deployment isn't a software problem — it's a logistics and process problem. Every device needs to be physically placed, documented, provisioned on the LNS, and verified in the dashboard. None of it is hard in isolation. At 25 devices across 6 zones it becomes an information management challenge.

Device Naming Convention

Every device got a standardized ID so location, manufacturer, and function were immediately obvious from the name alone.

// Pattern
location - model - type - last4devEUI
// Examples
fms-dev-airq-8531-msws302
fms-dev-th-occ-0173-tkvivid
fms-dev-leak-0349
// Zone prefixes
WH · OFFC · LD · KIT · INV · BATH

The Key Problem

Every LoRaWAN device requires three unique cryptographic identifiers: DevEUI, AppEUI, and AppKey — each a 32-character hex string printed in tiny type on a label no bigger than a postage stamp.

Hand-typing 25 × 3 keys = 2,400 characters with zero room for error. A single transposed character means the device never joins the network.

Solution: Google Vision OCR

Photographed each device label and ran it through Google Cloud Vision to extract the key strings directly into the inventory spreadsheet. Even OCR struggled — the font's B and 8 were nearly indistinguishable, requiring manual verification on every key.

Tektelic device commissioning label
Tektelic DevEUI + AppKey
SenseCap LoRaWAN device label
SenseCap LoRa-S-915 label
Milesight UG65 gateway on TTN
Milesight UG65 gateway — "Poppy" on TTN, mounted in the FMS server rack
FMS server room and IT rack
FMS IT closet — gateway home base

Technical Spotlight

Closing the loop — literally.

Most IoT dashboards are read-only — sensors report state, humans react. The garage door integration was the first actuator in the system, proving the two-way LoRaWAN data path.

01

Reed sensor reads door state

A magnetic reed sensor on the garage door chain reads open/closed state. When the chain is taut (door closed), the circuit closes. This state is reported to TTN every uplink interval.

02

LT-22222-L wired to door switch

The Dragino LT-22222-L I/O Controller — a LoRaWAN relay module — was wired in parallel with the garage door button. It has 2 relay outputs and can receive Class C downlinks to trigger either relay.

03

Time-based rule in Datacake

A Datacake automation rule watches the clock and the door state sensor. If the door reports "open" after 6:00 PM, the rule fires a TTN downlink to the LT-22222-L to pulse the relay — same signal as pressing the button.

04

Geofence trigger via GPS tracker

Dragino TrackerD-LS units on company vehicles provided an additional trigger source. A vehicle entering the geofenced property perimeter could automatically open the door — no app, no remote needed.

Dragino LT-22222-L LoRaWAN I/O Controller
Dragino LT-22222-L
LoRaWAN I/O Controller — 2 relay outputs, 2 digital inputs, 2 analog inputs. Wired to garage door switch and reed sensor.
Dragino TrackerD-LS GPS tracker
Dragino TrackerD-LS
GPS + LoRaWAN vehicle tracker. Geofence entry triggers door automation.

Live Dashboard

Datacake — the one that won.

The Datacake dashboard aggregated all 25 devices into a single view, organized by zone. Live data, time-series charts, occupancy indicators, and remote door controls — all accessible from a browser, no app install required.

Datacake StructureSense 01 live dashboard showing FMS Office zones, Loading Dock, Kitchen, Bathroom, and West Office
Loading Dock
Temp · Humidity · Sound Level
Kitchen
Temp · TVOC · Illumination
Bathroom
Occupied/Vacant · CO₂ · TVOC
West Office
Temp · Occupancy per room

Installation

In the field.

TH sensor mounted on beam
TH sensor mounted on beam
Dragino LHT52 temperature & humidity sensor deployed in an outbuilding — LoRaWAN range means no wiring required.
Milesight UG65 gateway
Milesight UG65 gateway
"Poppy" — the gateway that received all 25 devices. One gateway covered the entire 20k sq ft deployment.
IT closet infrastructure
IT closet infrastructure
FMS server room housed the gateway, router, and networking stack for the LoRaWAN deployment.
Dragino LT-22222-L relay
Dragino LT-22222-L relay
The I/O controller that turned sensor readings into physical action — wired directly to garage door switches.
Tektelic device provisioning
Tektelic device provisioning
Each device came with a label containing the three 32-char hex keys needed to join the LoRaWAN network.
Dragino GPS tracker
Dragino GPS tracker
TrackerD-LS mounted on company vehicles for geofence-triggered automations and proof-of-concept asset tracking.

Outcomes

What the POC answered.

TTN + Datacake is the stack

After testing 6 platforms, this combination had the right balance of reliability, device ecosystem, and dashboard flexibility for the property management market.

Commissioning needs a system

The device lifecycle spreadsheet — tracking DevEUI, zone, location photo, join status, and dashboard widget — became the operational backbone. At 25 devices it was essential. At 500 it would be critical.

LoRaWAN security holds up

AES-128 encryption both uplink and downlink, with unique per-device keys. The hardest security problem was key management at commissioning time — not transmission.

One gateway, 20k sq ft

A single indoor Milesight UG65 covered the entire FMS deployment. LoRaWAN's range characteristics make it dramatically simpler to deploy than WiFi or Zigbee mesh networks at warehouse scale.

The prevention pitch is real

A fridge temperature alert, a leak sensor under a dripping HVAC unit, a dock door that closes itself — the ROI conversation with building managers writes itself once the dashboard is in front of them.

Foundation for StructureSense

The hardware knowledge, naming conventions, commissioning process, and platform decisions from this POC fed directly into the StructureSense platform architecture and the THPO custom sensor design.

Hardware & Software

Sensors & Actuators

Milesight AM107Milesight WS302Milesight WS303Milesight WS202Milesight VS341Milesight WT201Tektelic VividTektelic BreezeDragino LHT52Dragino LHT65SDragino LT-22222-LDragino TrackerD-LSDragino CS01-LBSenseCap TH-915Browan TBHH100Netvox R809ABNetvox R602AKuando Busylight

Infrastructure

Milesight UG65 GatewayTeltonika RUTX11LoRaWAN 915MHzAES-128 Encryption

Software

The Things NetworkDatacakeHelium / ChirpstackTagioTraxmateGoogle Vision OCRGoogle Sheets