A box profile is one JSON file in shared/edge-boxes/, named after the box
(i69-mu1.json). It is the only place an edge node’s identity is written down.
shared/render-edge-config.py turns it into everything else the box needs:
Without --output-dir, the renderer writes into the repository instead
(shared/ and rust-ljm/), overwriting whichever box was rendered last. Always
pass --output-dir. The installer does.
The renderer stops with an error naming the field if a required field is
missing or empty.
Name of the LabJack. Usually the same as source.id.
asset_number
yes
Unique integer shown in the webapp and used in archive paths.
max_channels
yes
Analog inputs the webapp offers, 14 for a T7.
ip
yes
The LabJack’s reserved IPv4 address.
serial
yes
The LabJack’s serial number. The streamer refuses a different device.
rotate_secs
yes
Archive file window in seconds, normally 300.
sensor_settings
yes
Initial recording settings. scans_per_read and scan_rate_hz are required and channels_enabled must not be empty. The whole object is copied into the LabJack configuration.
Written to the environment but effectively unused: the streamer opens the LabJack by ip, and falls back to identifier only when no IP is set, which the renderer does not allow.
sensor_settings in the profile only seeds the configuration. Once the box is
running, the copy in the key-value bucket is what counts, and edits belong
there.