Experimental client for the TP-Link M7350 local web interface
Project description
tplink-m7350-client
Small Python client experiments for the TP-Link M7350 local web interface.
This is an unofficial project and is not affiliated with, endorsed by, or supported by TP-Link.
Current Scope
This is a starter client for the local auth_cgi / web_cgi interface.
Implemented now:
- base64-wrapped JSON request/response codec
- encrypted/signed JSON codec for GDPR-capable firmware
- auth load call:
{"module":"authenticator","action":0} - login digest flow using
md5("<password>:<nonce>") - local token storage and injection into later request payloads
- Status page helper for
settings.html#Status - small CLI for quick experiments
Still to port:
- higher-level helpers for SMS, connection, and reboot actions
Encrypted firmware support uses cryptography for AES-CBC.
Quick Checks
PYTHONPATH=src .venv/bin/python -m unittest discover -s tests
Status Example
Create or edit examples/.env:
TPLINK_M7350_IP=192.168.0.1
TPLINK_M7350_PORT=80
TPLINK_M7350_PASSWORD='your-router-password'
TPLINK_M7350_RATE_UNIT=KB/s
Then print the friendly Status JSON:
PYTHONPATH=src .venv/bin/python examples/status.py
PYTHONPATH=src .venv/bin/python examples/status.py --rate-unit auto
TPLINK_M7350_RATE_UNIT controls both upstream and downstream rate units.
Allowed values are auto, B/s, KB/s, and MB/s; the default is KB/s.
The client sends a small curl-shaped HTTP request and intentionally omits
Connection: close, because some simple ESP32 TCP proxies close the request
without a response when that header is present.
CLI Examples
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli --env-file examples/.env load-auth
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli --env-file examples/.env login
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli --env-file examples/.env status
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli --env-file examples/.env --port 8080 status
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli --env-file examples/.env status --rate-unit MB/s
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli --env-file examples/.env status --raw
PYTHONPATH=src .venv/bin/python -m tplink_m7350_client.cli call webServer 0 --no-auth
The settings.html#Status page is backed by:
{"module":"status","action":0}
That response contains the connection, Wi-Fi, client count, and traffic statistics shown on the Status screen.
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
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 tplink_m7350_client-0.1.3.tar.gz.
File metadata
- Download URL: tplink_m7350_client-0.1.3.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec13ce36c95a67e70210a59c37fe2c35de69023bb2b1f84bc45267453c0af71c
|
|
| MD5 |
720c0c4617cee7bdc4cdf0f625673d69
|
|
| BLAKE2b-256 |
a7490c18470dadd663f866111174719b9fadcabc2c495597faff984dd7f3ca27
|
Provenance
The following attestation bundles were made for tplink_m7350_client-0.1.3.tar.gz:
Publisher:
publish.yml on stevusprimus-hassio-addons/tplink-m7350-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tplink_m7350_client-0.1.3.tar.gz -
Subject digest:
ec13ce36c95a67e70210a59c37fe2c35de69023bb2b1f84bc45267453c0af71c - Sigstore transparency entry: 1748253869
- Sigstore integration time:
-
Permalink:
stevusprimus-hassio-addons/tplink-m7350-client@ed4ab15d15ae098511b51a5b2dae70a98353fa74 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/stevusprimus-hassio-addons
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed4ab15d15ae098511b51a5b2dae70a98353fa74 -
Trigger Event:
release
-
Statement type:
File details
Details for the file tplink_m7350_client-0.1.3-py3-none-any.whl.
File metadata
- Download URL: tplink_m7350_client-0.1.3-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c8b700a50ab34d15c2606cd1c9216479514de6455b923e7b5a35cc2a9c5e80d
|
|
| MD5 |
f7a547df0e9de093e7c91ed92f5e832d
|
|
| BLAKE2b-256 |
7f2360d52f4ffebd0ff72d2a20b48e493a63fbb9a9eea9efdf98e89af1533c0c
|
Provenance
The following attestation bundles were made for tplink_m7350_client-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on stevusprimus-hassio-addons/tplink-m7350-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tplink_m7350_client-0.1.3-py3-none-any.whl -
Subject digest:
3c8b700a50ab34d15c2606cd1c9216479514de6455b923e7b5a35cc2a9c5e80d - Sigstore transparency entry: 1748254078
- Sigstore integration time:
-
Permalink:
stevusprimus-hassio-addons/tplink-m7350-client@ed4ab15d15ae098511b51a5b2dae70a98353fa74 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/stevusprimus-hassio-addons
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed4ab15d15ae098511b51a5b2dae70a98353fa74 -
Trigger Event:
release
-
Statement type: