BoxViewer for openSenseMap

BoxViewer is a modern, fully-featured, open-source Android app for openSenseMap — a global open-data platform for environmental sensor networks and DIY weather stations (senseBoxes). Crafted with Kotlin and Jetpack Compose following Material Design 3 guidelines, BoxViewer enables environmentalists, hobbyists, and researchers to locate nearby sensor stations, monitor micro-climate telemetry streams in real time, and configure home-screen widgets for instant, glanceable observation.

Key Features

Everything you need to monitor environmental sensor data from openSenseMap.

📊
Live Interactive Dashboard
Favorite and save specific environmental stations. Customize exactly which sensor metrics (Temperature, Humidity, UV, PM2.5, Barometric Pressure, etc.) you want to track at a glance.
📱
Glanceable Home Widgets
Customize home screen widgets featuring Material Design 3 theme colors to monitor your favorite senseBox metrics. Supports per-widget text & icon scaling up to 200%, toggling detail styles (Full Details, Value & Unit, Value Only), conditional formatting, AQI display modes, and direct home-screen reconfiguration on Android 12+.
🌬
️ Air Quality Index Engine
Six international AQI standards (US EPA, UK DAQI, EU EAQI, Canada AQHI, India, China) with a virtual synthesized sensor and 12-hour NowCast averaging computed locally from cached openSenseMap data.
📈
Rich Telemetry Analysis
Deep telemetry streams visualization including units, last updated timestamps, coordinates, station type, and exposure type (indoor vs. outdoor).
🔍
Smart Discovery Engine
Locate public senseBoxes from the openSenseMap community using direct search by name/ID, location address auto-complete, or on-demand GPS discovery.
🌡
️ Local Unit Conversion
Per-sensor unit switching for temperature (°C/°F/K), pressure (hPa/mbar/Pa/inHg/mmHg), and wind (m/s/km/h/mph/kn) performed entirely on-device.
🌐
Multi-Language Support
BoxViewer supports 8 languages (English, German, Czech, Spanish, French, Hungarian, Italian, Dutch, Polish) with POEditor translation integration.
🔗
Quick Sharing & Deep Linking
Generate local QR codes to share senseBox stations. Recipients scan the code or open a sharing web link to view the station directly inside the BoxViewer app.
🔋
Battery & API-Friendly
Seamless local SQLite caching (SensorCacheEntity) and awake-on-unlock widget refresh logic ensure you get fresh data without draining your battery or hammering openSenseMap servers.
🛡
️ Privacy-First & De-Googled Friendly
100% free of Google Play Services (GMS) dependencies in the app code. Core functionality relies on the native Android LocationManager and direct openSenseMap APIs. Address search and location labels may use the device’s native geocoder (ROM-dependent backend) or an OpenStreetMap-based fallback; see the Privacy Policy for details. Zero telemetry, analytics, or third-party trackers.
🛠
️ Local API Debug Logging
Opt-in to capture raw API requests, responses, and Moshi parsing results in a JSON Lines (.jsonl) file stored locally. Copy or share logs via native sheets to diagnose errors easily.
🔤
App-Wide Text Scaling
A dedicated Settings slider lets you scale text throughout the UI (60%–200%) independently of the system font size, making BoxViewer comfortable on tablets, foldables, and Android Automotive displays.

📥 Download & Install

Compatible with Android 7.0 (API 24) and above.

Get it on Google Play

Google Play Store

Official Release — Download stable production releases directly from the Google Play Store.

Open Testing (Beta) — Opt-in on Google Play to test upcoming pre-release builds ahead of general release.

Get it on GitHub

GitHub Releases

Download APK packages directly from the GitHub Releases page.

Pre-Releases — Early test builds published in parallel with the Google Play Open Testing track.

Get it on Obtainium

Obtainium

Tap the button to add BoxViewer directly to your existing Obtainium installation — it opens the Add App screen pre-filled and ready to confirm.

Don't have Obtainium yet? Download it first from obtainium.imranr.dev. Once added, Obtainium tracks GitHub releases automatically (including pre-releases if enabled).

🍃 Air Quality Index Engine

Six international standards, computed entirely on your device.

🇺🇸US EPA 🇬🇧UK DAQI 🇪🇺EU EAQI 🇨🇦Canada AQHI 🇮🇳India AQI 🇨🇳China AQI

⚡ InstantCast

The live value shown on dashboard cards and home screen widgets: the current concentration converted directly to the selected AQI standard in real time.

📊 NowCast (12-hour)

Expand any sensor card to see the official EPA NowCast — a weighted 12-hour rolling average that smooths short-term spikes for a more accurate picture of air quality.

🌍 Open Data & Attribution

BoxViewer is built on open platforms and open data.

📡 openSenseMap

Operated by openSenseLab gGmbH (Münster, Germany). An open-source platform for collecting and sharing environmental sensor data worldwide.

opensensemap.org · Support via Betterplace

📍 Photon Geocoder

OpenStreetMap-powered search and reverse-geocoding, operated by komoot GmbH (Berlin, Germany). Used as the primary geocoding fallback.

photon.komoot.io

🗺️ Nominatim / OpenStreetMap

Open-source geocoding engine operated by the OpenStreetMap Foundation. Used as secondary geocoding fallback. Data © OpenStreetMap contributors.

nominatim.org · ODbL License

🤝 Get Involved

🌐 Help Translate

Help make BoxViewer accessible to everyone! We collaboratively translate the app using POEditor. You can submit translations, corrections, or suggest new languages:

EN DE CS ES FR HU IT NL PL
Help Translate on POEditor

☕ Support the Developer

BoxViewer is developed with love as an open-source project. If you find it useful, please consider supporting its ongoing development:

🐛 Bug Reports & Feature Requests

Found a bug or have an idea for a new feature? Head over to the GitHub Issues tracker — search existing issues first, then open a new one with as much detail as possible.