homelab-assets
# Homelab Assets Skill
Manages a local JSON inventory of homelab hardware. All data lives at `~/.openclaw/workspace/homelab-assets/inventory.json`.
## Scripts
All scripts live in `scripts/`. Run with `python3 scripts/<script>.py [args]`. Use `--help` on any script for full usage.
### add_asset.py — Add a hardware asset
```
python3 scripts/add_asset.py \
--name "Raspberry Pi 4" \
--type server \
--brand Raspberry Pi Foundation \
--model "Pi 4 Model B 8GB" \
--purchase-date 2023-06-15 \
--purchase-price 85.00 \
--warranty-months 12 \
--power-watts 8 \
--location "Rack Shelf 2" \
--serial ABC123 \
--notes "Runs Home Assistant"
```
Required: `--name`, `--type`. All others optional. UUID auto-generated.
Types: `server`, `switch`, `router`, `ups`, `drive`, `cable`, `accessory`, `other`
### update_asset.py — Update an existing asset
```
python3 scripts/update_asset.py --id <uuid> --status retired --location "Storage Box A"
python3 scripts/update_asset.py --search "Pi 4" --notes "Repurposed as DNS server" --power-watts 6
```
Target by `--id` (exact UUID) or `--search` (fuzzy name match). Updatable fields: `--status`, `--location`, `--notes`, `--power-watts`.
Statuses: `active`, `retired`, `sold`, `rma`
### inventory.py — List assets
```
python3 scripts/inventory.py
python3 scripts/inventory.py --type server --status active
python3 scripts/inventory.py --location "Rack" --warranty-expiring 90
python3 scripts/inventory.py --output json
```
Filters: `--type`, `--status`, `--location` (substring), `--warranty-expiring <days>`. Output: table (default) or `--output json`.
### report.py — Generate full asset report
```
python3 scripts/report.py
python3 scripts/report.py --kwh-rate 0.14 --output report.md
```
Produces Markdown with: total assets, total investment, estimated current value (straight-line depreciation over 5 years), total power draw, monthly power cost estimate, warranty alerts (expiring within 90 days), assets by type, assets by location. Configurable `--kwh-rate` (default: 0.12).
### search.py — Fuzzy search across all fields
```
python3 scripts/search.py "raspberry"
python3 scripts/search.py "rack shelf" --output json
```
Searches name, brand, model, location, notes, serial, type. Case-insensitive substring match across all text fields.
## Data Location
Default: `~/.openclaw/workspace/homelab-assets/inventory.json`
Override with env var: `HOMELAB_ASSETS_PATH=/path/to/inventory.json`
## References
See `references/power-estimates.md` for common homelab device power draw estimates.
See `assets/inventory.example.json` for example asset structure.
标签
skill
ai