A desktop GUI tool (Python / Tkinter) for automating the commissioning of network devices over SSH. It lets you run a batch of configuration commands against one or many device IPs at once, track progress per host, capture command output, and includes extras like a card inventory view, per-IP session windows, a live monitor window, and SSH-based screenshot capture.
- Run a sequence of commissioning commands against multiple device IPs in one batch
- Live per-host progress tracking (queued / connecting / running / done / failed)
- Preset command sets (initial setup, software download config, clear database, OAMP interface deletion)
- Per-IP session window for working with a single device
- Monitor window for watching multiple hosts at once
- Card inventory window
- SSH screenshot capture (renders captured terminal output to a PNG)
- Auto-ping status check per IP
- No external services required — works over standard SSH (OpenSSH client or PuTTY's
plink)
- Python 3.8+
- An SSH client available on your system:
- Windows: OpenSSH Client (Settings → Apps → Optional Features → OpenSSH Client), or PuTTY with
plink.exeon your PATH - macOS/Linux:
sshis normally already installed
- Windows: OpenSSH Client (Settings → Apps → Optional Features → OpenSSH Client), or PuTTY with
- Optional, for the screenshot feature: Pillow
pip install Pillow
-
Clone or download this repository.
-
Open
tool.pyand fill in your own values where you see bracketed placeholders:config software server port [SFTP_PORT] yes config software server ip [SFTP_SERVER_IP] config software server userid [SFTP_USERNAME] [SFTP_PASSWORD] config software server root [SFTP_REMOTE_PATH] config software upgrade auto commit [FIRMWARE_VERSION] nobackupforce yes
Replace each
[...]with your actual server port, server IP, SFTP username/password, remote path, and firmware version string. Do not commit real values back to a public repo — see the Security notes below. -
Run it:
python tool.py
- Add the device IP(s) you want to commission.
- Choose or edit the command set to run (presets are provided, or write your own).
- Enter the SSH login type/username/password for the devices.
- Click Run to execute the commands across all listed IPs.
- Watch per-host progress in the main window, or open the Monitor window for a live multi-host view.
- This tool disables SSH host-key verification (
StrictHostKeyChecking=no) so it can connect to freshly-commissioned devices that don't yet have a known host key. This is intentional for this use case, but it does mean the tool won't warn you if a device's identity changes — only use it on networks/devices you trust. - The
admin/admindefault login is a common factory-default credential, provided as a convenience for freshly-reset devices — not a real leaked credential. - Never commit real server IPs, ports, usernames, passwords, or firmware version strings into this repository. Keep them local, or load them from a config file/environment variable that's excluded via
.gitignore.
MIT — see LICENSE. You're free to use, modify, and distribute this software, including for commercial purposes, as long as the original copyright notice is included.