Preset properties
| Property | Type | Description |
|---|---|---|
weight | number | Priority ordering. Presets with a lower weight are applied first. |
precondition | string | JSON filter expression (MongoDB-style) to match devices. |
configurations | array | Array of configuration entries to apply. |
schedule | string | Cron expression for scheduled execution. |
events | object | TR-069 event triggers (e.g., "1 BOOT", "0 BOOTSTRAP"). |
Precondition
Theprecondition property is a JSON string that specifies which devices the preset applies to. It uses MongoDB query syntax.
$gt, $lt, $gte, $lte, $ne
Configurations
Theconfigurations array defines what changes are applied to matched devices. Each entry has a type field that determines its behavior.
value — set a parameter value
value — set a parameter value
delete_object — delete an object instance
delete_object — delete an object instance
add_object — add an object instance
add_object — add an object instance
provision — trigger a named provision script
provision — trigger a named provision script
name field. The provision named "YourProvisionName" must exist in the database.Example: 5-minute inform interval for tagged devices
The following preset sets a 5-minute periodic inform interval for all devices tagged"test".
How presets are evaluated
During each CWMP session, GenieACS evaluates all presets against the device. Matching presets have their configurations applied in ascendingweight order. Provision scripts are executed in the same order.
After applying configurations, if the device data has changed (e.g., new parameter values were fetched), the preset evaluation loop runs again. This repeats for up to 4 cycles to allow dependent configurations to settle.
If presets create a configuration conflict (for example, two presets
continuously setting the same parameter to different values), the 4-cycle
limit prevents an infinite loop. The resulting fault is recorded in the
faults collection. See Fault Management.Managing presets
Via the UI
Navigate to Admin → Presets to create, edit, and delete presets through the web interface.
Via the API
Use
PUT /presets/<name> to create or update a preset, and DELETE /presets/<name> to remove one. See the API reference.