Configure your first device with BB-Eco
This guide takes you from a discovered device to a configuration you can read, change, save as a file, and push to another device — the foundation of config as code with BB-Eco.
Before you start
- BB-Eco is installed and has discovered at least one device.
- The device is online in the dashboard.
Read a device's configuration
Click the device card to open its detail panel. The Info tab shows the device's identity, network settings, and configuration status in one place:

The same view from the CLI is one command, using the same keys you'll meet later in template files:
bb-eco config 192.168.0.63
identity.mac : 00:0A:4F:06:4A:EE
identity.model : ED-549
identity.firmwareVersion : 8.25
network.dhcp : false
network.gateway : 192.168.0.254
device.name : ED-549
device.location : jim
io.protocol : ASCII
...
Change a setting
For a one-off change, two routes:
- Desktop app — the Web Config tab renders the device's own embedded web UI inline, so anything the device can configure, you can change without leaving BB-Eco.
- CLI — write any key the read view displays:
bb-eco config 192.168.0.63 device.location Panel-A
Set 'device.location' = 'Panel-A' on 192.168.0.63.
Device name, location, and IO line names are limited to 10 characters by the device firmware. BB-Eco rejects longer values before they reach the device.
Save the configuration as a template
A template is a JSON file holding a device's configurable settings. On the Info tab, scroll to Configuration Status and click Download Template — BB-Eco saves the device's current configuration as a .json file. The CLI equivalent:
bb-eco template export 192.168.0.63 ed-549-baseline.json
Template exported to ed-549-baseline.json
Commit that file to Git. It is now the documented, reviewable record of how this device is configured — and the input for drift detection.
Passwords and security settings are excluded from exports unless you explicitly opt in — see the template export reference.
Make the template reusable
An exported template describes one device. To turn it into a standard for many:
- Delete the
identitysection — it's a read-only snapshot of the source device and is never applied. - Set anything you don't want to manage to
null— anullfield or missing section means don't touch, so the template only governs what you care about. - Leave
staticIpasnull— IPs are device-specific.
Every available key, its factory default, and the range the firmware accepts is documented in the downloadable reference templates:
Check your edited template before using it — validation is offline and CI-friendly:
bb-eco template validate ed-549-baseline.json
Family: ED
Model: ED-549
Template is valid.
Apply the template to a device
In the app: Info tab → Apply Template → choose the file. A preview lists every change before anything is written to the device.
From the CLI, preview first with --dry-run, then apply:
bb-eco template apply 192.168.0.91 ed-549-baseline.json --dry-run
bb-eco template apply 192.168.0.91 ed-549-baseline.json
Templates are family-locked — an ED template refuses to apply to an ES device — and network settings are written last so an IP change can't strand the rest of the apply. The full section-by-section behaviour is in the template format reference.
To push one template across many devices, loop the CLI over your device list — the pattern (and its drift-audit counterpart) is in Detect configuration drift across your fleet.
Next step
Your template is now the single source of truth for this device. Next, let BB-Eco tell you when reality diverges from it.
More resources
- Configuration as code with BB-Eco — why templates + Git beat per-device web UIs
- BB-Eco template JSON format — every field, type, and range
bb-eco templateCLI reference — export, validate, diff, and apply with real outputbb-eco configCLI reference — read and write single settings