İpragaz Telemetry Worker: Automated LPG Filling-Event Detection Service
A .NET 8 background worker service built for İpragaz, one of Turkey's largest LPG distributors, that continuously analyzes trending ADC telemetry from remote cylinder/tank metering devices to automatically detect in-progress filling events. Rather than talking to field hardware directly, the service consumes telemetry already staged by the ingestion layer, evaluates only devices with recent activity to avoid scanning dormant hardware, and flags filling state directly on the device record for downstream reporting and alerting.
Backend Developer — IoT Telemetry Processing
- Trend-Based Filling Detection – Designed an algorithm that flags a device as "filling in progress" when its last three ADC telemetry readings rise monotonically, avoiding the need for direct hardware polling.
- Scoped Background Processing – Implemented a BackgroundService that creates a fresh DI scope per polling cycle via IServiceScopeFactory, keeping EF Core DbContext usage safe inside a long-lived singleton host.
- Resilient Polling Loop – Wrapped each cycle in try/catch with structured logging so a single failed sweep never brings down the worker host.
- Time-Windowed Device Filtering – Limited evaluation to devices with telemetry from the last 7 days, keeping the sweep fast as the device fleet grows.
Features
- Automated LPG cylinder/tank filling-event detection from trending sensor data
- Layered (Domain/Infrastructure/Application) worker service structure
- Scoped-per-cycle EF Core access pattern for safe DbContext lifetime management
- Time-windowed device filtering to skip dormant hardware
- Self-healing polling loop with structured error logging
Technologies
- .NET 8 Worker Service
- C#
- Entity Framework Core 8
- IHostedService / BackgroundService
- Scoped DI per polling cycle