Python HTTP API client for Huawei Modems
This is a python library to interact with a Huawei modem over HTTP API.
The library has been tested on these devices:
- E5180
- E8372
- B315
- B529s-23a
- H122-373 (HUAWEI 5G CPE Pro 2 locoked to the UK Network Three)
Please let me know if you tested it successfully with other modems as well.
Currently Supported
- webserver
- get_session_token_info: gets a session token to use
- user
- login: creates a new session on the HTTP API
- logout: deletes current session on the HTTP API
- sms
- get_sms: get information from boxes: inbox, outbox
- send_sms: sends an SMS through device's modem
- delete_sms: deletes an sms from one of their boxes
- sms_count: get the sms count on each box
- sms_set_read: set the sms status to read
- ussd
- status: get status of ussd. This will tell you if there are ussd messages available to read
- send: sends a ussd message
- get: retrieves a ussd message
- wlan:
- get_connected_hosts: gets a list of connected devices
- block_host: blocks the device from network
- unblock_host: unblock device on network
- get_blocked_hosts: gets a list of blocked devices
- is_host_blocked: checks if device is blocked
- switch_wlan_24ghz: allows to switch on or off the wlan 2.4Ghz module of the router
- switch_wlan_5ghz: allows to switch on or off the wlan 5Ghz module of the router
- dialup:
- connect_mobile: enables mobile (ie LTE / 4G / 3G / etc) network
- disconnect_mobile: disables mobile network
- get_mobile_status: checks the mobile connection status
- device:
- reboot: reboots the modem
Prerequisites
requests library (and its dependencies) is required.
six library (and its dependencies for Python 2 and 3 compatibility)
typing library (support for type hints)
This is requirements.txt content:
requests>=2.25.1
six>=1.15.0
typing>=3.7.4.3
Installing
pip install huawei-modem-api-client
Example
import huaweisms.api.user
import huaweisms.api.wlan
import huaweisms.api.sms
ctx = huaweisms.api.user.quick_login("myusername", "mypassword")
print(ctx)
# output: <ApiCtx modem_host=192.168.8.1>
# sending sms
huaweisms.api.sms.send_sms(
ctx,
'phone-number',
'this is the sms message'
)
# connected devices
device_list = huaweisms.api.wlan.get_connected_hosts(ctx)
Note: The default modem host is assumed to be 192.168.8.1. If that is not the case for you, you can specify your modem ip as follows:
import huaweisms.api.user
ctx = huaweisms.api.user.quick_login("myusername", "mypassword", modem_host='10.11.12.13')
print(ctx)
#output: <ApiCtx modem_host=10.11.12.13>
HTTPS Examples
When the router uses HTTPS instead of HTTP, you can pass the uri_scheme when creating the context instance which
becomes used on subsequent api calls that use the same context.
import huaweisms.api.user
ctx = huaweisms.api.user.quick_login(
'username',
'password',
modem_host='192.168.12.13',
uri_scheme='https'
)
If the router that uses HTTPS uses self-signed certificates, there will be SSL errors. You can ignore certificate validation/verification as follows:
import huaweisms.api.user
ctx = huaweisms.api.user.quick_login(
'username',
'password',
modem_host='192.168.12.13',
uri_scheme='https',
verify=False
)
Built With
- requests - Python HTTP Requests for Humans™
Contributing
Send me a PM if you want to contribute.
Authors
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Metadata
Release files for huawei-modem-api-client 1.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| huawei-modem-api-client-1.1.5.tar.gz | 10.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| huawei_modem_api_client-1.1.5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / huawei-modem-api-client-1.1.5.tar.gz
| Download URL | huawei-modem-api-client-1.1.5.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d37dfa7e90986c30b55aab94ddcb9da6f317f051f985a31595ca6af818ec0dc
|
|
BLAKE2b-256 checksum How to use checksums |
4fdb3e8bb0266d5d239aff3649f3ebeb7a2c253c3fa5ca3e384de615057d7689
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / huawei_modem_api_client-1.1.5-py2.py3-none-any.whl
| Download URL | huawei_modem_api_client-1.1.5-py2.py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
486366ac0c4b750ea2c916bd25810c405a38bbf579986b6c3acfee699617daa1
|
|
BLAKE2b-256 checksum How to use checksums |
741a5c31715b914c5df3fbf35c2b33b5ec35ca7ca952ccd49be868331a9c5149
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|