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.8.tar.gz
(9.5 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.8.tar.gz.
File metadata
- Download URL: omada_client-1.2.8.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb288b6712eff834475ca1899619364d47989a667be9e3e5f2bd942e19dd9398
|
|
| MD5 |
40a96e09cac9956826e4c80cb5e69561
|
|
| BLAKE2b-256 |
492bace442b915312788be7d15b16604bec85e6b50e30dac50736e2fc707d03b
|
File details
Details for the file omada_client-1.2.8-py3-none-any.whl.
File metadata
- Download URL: omada_client-1.2.8-py3-none-any.whl
- Upload date:
- Size: 10.5 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 |
d03f2e5dee8e4efd06d3fd5f312c329659d1271d99ab1b68460134d45ae97de3
|
|
| MD5 |
ad666fbb93a858a172f21645d304ca0e
|
|
| BLAKE2b-256 |
7a29549ce5c5fd397ed2b8b4875e6177a456d5e69fee07a6c0416de49c906515
|