| ← Settings | Manual |
The Custom Devices section (also called the Factory) lets administrators create virtual device types by binding IO board input/output channels to a named device template. Once created, a custom device appears in the device list and can be used in automation rules and access paths.
┌───────────────────────┬───────────────────────────────────────────┐
│ Custom Devices panel │ Template Binding Editor (main area) │
│ [+ Create] │ │
│ ─────────────────── │ IO Board List | Template Slots │
│ Device A │ (left) | (right) │
│ Device B │ │
└───────────────────────┴───────────────────────────────────────────┘
Select a device from the side panel to open its binding editor. The editor shows two columns:
| Column | Purpose |
|---|---|
| IO Board List | All IO board devices with their input/output channels |
| Template Binding Editor | The selected device template’s named input and output slots |
Clicking + opens a dialog with:
| Field | Description |
|---|---|
| Display Name | Required |
| Template | Select a device template |
Saving creates the device and opens its binding editor.
Shows all current channel-to-slot bindings (read-only).
Requires factory:update. Enables drag-and-drop:
| Operation | How |
|---|---|
| Bind an input channel | Drag an IO board input → drop onto a template input slot |
| Bind an output channel | Drag an IO board output → drop onto a template output slot |
| Remove a binding | Click × on a filled slot |
| Toggle invert (input/output) | Toggle the invert switch on a bound slot |
Input channels can only bind to input slots; output channels can only bind to output slots.
Changes are saved only when the Save button is clicked. Discarding unsaved changes requires confirmation.
| Control | Description |
|---|---|
| Undo / Redo | Step through binding changes |
| Save | Persists all binding changes to the API |
| Discard | Abandons unsaved changes (with confirmation) |
| Rename | Opens rename dialog (factory:update) |
| Delete | Opens delete confirmation (factory:delete) |
| Action | Permission |
|---|---|
| View custom devices | /settings/factory route |
| Create custom device | factory:create |
| Edit bindings / rename | factory:update |
| Delete device | factory:delete |