c-84, sector 65, Noida
c-84, sector 65, Noida
A grainstore management solution enabling real time silo monitoring and automated fan control, reducing post harvest losses by 15-20% across 300+ facilities.

Grain Silo Management Platform for an Industrial Automation Company
Full stack product engineering across web, desktop, and mobile, delivering cloud based grain monitoring, automation control, and inventory management for 300+ silo installations worldwide.

This platform automates grain storage across 300+ silo facilities. Sensor telemetry from each silo feeds a continuous silo monitoring system, automated fan control responds to grain temperature and humidity without operator intervention, and inventory positions update in real time. Automated grain management replaced manual readings, spreadsheet records, and site visits.
The client is a family owned industrial measurement and automation company headquartered in Europe. Founded in 1999, they specialize in high precision signal measurement, sensor technology, and electronic control systems for agricultural and industrial applications.
Their grain management division designs and manufactures electronic monitoring hardware, including temperature and humidity sensor cables, CO₂ detectors, remote terminal units (RTUs), and weighing electronics. These hardware systems are installed across 300+ silo facilities globally, serving grain storage operators who manage flat, steel, concrete, and feeder silos across Europe, Asia, and the Americas.
The company had well established hardware and embedded firmware capabilities. What they lacked was a modern software layer, a unified platform that could collect sensor data from their RTUs, present it to silo operators through web and mobile interfaces, and enable remote automation of ventilation, aeration, and inventory tracking across distributed sites.
The client’s core strength was in hardware engineering and embedded systems. Their RTUs collected granular sensor data (temperature, humidity, CO₂, fill levels, weight) from every silo in an installation. But getting that data to the people who needed it, the silo operators, plant managers, and agricultural commodity traders, required a software ecosystem that the client’s internal team was not structured to build.
Their existing desktop monitoring application was a legacy Windows native tool that ran locally in the silo plant’s control room. It worked reliably for single site operations, but it could not support multi site management, remote access, or mobile alerting. As the client’s hardware installations expanded globally, the gap between what their sensors could measure and what their software could deliver became an operational bottleneck.
Silo operators increasingly expected to monitor grain conditions from their phones. Commodity traders needed multi site dashboards accessible from any browser. And the client’s own sales team found it harder to compete against newer entrants who offered cloud based monitoring out of the box, even when those competitors’ sensor hardware was substantially less precise.

The project brief was threefold. First, build a cloud based web application capable of aggregating data from multiple silo sites into a single interface. Second, develop a cross platform mobile app for field monitoring and push notification alerting. Third, modernize the desktop application using Electron.js so it could run cross platform while maintaining the full featured control room experience that existing customers depended on.
All three surfaces needed to communicate with the client’s RTU hardware through MQTT, a lightweight messaging protocol designed for constrained IoT environments where network bandwidth is limited and connection reliability varies. The MQTT integration was the foundational technical constraint. Every architectural decision in the web, mobile, and desktop applications was downstream of how reliably the software layer could subscribe to, process, and visualize the real time telemetry stream from hundreds of sensors across dozens of facilities.
Clixlogix delivered a full stack grain management platform across three application surfaces in under three months, using a phased MVP approach that allowed the client to validate each delivery milestone with their existing silo customers before proceeding to the next phase.

The engagement began with what became the most consequential phase of the project, establishing a reliable software bridge between the client’s RTU hardware and the application layer. The client’s remote terminal units communicate sensor readings over MQTT, publishing telemetry data (temperature arrays, humidity readings, CO₂ concentrations, fill level measurements, and load cell outputs) to topic hierarchies organized by facility, silo, and sensor type.
The Clixlogix team built a Node.js based MQTT broker integration service that subscribes to the client’s topic structure, validates incoming payloads against expected sensor schemas, and persists normalized readings to MongoDB. The choice of MongoDB was deliberate. Grain telemetry data is high volume, append heavy, and varies in structure depending on the sensor configuration at each facility. A document oriented store allowed the team to handle schema variation across installations without requiring rigid table definitions for every possible sensor combination.
This integration layer also implemented connection resilience logic, including automatic reconnection with exponential backoff, message buffering during transient network outages, and dead letter handling for malformed payloads. In silo environments where industrial interference, power cycling, and intermittent connectivity are common, this layer became the reliability foundation for everything built above it.

