RFID Management¶
Module: RFID Management | Audience: Admin
Table of Contents¶
- Overview
- RFID Readers
- Creating a Reader
- Reader Detail
- Reader Types and What They Drive
- Vehicle Management
- How RFID Scan Processing Works
- Ingestion Pipeline
- Reader Heartbeat
- Scan De-Duplication
- EPC Matching
- Gate Scan Matching and Movement Sessions
- Warehouse Readers and Location Tracking
- RFID-Driven Notifications
- Master Data Used by This Module
Overview¶
AMS integrates with RFID infrastructure to automate asset and vehicle tracking. Physical readers publish tag reads over MQTT; AMS turns those reads into RFID Transactions, matches them against known assets or vehicles, and — for readers positioned at a gate (an entry or exit point) — uses them to automatically advance the status of an in-flight Asset Transfer or Activity without anyone having to manually check a box.
The module itself manages two things directly: Readers (the physical devices) and Vehicles (RFID-tagged transport units). Everything else described below — scan ingestion, de-duplication, EPC matching, and gate-scan-driven movement tracking — is automated processing that runs on top of that data; there is no separate configuration screen for it.
Access Requirement: Admin role required for reader and vehicle management.
RFID Readers¶
Path: Sidebar → RFID Management → RFID Readers | URL: /rfid/readers
Creating a Reader¶
Path: RFID Readers → + Create | URL: /rfid/readers/create
| Field | Type | Required | Validation | Depends On |
|---|---|---|---|---|
| Reader Name | Text | Yes | Unique | — |
| Device ID | Text | Yes | Unique; the identifier the physical reader authenticates and publishes with | — |
| Description | Text Area | No | — | — |
| Location | Tree Select | Yes | Where the reader is physically installed | Locations |
| Reader Type | Dropdown | Yes | One of: Entry, Exit, Warehouse, Handheld, Other — see Reader Types and What They Drive | — |
| Scan Interval (sec) | Number | No | Non-negative integer; Default: 5 | — |
| Debounce Time (sec) | Number | No | Non-negative integer; Default: 2. Also sets the scan de-duplication window for this reader | — |
| Threshold Time (sec) | Number | No | Non-negative integer; Default: 10. For Warehouse readers, this also controls how often the reader re-syncs asset locations — see Warehouse Readers | — |
Note: Earlier releases exposed additional reader fields (IP Address, Port, MAC Address, Firmware Version, Model Number, Manufacturer, per-reader auth key generation, and a standalone "Reader Types" master list with its own CRUD screen and an "Activity Logs" event history). These have been removed from the current backend and are no longer part of reader configuration — Reader Type is now a fixed dropdown, not a separate master entity.
Reader Detail¶
Path: RFID Readers → click a reader | URL: /rfid/readers/:id
| Section | Content |
|---|---|
| Reader Details | Device ID, Reader Type, Location, Description, Last Seen, Created/Updated timestamps |
| Scan Settings | Scan Interval, Debounce Time, Threshold Time |
| View Configuration | Opens the reader's MQTT connection details — publish topic, subscription topic, client ID, and keep-alive — needed to provision the physical reader device against the AMS MQTT broker |
Last Seen is the reader's only health indicator: every reader periodically publishes a heartbeat, and this timestamp reflects the last one received (see Reader Heartbeat). There is no separate online/offline flag — a Last Seen timestamp that stops advancing means the reader has gone quiet.
Reader Types and What They Drive¶
| Reader Type | Behavior |
|---|---|
| Entry | Gate reader. A matched scan here checks an asset/vehicle in — advances a Transfer from Checked Out to Checked In, or records an Activity check-in. |
| Exit | Gate reader. A matched scan here checks an asset/vehicle out — advances a Transfer from Approved to Checked Out, or records an Activity check-out. |
| Warehouse | Not a gate — periodically syncs the current location of any asset it detects. See Warehouse Readers. |
| Handheld | Used for manual/mobile scanning (e.g., during an Audit); does not drive gate matching. |
| Other | No automated behavior attached; scans are still recorded as RFID Transactions. |
Vehicle Management¶
Path: Sidebar → RFID Management → Vehicle Management | URL: /rfid/vehicles
Vehicles are RFID-tagged transport units used for asset movement tracking on Transfers and Activities.
Creating a Vehicle¶
Path: Vehicles → + Create | URL: /rfid/vehicles/create
| Field | Type | Required | Validation | Depends On |
|---|---|---|---|---|
| Name | Text | Yes | Max 100 characters | — |
| Registration Number | Text | Yes | Max 50 characters; unique | — |
| Manufacturer | Dropdown | No | — | Manufacturers |
| Model | Dropdown | No | Disabled until Manufacturer is selected; filtered by manufacturer | Models → filtered by Manufacturer |
| Description | Text Area | No | — | — |
| EPC ID | Text | No | Free text — no format is currently enforced by the system. Must match the value the vehicle's physical RFID tag actually transmits, or gate-scan matching for that vehicle won't resolve | — |
Field Dependency: The Model dropdown is disabled until a Manufacturer is selected (same pattern as asset creation).
Vehicle Availability¶
Path: Vehicle Detail → Availability
Shows whether a vehicle is currently tied to an active Transfer, so schedulers can avoid double-booking the same vehicle across two movements at once.
How RFID Scan Processing Works¶
This section explains what happens, end to end, once a reader reads a tag — useful when troubleshooting why a Transfer or Activity didn't move to the status you expected.
Ingestion Pipeline¶
Each reader publishes tag reads to a per-tenant, per-device MQTT topic (shown in its View Configuration dialog). The middleware forwards them to a per-tenant RabbitMQ queue, and the AMS backend consumes that queue and writes each read as an RFID Transaction (EPC ID, reader, scanned-at timestamp).
Reader Heartbeat¶
Readers also periodically publish a lightweight heartbeat message on the same channel. Receiving one simply updates that reader's Last Seen timestamp — it does not create an RFID Transaction or count as a tag scan.
Scan De-Duplication¶
A physical tag held near a reader is typically read many times per second. To avoid creating a flood of duplicate transactions, repeat reads of the same tag on the same reader within that reader's configured Debounce Time are collapsed into a single RFID Transaction. Increase Debounce Time on a reader if it's producing noticeably more duplicate-looking transactions than expected; decrease it if legitimate back-to-back scans of different tags feel like they're being dropped.
EPC Matching¶
Once written, an RFID Transaction's tag ID is matched:
- First against Asset.rfid_epc_id (exact, case-sensitive match) — see Asset Management for where this is set on an asset.
- If no asset matches, against Vehicle.epc_id.
If neither matches, the transaction is still stored (for traceability) but doesn't drive any automated movement tracking.
Gate Scan Matching and Movement Sessions¶
For Entry and Exit readers only, a matched scan is checked against any Transfer or Activity currently expecting a movement for that asset or vehicle:
- A matched Exit scan checks the asset/vehicle out — the Transfer/Activity's checkout step is recorded.
- A matched Entry scan checks it in, but only once an open checkout for it already exists.
- Every checked matching scan is recorded as a Movement Session — the audit trail entry showing which reader, which timestamp, and (for a real scan) which RFID Transaction produced it.
- A scan that doesn't correspond to any open Transfer/Activity claim is still recorded (as an unauthorized Movement Session) and triggers a notification to the asset's assigned user — see RFID-Driven Notifications.
- Asset-tracked Transfers require every asset in the transfer to be scanned in a given direction before the transfer's status advances; vehicle-tracked Transfers advance as soon as the vehicle itself is scanned.
This processing is safe to run across multiple backend workers at once — each scan is claimed and processed exactly once, so you won't see a single physical scan double-advance a status.
See Asset Transfer — RFID-Based Movement Tracking and Schedule & Activity Management — Movement Tracking in Activities for how this plays out from the Transfer/Activity side, including what happens when a scan never arrives.
Warehouse Readers and Location Tracking¶
A Warehouse-type reader doesn't participate in gate matching. Instead, on an interval controlled by its Threshold Time, it re-syncs the recorded location of every asset it currently detects — updating that asset's Last Scanned Location and Last Scanned At.
If an asset's Last Scanned Location ever disagrees with its assigned Location, the asset is flagged as mislocated — this is what feeds the Asset Location Mismatch Report.
RFID-Driven Notifications¶
Gate-scan activity generates in-app notifications through the standard Notification Center — there is no separate RFID notifications screen. Relevant types:
| Notification Type | Trigger |
|---|---|
| Unauthorized Asset Movement | An asset was scanned at an Entry/Exit reader with no open Transfer/Activity expecting that movement; sent to the asset's assigned user |
| Vehicle Movement Checkout | A vehicle was matched and checked out at an Exit reader |
| Vehicle Movement Checkin | A vehicle was matched and checked in at an Entry reader |
Master Data Used by This Module¶
| Master Entity | Where Used | Purpose |
|---|---|---|
| Locations | Reader location | Where the reader is installed |
| Floor Plans | Reader detection zones (configured via the Floor Plan Interactive Editor) | Visual positioning |
| Manufacturers | Vehicle manufacturer | Vehicle identification |
| Models | Vehicle model (filtered by manufacturer) | Vehicle identification |
Related: Asset Transfer · Audit Management · Floor Plan Management · Schedule & Activity Management · Reports · Notifications