Powerman PDU Management
Centralized power management for the Cyclades AlterPath PM10i PDU via Powerman, running on pfv-tsys1.
Hardware
| Component | Details |
|---|---|
| PDU | Cyclades AlterPath PM10i (10 controllable AC outlets) |
| Firmware | v1.9.0 (Aug 4, 2006) |
| Connection | USB-to-DB9 adapter (Prolific pl2303, serial BJAAb144J07) |
| Host | pfv-tsys1 (OptiPlex 9020, Proxmox) |
| Serial | 9600 baud, 8N1, raw mode |
| Credentials | Factory defaults: admin / pm8 (in cyclades-pm10.dev) |
| Network access | powermand listens on 127.0.0.1:10101 (local) + 100.121.189.98:10101 (Tailscale) |
Device mapping
USB adapter (067b:23a3, serial BJAAb144J07)
└─ pl2303 driver → /dev/ttyUSB1
└─ udev symlink → /dev/cyclades-pm10 (stable across reboots)
└─ powermand reads/writes serial → Cyclades PM10i
└─ 10 outlets (factory default names: 1-10)
The udev rule (/etc/udev/rules.d/99-cyclades-pdu.rules) pins the adapter
by its USB serial number, so the symlink survives replugs and reboots.
Scripts
All scripts run on the target host (pfv-tsys1) via tests/remote.sh:
# Setup (idempotent — safe to re-run):
PROX_HOST=pfv-tsys1 bash tests/remote.sh prox-file powerman/setup.sh
# Validate PDU control (cycles outlet 10 off → on):
PROX_HOST=pfv-tsys1 bash tests/remote.sh prox-file powerman/test-pdu.sh
# Status check:
PROX_HOST=pfv-tsys1 bash tests/remote.sh prox-file powerman/status.sh
Customizing for other hosts/PDUs
The setup script accepts environment overrides:
PDU_SERIAL=XXXX PDU_VENDOR=067b PDU_OUTLETS=20 PDU_TYPE=pm20 \
PROX_HOST=other-host bash tests/remote.sh prox-file powerman/setup.sh
Usage (daily operations)
From pfv-tsys1 (or any host with network access to port 10101):
# List all outlets
powerman -l
# Query status (all outlets)
powerman -q
# Turn outlet off
powerman -0 outlet-10
# Turn outlet on
powerman -1 outlet-10
# Cycle outlet (off → 4s delay → on)
powerman -c outlet-10
# Query a specific outlet
powerman -q outlet-10
Remote access from other hosts
powermand listens on 0.0.0.0:10101. From another tailnet host:
powerman --server-host pfv-tsys1 --server-port 10101 -q
Or set POWERMAN_SERVER=pfv-tsys1:10101 in the environment.
Configuration files on pfv-tsys1
| File | Purpose |
|---|---|
/etc/udev/rules.d/99-cyclades-pdu.rules |
Stable symlink for USB-DB9 adapter |
/etc/powerman/powerman.conf |
Device definition + 10 outlet nodes |
/etc/powerman/cyclades-pm10.dev |
Cyclades PM10 protocol spec (shipped with powerman) |
Validation results
2026-07-28: All 8 checks passed. Outlet 10 turned OFF (confirmed), turned ON (confirmed), then cycled.
TODO (Friday onsite)
- Rename outlets in
/etc/powerman/powerman.confto match the physical devices plugged into each outlet (e.g.,node "tsys4-psu" "cyclades-pm10" "3"). Currently all outlets are generically namedoutlet-1throughoutlet-10. - Change PDU admin password from factory default (
pm8) if security-sensitive. Update/etc/powerman/cyclades-pm10.devlogin script to match. - Verify all 10 outlets individually once device mapping is known.