Skip to main content

Airtel ODU App

A local dashboard for your Airtel outdoor unit (ODU) and indoor router. See your signal, data usage, and connected devices at a glance, and fix problems without digging through the modem's clunky admin page.

Runs entirely on your own PC. No cloud, no account, no sign-up — it just talks to your two devices over your own WiFi and shows you what's going on.

Features

Home — Is the internet up right now? What network type (4G/5G) is it using? A live speed chart, how many devices are connected, and a log of recent events (drops, weak signal, data-cap warnings) so "the WiFi was bad last night" has an actual answer.

Data usage — How much data you've used this billing cycle, projected against your plan, broken down by day/week/month and by device. Export to CSV any time.

Devices — Every device on your WiFi, ranked by usage, with live speed and signal strength. Your own device gets tagged automatically.

Texts — Your modem's SMS inbox (data-usage alerts, carrier notices) shown as a normal-looking conversation instead of a raw list.

Optimise for — One tap to retune the connection for gaming (steadier, lower-latency) or performance (best available speed). If the connection doesn't come back afterwards, it automatically switches back on its own.

Settings — Network mode picker, editable APN (the setting that connects you to Airtel's network), a connection test and a speed test, and an Advanced section with extra detail for anyone curious (signal strength breakdown, a low-level modem console, restart buttons).

Add to phone — A QR code that opens the dashboard straight from your phone's camera, for whoever's not at the PC.

Getting started

pip install airtel-odu-app
airtel-odu-app

Then open http://localhost:8080 and log in with the same admin password you'd use on the device's own web page — that's it, no files to edit. (If you have the two-box ZTE setup you're asked for both passwords; if you have the single-box ZLT unit, just the one.)

To reach the dashboard from your phone, use your PC's LAN address instead of localhost (shown in the terminal when it starts), or scan the QR code in Settings.

Running from source

git clone https://github.com/Mevhare/airtel-odu-app.git
cd airtel-odu-app
pip install -e .
airtel-odu-app

Built for

Two kinds of Airtel hardware, both tested against the real thing. The app figures out which one you have automatically — you don't have to tell it.

ZTE — an outdoor unit at 192.168.254.1 plus an indoor router (ZTE MF296A) at 192.168.18.1. Two boxes, two admin passwords. Other ZTE-based Airtel setups will likely work too.

ZLT — a ZLT/Tozed unit such as the X17U (with its W154R Plus indoor router), where one box does everything at 192.168.1.1. One address, one password.

ZLT units can do a bit less than the ZTE setup — no traffic-priority controls, and their monthly usage counter always resets on the same day each month (that's fixed by the device, not adjustable). Per-device usage still works the same either way, since the app tracks that itself rather than relying on the router. The dashboard only shows the controls your specific device can actually do — nothing that would fail if you tapped it.

If it ever guesses your hardware wrong, tell it directly in config.json:

"device": "zlt",
"zlt": { "host": "192.168.1.1" }

"device" can be auto (the default), zte, or zlt.

Requirements

  • Python 3.9 or newer — nothing else to install.
  • One of the two hardware setups above, on your home network.

Safety

Changing network mode, traffic priority, APN, or restarting the device — all of that is switched on by default. If you'd rather the app just watch and never change anything, set safety.allow_writes to false in config.json.

Any change that could drop your connection (mode switch, APN change) reverts itself automatically if the connection doesn't come back within a few seconds.

Releasing (maintainers)

Publishing to PyPI happens automatically: bump version in pyproject.toml, then create a GitHub Release for that version (tag it vX.Y.Z) and the publish workflow builds and uploads it.

That workflow uses PyPI's Trusted Publishing, so no API token lives in this repo. One-time setup on PyPI (needs a PyPI account, done once by whoever owns the airtel-odu-app name there): add a pending publisher pointing at this repo, workflow file publish.yml, and environment pypi.

License

MIT — see LICENSE.

Metadata

Release files for airtel-odu-app 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for airtel-odu-app 0.1.0
File Size Uploaded
airtel_odu_app-0.1.0.tar.gz 92.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for airtel-odu-app 0.1.0
File Interpreter ABI Platform
airtel_odu_app-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 190.2 kB

Release files / airtel_odu_app-0.1.0.tar.gz

Download URL airtel_odu_app-0.1.0.tar.gz
Size 92.9 kB
Tags Source
SHA-256 checksum
How to use checksums
94e703db831ecdb642c0cc4c066d979e01f7763c83a90c2ed95f30560dba4506
BLAKE2b-256 checksum
How to use checksums
12c9b850c7d4329fcda877d91d4d9ce66973087013854f488c82cc57130b4de7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / airtel_odu_app-0.1.0-py3-none-any.whl

Download URL airtel_odu_app-0.1.0-py3-none-any.whl
Size 97.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f43c95c4efb312ab4f97bf669367498cf8bf6ee47279921ac16bb917cea0f54
BLAKE2b-256 checksum
How to use checksums
11e5397ab46b7ce17183113eea6ae80840438214faac92aeefbf6f6b2cf12da9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page