Skip to content
Free shipping on orders over $2,000.

Fields, enums and error codes

Every field a device sends, every enum it uses, the server-side defaults to match, the full error code table with retry semantics, and a glossary.

7 min read

The device record

FieldValuesNotes
mac_addressAA:BB:CC:DD:EE:FFUnique. The identity
property_idintRequired
team_id / table_idintExactly one, per your placement model
user_idintOptional. Who carries it
communication_modeai · udp · websocketDefaults to websocket with a table_id, else ai
languageen · ur · ar · multimulti is code-switching
statusACTIVE · INACTIVE · BLOCKEDBLOCKED means answer 403 everywhere
is_onlineboolEvent-driven on; swept off after 60 s of silence
health_statusHEALTHY · DEGRADED · CRITICALComputed from telemetry
firmware_version / ota_version / hardware_versionstringFrom heartbeat; freeze into incidents
ip_addressstringIPv4 or IPv6

Heartbeat telemetry

All optional. Older firmware that sends none still works, so treat every field as nullable in your schema.

FieldUnit
firmware_version, ota_version, hardware_versionstring
cpu_usage_percent, memory_usage_percent0–100
temperature_celsius°C
uptime_secondsseconds
wifi_rssidBm, negative
free_storage_bytesbytes
battery_percent0–100

Full-duplex telemetry worth collecting

FieldWhy you want it
playback_buffer_high_water_msDecides whether server-side pacing is needed
playback_underrunsAudible gaps in the agent's speech
playback_overrunsBuffer too small for the burst
ws_reconnectsNetwork quality at that site
mic_mute_violationsFrames sent while the speaker was active — should always be 0
rssiCorrelates with everything above

Enums

EnumValues
Incident typesCRASH · HARDWARE_ERROR · NETWORK_ERROR · LOW_BATTERY · LOW_STORAGE · HIGH_TEMP · OTA_FAIL · UNEXPECTED_REBOOT · OFFLINE · UNKNOWN, plus firmware-defined WS_CONNECT_FAIL · AUDIO_UNDERRUN · TLS_FAIL
SeveritiesCRITICAL · HIGH · MEDIUM · LOW
Command typesREBOOT · TRIGGER_OTA · CHANGE_MODE · FACTORY_RESET · MUTE · UNMUTE · COLLECT_LOGS · PING
Command lifecyclePENDING → SENT → ACKNOWLEDGED → COMPLETED | FAILED, plus EXPIRED
OTA progressDOWNLOADING · INSTALLING · SUCCESS · FAILED · ROLLED_BACK
OTA release typesSTABLE · BETA · CRITICAL_PATCH
Property typesHOTEL · RESTAURANT · SECURITY
Communication modesai · udp · websocket
Languagesen · ur · ar · multi

Defaults to match

These are the values a factory-flashed device and the reference server agree on. If you change one on your side, you are changing a contract — check the device is provisioned to match.

SettingDefault
UDP ingest port12345
Sample rate / channels16 000 Hz / 1
UDP payload formatudp-v1
Voice gate: min RMS / attack / silence close700 / 3 chunks / 3000 ms
Pre-roll buffer / flush2.0 s / 1.0 s
Offline threshold / sweep interval60 s / 60 s
UDP presence stamp throttle180 s
Print claim timeout90 s
Print stale threshold60 s
Default printer port9100
Mic-mute tail (tail_ms)300 ms
WebSocket ping / pong deadline20 s / 10 s
Command expiry24 h

Error codes

Full-duplex handshake — the socket closes after the message

CodePermanent?Device action
unknown_deviceYesStop. Fault indicator. No retry
unknown_propertyYesStop. Provisioning fault
protocol_unsupportedYesStop. Needs an update
menu_unavailableNoRetry with backoff
busyNoRetry with backoff

HTTP

StatusMeaningDevice action
200 / 201SuccessContinue
204Nothing waiting (print queue, notifications)Normal. Poll again
400Malformed requestStop. Fix the firmware; do not retry
403Device blocked, or wrong tenantStop. Terminal
404MAC, order or command not foundStop. Provisioning fault
422Schema validation failedStop. Fix the payload
429Rate or stream limitBack off; honour Retry-After
499Client disconnected mid-uploadThe device's side dropped. Investigate
500Server errorRetry with backoff
503Capacity reachedBack off; honour Retry-After

Glossary

TermMeaning
PropertyOne physical site: a restaurant, hotel, warehouse
PlacementHow a device is attached to a site: a team, or a table
Modeai, udp or websocket — which protocol this unit speaks
SealingDeciding where one spoken utterance ends and the next begins
Pre-rollAudio buffered before the voice gate opened, so the first syllable survives
Voice gateAn RMS gate that stops silence reaching the recogniser
ClaimA device reserving a print job so no other device prints it
Draft transcriptA mid-utterance snapshot, persisted so a crash loses nothing. Not final
IncidentA device-reported fault, stamped with the firmware version at the time
udp-v1The push-to-talk wire protocol
device_sessionA random value regenerated on every boot; distinguishes a reboot from a reconnect

Something wrong or missing on this page? Tell us.