With the MQTT integration layer stable, the team delivered the web application as the first user facing surface. Built in React, the GrainManager Web provides a multi site monitoring dashboard accessible from any modern browser. Plant managers and commodity traders use it to view real time sensor data across all connected silo facilities from a single interface.
The web application renders temperature distribution maps, humidity trend charts, CO₂ level indicators, and fill level gauges for every silo in a facility. Historical data analysis allows operators to compare current storage conditions against past readings across configurable intervals (daily, weekly, seasonal). An alarm management system triggers visual and email based alerts when any sensor reading breaches operator defined thresholds, enabling early detection of grain spoilage conditions.
Fan control functionality was integrated directly into the web interface, allowing authorized operators to activate or deactivate ventilation and aeration systems remotely. The system also supports fully automated fan control, where the software triggers aeration cycles based on real time temperature and humidity readings against operator configured target ranges. This automated ventilation reduced energy consumption by running fans only when conditions required intervention.
The weighing and inventory management module consumes data from the client’s load cells, flow scales, belt scales, and radar based fill level sensors. As grain inventory management software it provides real time inventory tracking across all connected silos, supporting truck filling station management, batch weighing workflows, and capacity planning.

The mobile application was built in Flutter, delivering a single codebase for iOS and Android deployment. Designed for field use by silo operators who need to check conditions while physically on site or remotely during off hours, the app provides a streamlined view of the same telemetry data available in the web application.
Push notification integration was the critical mobile capability. When a sensor alarm triggers (temperature spike, humidity breach, CO₂ elevation), the mobile app delivers an immediate push notification to designated operators. This closed the gap that previously required operators to be physically present in the control room or periodically checking a desktop application to catch emerging spoilage conditions.
The app supports multi site monitoring, allowing operators who manage multiple facilities to switch between sites within a single session. Each silo’s data is presented through charts and structured tables, with the ability to generate and export PDF reports for compliance documentation and customer reporting.

The existing legacy Windows desktop application served a specific and important role. It was the full featured control room interface used by on site plant operators at 300+ facilities. Replacing it entirely would have disrupted active installations. The Clixlogix team rebuilt the desktop experience using Electron.js, which preserved the dense, data rich interface that control room operators depended on while making the application cross platform (Windows, macOS, Linux).
The Electron desktop application retained all existing control room functionality, including granular sensor by sensor data visualization, manual and automated fan control, alarm journal (complete history of past alarm events), and direct RTU communication for facilities running in local only mode without cloud connectivity. It also added new capabilities. A webserver module bridges local installations to the cloud platform, API endpoints support custom integrations, and 3D silo visualization views were added.

