Skip to main content

Execute API calls to Omada Controller from python code

Project description

omada-client

PyPI Version PyPI Version Tests

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omada_client-1.2.10-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

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

Hashes for omada_client-1.2.10.tar.gz
Algorithm Hash digest
SHA256 f8cc5face015c2a071abcfda5c2d4bb266900e17cb08ae3353be54e8d877d632
MD5 50588bbd19db9aadbd62e54d2f1ca095
BLAKE2b-256 17cd6df41fc0a80b67e31e7cc41470e76b84accb97e6ae95533a6fde7f48df9e

See more details on using hashes here.

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

Hashes for omada_client-1.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 6eaace18cd56d410c0a0ce32e26b546e7b6909266567e63e142c7c09b6aee9bb
MD5 254bc209d7896f98f5ca61e0b8ba8478
BLAKE2b-256 d3bcddbf4158dc2d94b277649fdcb21805ce458766680f0da6c2ff38a1f4cad6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page