Edge software, mobile app, and cloud dashboard — designed and maintained by ZoneX.
ZoneX Cloud is the central control point for all your RFID-tracked assets. Access it from any browser, on any device.
Operations
Live view
Interactive D3 tree of zones, asset types, alerts, and RFID doors. Auto-refresh every 5 seconds. Filterable by watch list (focus list). Navigate directly to asset lists or alerts from any node.
Alerts
Three alert streams — asset alerts, equipment alerts, truck alerts — each with filtering, status tracking, and comments. Configurable rules engine (conditions, attachments, types) drives all alert triggers.
Fleet
Live truck positions via MQTT, GPS zones, asset classification per vehicle, detailed popup (reader, heartbeat, categories). Trip history with asset manifests per journey.
Overview
Location-tree navigation across all zones. Grid view per zone with asset summary, search, and detail panel. Periodic polling keeps counts current without a full page reload.
Tracking
Searchable passage audit by door, reader, or focus list. Asset movement timeline. RFID trigger cycle analysis. Watch-list (focus list) stored per browser session for fast repeatable queries.
Analytics
Product statistics, zone coverage, category distribution, and foreign-object detection (tags detected but not registered to the company). Summary widgets and distribution charts.
Management
Infrastructure
Full CRUD for readers, antennas, zones, doors. Reader detail: live heartbeat, temperature, CPU/RAM metrics, antenna return-loss curves. Remote commands: start/stop RFID, reboot, antenna power, ping, SMS.
Objects
Register, edit, and track every tagged asset. Full lifecycle view and movement history per object. Category/type hierarchy. Foreign-element detection for unregistered tags detected in the field.
Inventory
Schedule inventory campaigns. Run adjustments in three modes: mobile (handheld), desktop (browser), or MQTT (live fixed reader). Reporting module for completed sessions with export.
Team
User CRUD, role assignment, and per-module page visibility control. Full user action log for compliance and troubleshooting. Company, licence, and licence history management.
POS
Full RFID-driven POS module. Choose reader and antennas, open a session, scan items over MQTT, group by product type and price, process payment, view order history.
Monitoring
API performance metrics from frontend interceptor and backend. Multi-tenant health dashboard (SAC): per-company health score, risk filters, licence status, dependency graph.
Technical Stack
| Frontend | React, Vite, MUI, Redux, React Router |
| Backend | Django, Django REST Framework, JWT (Djoser + Simple JWT) |
| Real-time | MQTT broker — topics per reader serial and company ID |
| Mapping | Leaflet / Mapbox for GPS zone views and truck tracking |
| Authentication | JWT — browser session, no VPN, multi-company scoping |
| Database | MySQL — fully relational, per-company row-level isolation |
| Hosting | cloud.zonex-rfid.com (VPS, continuous uptime) |
| Timezone | Configurable display timezone (default Africa/Tunis) |
WatchReader is ZoneX Edge software running on Hopeland HH340 fixed readers. It scans continuously, evaluates tags against cloud-configured rules, triggers physical outputs, and streams telemetry — all without operator interaction, from device power-on.
Alarm Engine
Rules and watched assets are managed on ZoneX Cloud and synchronized to the device automatically. Each tag carries a list of prohibited zones; violation triggers a full lifecycle from NEW through EXPIRED.
| State | Condition | Action |
|---|---|---|
| NEW | EPC detected in prohibited zone for the first time | GPIO trigger + 3 MQTT publishes |
| UPDATE | Same EPC still present | Lightweight MQTT heartbeat |
| DEBOUNCE | EPC reappears within 20 s of clearing | Treated as continuation — count preserved |
| EXPIRED | EPC absent for > 20 s | Alarm cleared — grouped summary updated |
| Topic | When |
|---|---|
watchreader/status/{serial} | Birth / LWT (retained) |
watchreader/heartbeat/{serial} | Every ~15 s — uptime, company |
watchreader/telemetry/{serial} | Every ~60 s — CPU, RAM, temperature |
watchreader/rl/{serial} | Periodic — antenna return-loss (dB) |
alertbyreader/{serial} | Per alarm event — single-alarm update |
alert/{company_id} | New alarm — full detail (retained) |
alert_grouped/{company_id} | Any alarm change — full active aggregate |
Key Features
Android foreground service with CPU wake lock, Doze exemption, and BOOT_COMPLETED auto-start. The RFID scan is fully independent of the UI — closing the app has no effect.
CPU, RAM, disk, and all sysfs thermal zones captured every 60 s. MT6765 kernel-panic sentinel detection publishes a warning before a crash occurs — enabling proactive remote restart.
Periodic measurement of antenna return-loss on all active ports. Threshold alert published when a cable or antenna fault is detected — before performance degrades.
All parameters — heartbeat interval, drain window, antenna power, GPIO timers, return-loss settings — can be pushed via MQTT command. No physical access required.
GPIO3 (warning) and GPIO4 (alarm) independently configurable: single-pulse, continuous, or pulsed-repeat wiring modes. Timers: 1–30 s each. Fires immediately on new alarm detection.
Bash ADB script deploys to all devices in parallel via SSH reverse tunnels. Uninstalls legacy version, installs APK, grants Doze exemption, launches boot-receiver, reboots. Pass/fail per device.
COMPANION APP
Windows workstation application that receives RFID intrusion alerts from ZoneX Cloud via MQTT and immediately notifies on-site security through visual and audible signals. Runs silently in the background; rises to the foreground automatically on each new alert.
STATUS INDICATORS
| Transport | MQTT / TCP port 1883, QoS 1 |
| Hardware | Arduino Nano + MAX7219 8×8 LED matrix, 9600 baud |
| OS | Windows 10 / 11 (64-bit), no admin rights required |
| Multi-tenancy | Per-company topic scoping — no cross-tenant visibility |
Technical Specifications — WatchReader
| Platform | Android 8.0+ (minSdk 26), targetSdk 34 |
| Hardware | Hopeland HH340 (MT6765 SoC) |
| RFID standard | UHF EPC Gen2 (ISO 18000-6C) |
| Antenna ports | Up to 4 simultaneous |
| Reader interface | Hopeland SDK — TCP 127.0.0.1:9090, 20 s hang timeout |
| Alarm refresh | Every 10 minutes from ZoneX Cloud API |
| Heartbeat | Every ~15 seconds |
| Telemetry | Every ~60 seconds |
ZoneX Mobile runs on the Chainway C5 UHF RFID handheld. It covers the full field-operations lifecycle: enrolment, inventory, transfer, repair, and asset search — with full offline support and cloud sync on reconnect.
Application Modules
Compatible Hardware
| Device | Chainway C5 — Android 11+, UHF Gen 2, IP65, 8 h+ battery |
| RFID | Simultaneous EPC + TID — ISO 18000-6C / EPC Gen2 |
| Trigger | Physical hardware button (keyCode 293) — no on-screen tap needed |
| Cloud | REST API + JWT auth — zonex-rfid.com (Django + MySQL + MQTT) |
| Offline | Local SQLite cache — reads queue and sync on reconnect |
Anti-Theft Integration