scadable init
Create a new Scadable project.
scadable init <target> <name>| Argument | Required | Notes |
|---|---|---|
target | yes | One of linux, esp32, rtos |
name | yes | Project directory name (also used as the package name) |
Example
scadable init linux my-factory
cd my-factoryThis creates the project at ./my-factory/ with the standard layout:
my-factory/
├── scadable.toml # project manifest
├── fleet.toml # gateway to devices/controllers mapping
├── storage.py # local storage config sized for the target
├── routes.py # cloud upload + notification routes
├── devices/ # empty, ready for scadable add device
├── controllers/ # empty, ready for scadable add controller
└── models/ # empty, ready for scadable add modelSee Project Layout for what each file does.
Picking a target
The target shapes a few defaults (storage size, supported protocols) and is recorded in scadable.toml so later commands know what to compile for.
| Target | What it sets up | Status |
|---|---|---|
linux | Raspberry Pi, industrial Linux, x86 servers | Production |
esp32 | ESP32 microcontrollers | Preview |
rtos | Cortex-M class boards on Zephyr or FreeRTOS | Preview |
You can switch targets later by editing scadable.toml or by passing --target to scadable verify and scadable compile.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Project created |
| 1 | Directory <name> already exists, or invalid target |
Next steps
- scadable add device: add your first device
- scadable add controller: add your first controller
- scadable verify: validate the project
Updated 4 days ago
