Flipper edge reader
The Flipper connector reads a handheld field reader: a Flipper Zero that an operator carries on a yard walk, a dock inspection or a cold-store sweep. It covers the places fixed telemetry does not reach, such as a third-party crossdock, a trailer from a carrier who shares no feed, or an uninstrumented freezer room.
Readings from a handheld are sparse and hand-initiated. A gap between two readings means nobody was standing there, not that a feed dropped. FACE states a cadence only when a sweep was configured with one.
How it connects
FACE does not talk to the device directly. It makes HTTP requests to the edge
device agent (flipperd), which runs next to the Flipper and owns its serial or
USB link. Replugs, flat batteries and reboots are handled locally by the agent.
| Type spellings | flipper, flipperzero, handheld, fieldreader (the “Field Reader” card) |
| Settings (properties) | agent_url (also endpoint, url, base_url, host): the agent’s http(s) address. http:// is assumed when no scheme is given. |
| Sweep context (properties, passed to the agent) | reader_id (device_id, reader), location (site), reference (shipment_reference), carrier, threshold_source, threshold_min, threshold_max, max_excursion_minutes |
| Credential | token (also api_key, agent_token), sent as Authorization: Bearer |
| Internal addresses | Allowed by default (the agent is usually on a local network) |
Behaviour
- Test calls the agent’s
/healthzand succeeds only when the agent reports a connected device. Otherwise the message says which layer failed: the agent is running with no device, or the link is open but the device does not answer RPC. - Execute calls
/readingswith the sweep context. It returnsSensorReadingrows exactly as the agent reported them. Responses are capped at 1 MiB. An agent answer withsuccess: falseis passed through as a failure. - Explore reads the agent’s
/capabilitiescatalogue.
What it will not fabricate
A Flipper Zero has no cargo thermometer. Its only onboard temperature is the
battery fuel gauge inside its own case. The agent reports that value as
reader_enclosure_temperature, and FACE never renames, rescales or reinterprets a
metric. A reading that measures the reader keeps saying so. Thresholds and their
*_stated flags are copied verbatim from what the operator stated for the sweep.