Metadata-Version: 2.5
Name: zte-wrapper
Version: 1.0.0
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                         | ✅      |
| 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
