tp-link-controller

A Python Package to controll TP-Link Routers


Keywords
routers, selenium, selenium-python, tp-link
License
AGPL-3.0
Install
pip install tp-link-controller==0.0.2

Documentation

TP-link WiFi Router Controller

Installation

pip install tp-link-controller

Usage

  1. Install JDK-8
    • Using Chocolatey: choco install jdk8
  2. Download browsermob-proxy pass the binary path to TP_Link_controller object.
from TPLinkController import controller

email = "xyz@examplemail.com"
password = "topSecret"

bmp_path = r"bin\browsermob-proxy-2.1.4\bin\browsermob-proxy"

tplink = controller.TP_Link_Controller(email, password, browsermobproxy_location=bmp_path, DEBUG_MODE=True)

Note: Login before doing anything

tplink.login()

The following methods are available

  1. .login() -> Logins to the admin panel
  2. .close() -> Exits the browser and closes the proxy
  3. .get_status() -> Returns a dictionary with a lot of status information.
  4. .turn_on_2G() -> Turns on 2.4G WiFi.
  5. .turn_on_5G() -> Turns on 5G WiFi.
  6. .turn_off_2G() -> Turns off 2.4G WiFi.
  7. .turn_off_5G() -> Turns off 5G WiFi.
  8. .toggle_2g_wifi() -> Toggles 2.4G WiFi
  9. .toggle_5g_wifi() -> Toggles 5G WiFi
  10. .is_2g_on() -> Returns True if 2.4G WiFi is on else False.
  11. .is_5g_on() -> Returns True if 5G WiFi is on else False.
  • Based on Selenium.
  • Uses the WebUI as you would normally do.
  • Made due to the lack of any kind of API to interact with any TP-Link Routers.

Tested On:

    • Hardware: Archer C1200 v2.0
    • Firmware Version: 2.0.2 Build 20180118 rel.38979 (EU)

To get started with package dev:

  1. Clone the repository.
  2. Create a virtual environment.
  3. Install all the packages from requirements.txt
  4. Install JDK-8
    • Using Chocolatey
    choco install jdk8
    
  5. Download Browsermob-proxy.
    • For windows, leave it as default, should work out of the box.
    • Pass it to the instance in code.
    • tplink = TP_Link_Controller(email, password, browsermobproxy_location=r"bin\browsermob-proxy-2.1.4\bin\browsermob-proxy", DEBUG_MODE=True)
  6. Download the Chrome webdriver and place it in ./bin/ folder for windows.
  7. For Raspberry Pi install .deb packages from here. No need to set bin path, packages will be installed in right directory.