Execute API calls to Omada Controller from python code
Project description
omada-client
Python client for Tp-Link Omada Controller (Omada Software Controller). Allows executing API calls to the Omada Controller from Python code.
Installation
pip install omada-client
Quick Start
Using direct credentials
from omada_client import OmadaClient
omada = OmadaClient(
"OMADA_DOMAIN", # URL of Omada WebUI
"OMADA_USER", # Username
"OMADA_PASSWORD" # Password
)
Using environment variables
from dotenv import load_dotenv
import os
from omada_client import OmadaClient
load_dotenv()
omada = OmadaClient(
os.getenv("OMADA_DOMAIN"),
os.getenv("OMADA_USER"),
os.getenv("OMADA_PASSWORD")
)
print(omada.get_devices())
Methods Reference
| Category | Method | Parameters | Description |
|---|---|---|---|
| WAN Ports | get_all_wan_ports() |
None | List all WAN ports |
get_wan_ports_by_name(name) |
name: str |
Get WAN port by name | |
get_wan_ports_by_desc(desc) |
desc: str |
Get WAN port by description | |
| Wireless | get_all_wlan() |
None | List all Wi-Fi networks |
get_wlan_by_ssid(ssid) |
ssid: str |
Get Wi-Fi network by SSID | |
| Static Routes | create_static_route(route_name, destinations, interface_id, next_hop_ip, enable=False, metricId=0) |
route_name: str, destinations: list[str], interface_id: str, next_hop_ip: str |
Create a single static route |
create_static_route_to_inteface_with_big_data(data_static_routes, interface_id, next_hop_ip, enable=False, metricId=0) |
data_static_routes: list, interface_id: str, next_hop_ip: str |
Create static routes from large data | |
| Devices & Clients | get_devices() |
None | List all devices |
get_clients() |
None | List all clients | |
get_client_by_mac(mac) |
mac: str |
Get client by MAC | |
get_client_by_ip(ip_address) |
ip_address: str |
Get client by IP | |
| IP Assignment | set_client_fixed_address_by_mac(mac, ip_address=None) |
mac: str, ip_address: str |
Assign fixed IP by MAC |
set_client_fixed_address_by_ip(ip_address) |
ip_address: str |
Assign fixed IP by IP | |
set_client_dymanic_address_by_mac(mac) |
mac: str |
Assign dynamic IP by MAC |
Advanced Example
Create static routes from large data sets
from dotenv import load_dotenv
import os
from omada_client import OmadaClient
load_dotenv()
omada = OmadaClient(
os.getenv("OMADA_DOMAIN"),
os.getenv("OMADA_USER"),
os.getenv("OMADA_PASSWORD")
)
data = [
{"name": "group_1", "ips": "99.99.99.99/24, 88.88.88.88/24"},
{"name": "group_2", "ips": "99.99.99.99/24, 88.88.88.88/24"}
]
wan = omada.get_wan_ports_by_desc("openwrt")
omada.create_static_route_to_inteface_with_big_data(
data_static_routes=data,
interface_id=wan.port_uuid,
next_hop_ip=wan.wan_port_ipv4_setting.get("ipv4Static").get("gateway"),
enable=False
)
Notes
- Replace all IPs, MAC addresses, and credentials with real values.
- Environment variables help keep sensitive credentials out of code.
- Use badges above to quickly check test status and PyPI version.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
omada_client-1.2.10.tar.gz
(9.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omada_client-1.2.10.tar.gz.
File metadata
- Download URL: omada_client-1.2.10.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8cc5face015c2a071abcfda5c2d4bb266900e17cb08ae3353be54e8d877d632
|
|
| MD5 |
50588bbd19db9aadbd62e54d2f1ca095
|
|
| BLAKE2b-256 |
17cd6df41fc0a80b67e31e7cc41470e76b84accb97e6ae95533a6fde7f48df9e
|
File details
Details for the file omada_client-1.2.10-py3-none-any.whl.
File metadata
- Download URL: omada_client-1.2.10-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6eaace18cd56d410c0a0ce32e26b546e7b6909266567e63e142c7c09b6aee9bb
|
|
| MD5 |
254bc209d7896f98f5ca61e0b8ba8478
|
|
| BLAKE2b-256 |
d3bcddbf4158dc2d94b277649fdcb21805ce458766680f0da6c2ff38a1f4cad6
|