The platform was deployed on Google Cloud, with the DevOps engineer configuring containerized services, automated deployment pipelines, and monitoring infrastructure. The cloud architecture was designed to support the client’s deployment model. Some facilities operate in fully cloud connected mode (data flows through the MQTT broker to Google Cloud, accessible via web and mobile), while others run in a hybrid mode where the Electron desktop application operates locally with periodic cloud synchronization.
This hybrid architecture was a nonnegotiable requirement. Many silo facilities are in rural locations with unreliable internet connectivity. The platform needed to function fully offline at the facility level while synchronizing data to the cloud when connectivity was available.
The platform runs wherever grain is stored at scale. Flat, steel, concrete, and feeder silos are supported through the same sensor integration, and a facility joins the platform by connecting its existing RTUs, with installed hardware unchanged. Grain handling automation covers intake, aeration, and outbound movement through that same integration.
The team reviewed established grain management software and connected agriculture platforms, including IntelliFarms, OPI, Raven, and GrainViz and GSI. Each solved part of the problem: farm level monitoring, automated conditioning, connected equipment visibility, or advanced bin imaging. None matched the full product requirement. The client needed to modernize an existing industrial control workflow, integrate directly with its RTU telemetry, preserve continuity for control room operators, support cloud and offline deployments, and create a software product it could continue extending across web, mobile, and desktop. Custom product engineering carried less risk than forcing the business into a third party platform model.
| Option | Why It Was Not the Right Fit |
|---|---|
| IntelliFarms and BinManager | Strong for farm level bin monitoring and service led grain management. The engagement required a configurable product suite for an industrial automation company serving many facility types, geographies, and deployment models. |
| OPI ManageGrain and BLUE | Mature in grain conditioning and monitoring. Adopting it would have introduced a parallel operating environment, leaving the client's existing RTU to operator workflow unmodernized. |
| Raven | Relevant to connected agriculture and machine and fleet operations. It sits far from the core requirement: silo telemetry, grain condition monitoring, inventory, fan control, and control room continuity. |
| GrainViz and GSI GrainVue | Impressive for advanced bin visibility. The required platform scope was wider: web, mobile, desktop, MQTT ingestion, hybrid cloud and offline support, customer facing dashboards, inventory workflows, alarm handling, and long term product extensibility. |
During early live testing, the team saw the kinds of issues that only appear when software meets industrial environments. Some facilities had unstable connectivity, so RTUs would drop offline and reconnect unpredictably. Sensor payloads did not always arrive in the expected order. In some cases, readings were incomplete, duplicated, delayed, or malformed because of temporary network interruption, power cycling, or local device behavior.
That mattered because grain monitoring depends on sequence and trust. A stale temperature reading cannot be treated like a current one. A missing humidity value should not trigger a false alarm. A delayed CO2 reading should not overwrite newer data. And a fan control command cannot be left in an uncertain state where the operator does not know whether the system accepted it, queued it, or failed to deliver it.
Clixlogix hardened the MQTT integration layer around these conditions. The backend added payload validation, timestamp based ordering, message buffering, retry logic, and reconnection behavior with exponential backoff. Sensor readings were normalized before being written into MongoDB, so dashboards, alarms, inventory views, and reports were not dependent on raw device payloads behaving perfectly.
Fan control required additional safeguards. Commands had to move from the application layer back to the field hardware with low enough latency for operators to trust remote control, and with enough confirmation logic to avoid silent failures. The team added command state tracking so the interface could distinguish between requested, delivered, acknowledged, failed, and retried actions. This prevented the platform from presenting fan automation as successful before the RTU confirmed the action.
Several edge cases shaped the final architecture: facilities reconnecting after being offline and sending a backlog of readings, duplicate telemetry after retry events, sensors reporting outside expected ranges, bins with different sensor configurations, and hybrid sites where the local desktop application had to keep operating even when cloud sync was unavailable.
Discovery showed that the client’s hardware footprint was more varied than a simple product map suggested. On paper, the platform needed to connect to the client’s RTUs, collect silo telemetry, and present that data across web, mobile, and desktop interfaces. In practice, the installed base had grown across many facilities over time, and not every site looked the same.
What arrived from the estate
What the application works with
One application level telemetry model
Sensor mix
RTU configurations varied from facility to facility. Some sites had different combinations of temperature cables, humidity sensors, CO2 detectors, weighing electronics, fill level sensors, and fan control modules.
What changed: Every MQTT message is validated and mapped into a consistent application level model before it travels further.
Firmware versions
Others were running different firmware versions, which affected how readings were published, named, or structured. Even when two sites measured the same grain condition, their payloads did not always arrive in exactly the same schema.
What changed: Mapping happens per facility at the boundary, so firmware differences stop there.
Data shape
Telemetry was high volume and append heavy, and sensor structures differed between facilities. A rigid data model would have made the first version faster. It would also have broken at the first facility with a different RTU configuration or firmware profile.
What changed: MongoDB was selected to hold varying sensor structures at volume.
Site configuration
Sites did not all have the same sensors fitted. A missing value could mean a real fault, or a sensor that was never installed, and the two cannot be treated alike.
What changed: The platform knows which sensors exist at each site and which fields are optional, which prevents false alarms, blank dashboards, and brittle reporting.
Discovery therefore shifted the project from “build a dashboard for RTU data” to “build a product layer that can absorb variation across a live hardware estate.” That decision made the system more durable as new facilities, firmware versions, sensor types, and automation workflows were added later.
Structural Diagnosis
Industrial IoT platforms are usually specified against one hardware configuration and then meet an estate that grew over a decade. Sensor mixes differ, firmware versions differ, and payload schemas drift apart site by site. The normalization boundary decides whether the twentieth facility costs the same to onboard as the second.
Several decisions made during discovery and early delivery were structural. Each shaped the platform’s data model, deployment model, or application architecture in ways that would have been expensive to reverse. The normalization boundary described above was one of them.
Sensor configurations varied across the installed base. Some facilities had six sensor cables per silo, others had twenty. Some measured CO2, others did not. Some used load cells, others radar. A rigid relational schema would have forced either a sparse lowest common denominator model or repeated migrations for every new sensor type or facility configuration. MongoDB’s own data modeling documentation states that documents within a single collection are not required to have the same set of fields, and that a field’s data type can differ between documents. That property absorbed site level variation at the data layer and exposed a consistent operational model to the application.
The desktop application was the control room surface for facilities that depended on local monitoring and, in some cases, local only operation. A browser based progressive web app would have made the offline and control room experience brittle. The legacy workflow required local data persistence, file system access, boot on startup behavior, system tray presence, and always on background monitoring. System tray presence and run minimized behavior were still being discussed at W3C TPAC in September 2024 as capabilities to add to progressive web apps. Electron preserved the native control room feel while making the product cross platform.
The mobile app’s scope was monitoring, alerts, charts, structured tables, facility switching, and PDF reports. No Bluetooth sensor pairing, camera scanning, or AR overlays. A single Flutter codebase shipped both platforms together within the delivery timeline without maintaining two separate native applications. For a field monitoring and notification app, the tradeoff favored speed, consistency, and maintainability.
The client’s firmware already published telemetry on a topic hierarchy organised around facility, silo, and sensor type. The platform was built to preserve that structure and subscribe selectively along it, following the topic level separator and wildcard rules set out in section 4.7.1 of the OASIS MQTT specification. A flat topic structure would have forced every dashboard, mobile view, and backend worker to receive and filter telemetry from all facilities. Keeping the hierarchy reduced bandwidth, lowered processing overhead, and made selective subscriptions possible.
A cloud only architecture was ruled out early. Many silo facilities operate in rural environments with intermittent or absent connectivity. The Electron desktop app functioned as a local monitoring and control station, storing telemetry and operational events until connectivity returned, then synchronizing the missing timeline back to the cloud. This decision shaped backend services, sync behavior, deployment model, event ordering, and user experience.
The platform changed how eight different roles and workflows run. Each pair below is the same job, before the platform and after it.
The plant operator starts the morning in the control room, checks the legacy desktop screen for overnight readings, walks the facility to physically inspect silos that showed anything unusual, calls the maintenance team if a fan needs attention, and logs readings manually into a spreadsheet for the weekly report to management.
The operator gets a push notification at 6am that Silo 4 had a humidity spike overnight. By the time they arrive at the facility, they have already checked the trend chart on their phone, confirmed the automated fan response kicked in, and verified the readings stabilized. The walk through is targeted instead of routine. The weekly report generates itself as a PDF.
The regional manager oversees three facilities across different locations. Getting a read on conditions requires calling each site's control room operator, asking them to read numbers off their local desktop screen, and compiling those into a single view manually. A spoilage event at one site is not visible to the manager until someone calls.
The manager opens the web dashboard over coffee and sees all three facilities on one screen. A red indicator on one site means a sensor threshold was breached overnight. They drill into that facility, check which silo triggered the alarm, see the automated fan response in the event log, and decide no intervention is needed. The entire check takes four minutes instead of three phone calls.
The commodity trader or commercial manager who needs to know current inventory levels across facilities asks the operations team, who ask the site operators, who check their local desktop or walk the facility to estimate fill levels. Inventory numbers are always 24 to 48 hours stale. Selling decisions are made on approximations.
The commercial manager opens the web dashboard and sees real time fill levels across every silo in every facility. Inventory is accurate to the most recent radar and load cell reading. They can commit to a sale knowing exactly what is available and where. Truck filling station data flows directly into the inventory view, so outbound shipments update automatically.
Maintenance teams were pulled in reactively. If a fan failed, a threshold stayed high, or a sensor looked wrong, the issue usually reached them through a phone call from the control room. They had limited context: which silo, which sensor, what changed, whether the fan had already run, and whether the condition was stabilizing.
Alarm events, fan actions, and sensor trends are visible in one event history. Maintenance can see whether the problem is environmental, mechanical, or sensor related before visiting the site. Instead of “go check Silo 4,” the work order starts with context: humidity spike, fan command sent, fan response delayed, readings stabilized or still rising.
A facility with poor connectivity was treated as a blind spot. If the site dropped offline, remote teams had to wait for a call, a manual export, or the next successful sync to know what happened.
The local desktop application continues to support control room operations even when cloud connectivity is unavailable. When the site reconnects, buffered readings sync back to the cloud. Operators keep working locally, while managers regain the missing timeline once the connection returns.
Fan operation depended heavily on operator judgment and routine schedules. Fans could run longer than needed, or operators had to remember to start and stop aeration based on changing temperature and humidity conditions.
Fan control is tied to live grain and environmental readings. Operators can allow automated aeration cycles based on target ranges, then review the event log to see exactly when fans ran and why. That makes energy use easier to control and easier to explain.
Weekly or monthly reporting required manual consolidation: local readings, spreadsheet cleanup, alarm notes, inventory snapshots, and operator comments.
Reports can be generated from the same data layer that powers dashboards and alerts. Temperature history, humidity trends, alarm events, inventory levels, and exported PDFs come from normalized telemetry rather than manually copied readings.
Supporting a new facility meant dealing with site specific hardware quirks manually: different RTU configurations, firmware versions, sensor combinations, and local setup details.
The platform has a configuration aware integration layer. New sites can be mapped into the system without rewriting the application for every facility. That matters commercially because the client can onboard more installations while preserving one core product experience.
Alongside farm and industrial storage sites, the platform serves grain elevators and terminals, which is where it operates as grain elevator software. Scale ticketing was part of the delivered scope. Grain elevator inventory management runs through the same inventory module, which also supports truck filling station management and batch weighing workflows across all connected silos.
Measured over the first 12 months.

