Metadata-Version: 2.5
Name: zte-wrapper
Version: 1.0.7
Summary: A wrapper that lets you interact with the new ZTE WebUI
Project-URL: Homepage, https://github.com/ctih1/zte-wrapper
Project-URL: Issues, https://github.com/ctih1/zte-wrapper/issues
Author-email: ctih1 <contact@ctih1.fi>
License-Expression: MIT
License-File: LICENSE
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Requires-Dist: aiohttp
Description-Content-Type: text/markdown

# ZTE-Wrapper

An API wrapper for modern ZTE routers using a more advanced authentication method. This has only been tested on an MC888B. If you have any feedback, please share!

## Features

"Support" in this case means that it can be controlled via the library.

| Feature                               | Support |
| ------------------------------------- | ------- |
| Create portforward rules              | ✅      |
| Delete portforward rules              | ✅      |
| List portforward rules                | ✅      |
| Send SMS                              | ✅      |
| Read SMS                              | ✅      |
| List wireless devices                 | ✅      |
| List wired devices                    | ✅      |
| Get signal strength                   | ✅      |
| Band information                      | ✅      |
| Usage statistics                      | ✅      |
| Firewall (e.g. domain/port filtering) | ✅      |
| DHCP Settings                         | ✅      |
| MAC-IP bindings                       | ✅      |
| DDNS settings                         | ✅      |
| Query WiFI settings                   | ✅      |
| Edit WiFI settings                    | ❌      |
| VPN settings                          | ❌      |
| Network tools (e.g. traceroute/ping)  | ✅      |
| "Preferred position" tools            | ❌*     |

*: Not planning on implementing

<details>
<summary>Features as overlayed on web panel</summary>

(based on commit a7baa3b)

![Network tab](screenshots/network.png)

![WiFi tab](screenshots/wifi.png)

![Devices tab](screenshots/devices.png)

![Data usage tab](screenshots/datausage.png)

![Router tab](screenshots/router.png)

![SMS tab](screenshots/sms.png)

![Security tab](screenshots/security.png)

![System tab](screenshots/system.png)

</details>

## Roadmap

1. ~~Implement DDNS-settings~~

2. ~~Publish onto PyPI~~ 

3. More reliable error handling

4. Implement rest of the features

5. Implement better documentation

6. Write tests

## Notes

- When referring to "megabytes" or "bytes", they are in base 2 format (e.g. 1Gib = 1024Mib)
- Authenticating (aka. running any of the API calls) logs off other clients from the admin web panel.
- Even thought the `apn` wrapper _should_ be able to change DNS settings, I've found that it doesn't work. This might have been patched in an update?

## Why?

I wanted to harvest statistics from the router to my Prometheus instance. I might actually rewrite the entire admin webpage since it's kind of horrible
