Automating the ONU Configuration Process
How I replaced a fragile manual data-entry workflow with a robust Python bot, saving the company $4,000/mo in technician hours.
The Problem: Human Middleware
The client, a regional ISP, had a massive bottleneck. Every time a new customer signed up, a technician had to manually log into a legacy router interface (built in 2005) and click through 17 different screens to configure the VLANs and static IPs.
It was slow, boring, and worst of all, prone to typos. A single wrong digit in the IP address meant a truck roll to fix it manually.
"We were spending more time fixing config errors than actually installing new lines. It was unscalable."
The Engineering
Since the router had no API (a common issue in legacy hardware), I had to build a "Visual Bot" that acted like a human user. I chose Selenium with Python for its robust DOM manipulation capabilities.
Handling Legacy quirks
The hardest part wasn't the clicking—it was the frames. The router used nested IFrames that confused standard scrapers. I had to write a recursive context switcher:
def switch_to_target_frame(driver, target_id):
# Recursively hunt for the legacy frame
frames = driver.find_elements(By.TAG_NAME, "iframe")
for frame in frames:
driver.switch_to.frame(frame)
if check_element_exists(target_id):
return True
driver.switch_to.default_content()
return False
The Result
- ✓ Zero Errors: Logic-based input means no typos.
- ✓ Instant Scale: We can now configure 50 routers in parallel.
- ✓ Happy Techs: They focus on the physical install, not the admin.
Deep Dive Video
Want to see the full code walkthrough? I break down the entire architecture in this 15-minute technical deep dive.
Automate your workflow
Do you have a process like this? Let's build a custom engine for you.
Start Your Project