A toolkit for configuring and managing WLED controllers from scratch, including network setup, configuration deployment, and preset management.
- Install Python dependencies:
pip install -r requirements.txt- Ensure your WLED controllers are either:
- In AP mode (broadcasting
WLED-APnetwork) - Already connected to your network and discoverable via mDNS
- In AP mode (broadcasting
Configure a fresh WLED controller with network settings and device name:
python wled-config.py --set-use-dhcp --set-ssid <WIFI_SSID> --set-password <WIFI_PASSWORD> --set-name <DEVICE_NAME> --discoverAvailable Configuration Options:
--set-ssid: WiFi network SSID for the WLED device--set-password: WiFi network password--set-use-dhcp: Enable DHCP (automatic IP assignment)--set-ip-address: Static IP address (alternative to DHCP)--set-subnet-mask: Subnet mask for static IP--set-gateway: Gateway address for static IP--set-name: Device name and mDNS hostname--discover: Use network discovery instead of AP mode connection--wled-ap-ssid: Override default WLED AP name (default: "WLED-AP")--wled-ap-password: Override default WLED AP password (default: "wled1234")
After initial setup, deploy full device configurations:
python push-config.py --config-file final-config.json --discoverOr target specific IP addresses:
python push-config.py --config-file final-config.json --target-ip 10.201.12.11,10.201.12.12Deploy lighting presets to your configured controllers:
python push-presets.py --preset-file presets-collect.json --discoverOr for specific devices:
python push-presets.py --preset-file presets-collect.json --target-ip 10.201.12.11,10.201.12.12The project includes several preset collections for different scenarios:
| Preset File | Description | Use Case |
|---|---|---|
presets-collect.json |
Collection effects | Standard lighting presets for collect |
presets-collect-dim.json |
Dimmed collection effects | Low-light environments |
presets-collect-green.json |
Green debug effects | Testing the deployment |
presets-stations.json |
Station-specific presets | Presets for stations |
presets-stations-dim.json |
Dimmed station presets | Low-light presets for stations |
presets-117.json |
Device-specific (WLED-117) | Individual device config |
presets-259-fire.json |
Fire effects for WLED-259 | Specialized fire preset |
Quick deployment scripts are provided for common operations:
# Deploy collect presets to multiple controllers
./push-preset-collect.sh
# Deploy station presets
./push-preset-stations.sh
# Deploy dimmed versions
./push-preset-collect-dim.sh
# Deploy green-themed presets
./push-preset-collect-green.sh# Deploy collect presets
push-preset-collect.bat
# Deploy station presets
push-preset-stations.bat
# Deploy configuration
push-config.batFor managing multiple controllers at once:
./run_batch.shThe tools support automatic device discovery via mDNS:
# Discover all WLED devices on network
python wled-config.py --discover
# Interactive device selection
python push-presets.py --discoverThe wled.csv file contains your device inventory with IP mappings:
WLED-101 10.201.12.11/24
WLED-234 10.201.12.12/24
WLED-235 10.201.12.13/24
...
Reboot controllers after configuration changes:
python reboot.py --target-ip 10.201.12.11,10.201.12.12Or discover and reboot all:
python reboot.py --discoverContains complete WLED configuration including:
- Network settings (WiFi, IP configuration)
- Device identification (name, mDNS)
- Hardware settings
- Default lighting parameters
Preset files use WLED's JSON format:
{
"0": {}, // Empty preset (off)
"1": { // Preset ID 1
"playlist": {
"ps": [4, 3], // Preset sequence
"dur": [10, 30], // Duration per preset
"transition": [0, 20], // Transition times
"repeat": 1, // Repeat count
"end": 2, // End behavior
"r": 0 // Random
}
}
}- Verify WLED controller is powered and accessible
- Check network connectivity to device IP
- Ensure mDNS is working for discovery mode
- Try connecting directly to WLED AP mode
- Verify JSON syntax in configuration files
- Check device compatibility with configuration
- Monitor device logs for error messages
- Reboot controller after major configuration changes
# Test device connectivity
ping 10.201.12.11
# Check mDNS discovery
python -c "from wled_config import discover_wled_devices; print(discover_wled_devices())"
# Validate JSON configuration
python -m json.tool final-config.json- Create preset using WLED web interface
- Export configuration via WLED API or via the webpage under config > security & updates there is a backup presets option. It will create a file that you can then use to import them to another controller.
- Add to appropriate preset collection file
- Deploy using push-presets.py