Estimated 15–20% annual reduction in grain spoilage losses

Up to 30% reduction compared to traditional on premise monitoring

Web, desktop, and mobile apps serving 300+ silo installations worldwide

MVP delivered and validated within 8 weeks; full platform live in under 3 months

Single interface managing temperature, humidity, CO₂, and inventory across distributed facilities
Sector Perspective
Safe grain storage is a temperature and moisture problem before it is a software problem. FAO guidance puts the target at reducing grain temperature below 15°C as soon as possible, notes that temperature sensors are convenient to monitor and check the temperature in the bulk, and recommends humidity controllers interlocked with the fan controls. The mechanism this platform automates is long established practice. Running it consistently across an estate where no two facilities were wired the same is the part that needed engineering.
Clixlogix continues to work with the client on the next generation of their grain management platform. Current development areas include integration of 3D visualization platforms for granary management, providing spatial grain condition mapping that goes beyond flat sensor arrays.
The team is also building cloud based software solutions to support the client’s expansion into new geographic markets, AI powered predictive analytics for grain quality maintenance that will use historical telemetry patterns to forecast spoilage risk before sensor thresholds are breached, and sustainable storage technologies focused on reducing energy consumption in automated ventilation systems.
Our team can share client references, scope your project, and answer any question about your delivery.
More engagements where our delivery teams shipped similar outcomes for clients across industries. Read on for context on the patterns we reused, the trade offs we navigated, and the metrics that landed in production.